diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 000000000..10c4cf878 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,32 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 21 + buildToolsVersion "21.1.0" + + defaultConfig { + applicationId "net.kdt.pojavlaunch" + minSdkVersion 21 + targetSdkVersion 26 + versionCode 156182 + versionName "2.4.3_6338b_20200225" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + + compile 'com.android.support:support-v4:24.0.0' + compile 'com.android.support:appcompat-v7:24.0.0' + compile 'com.android.support:design:24.0.0' + compile 'com.android.support:support-annotations:24.0.0' + // compile 'com.google.guava:guava:24.0-android' + + compile fileTree(dir: 'libs', include: ['*.jar']) +} + diff --git a/app/build/bin/classes.dex b/app/build/bin/classes.dex new file mode 100644 index 000000000..2de58ef50 Binary files /dev/null and b/app/build/bin/classes.dex differ diff --git a/app/build/bin/classesdebug/adrt/ADRT.class b/app/build/bin/classesdebug/adrt/ADRT.class new file mode 100644 index 000000000..693637bc5 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRT.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTLogCatReader.class b/app/build/bin/classesdebug/adrt/ADRTLogCatReader.class new file mode 100644 index 000000000..937199d86 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTLogCatReader.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTLongMap.class b/app/build/bin/classesdebug/adrt/ADRTLongMap.class new file mode 100644 index 000000000..4fdb9070d Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTLongMap.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTLongSet.class b/app/build/bin/classesdebug/adrt/ADRTLongSet.class new file mode 100644 index 000000000..ce9305854 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTLongSet.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTMetadata.class b/app/build/bin/classesdebug/adrt/ADRTMetadata.class new file mode 100644 index 000000000..104acfd6e Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTMetadata.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTReceiver.class b/app/build/bin/classesdebug/adrt/ADRTReceiver.class new file mode 100644 index 000000000..d64afb9ef Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTReceiver.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTReflector.class b/app/build/bin/classesdebug/adrt/ADRTReflector.class new file mode 100644 index 000000000..39a383450 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTReflector.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTSender.class b/app/build/bin/classesdebug/adrt/ADRTSender.class new file mode 100644 index 000000000..5fc4a8288 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTSender.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTThread.class b/app/build/bin/classesdebug/adrt/ADRTThread.class new file mode 100644 index 000000000..4bfa91ba9 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTThread.class differ diff --git a/app/build/bin/classesdebug/adrt/ADRTThreadLocal.class b/app/build/bin/classesdebug/adrt/ADRTThreadLocal.class new file mode 100644 index 000000000..a669fcee4 Binary files /dev/null and b/app/build/bin/classesdebug/adrt/ADRTThreadLocal.class differ diff --git a/app/build/bin/classesdebug/android/graphics/PixelXorXfermode$0$debug.class b/app/build/bin/classesdebug/android/graphics/PixelXorXfermode$0$debug.class new file mode 100644 index 000000000..2e0838e16 Binary files /dev/null and b/app/build/bin/classesdebug/android/graphics/PixelXorXfermode$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/graphics/PixelXorXfermode.class b/app/build/bin/classesdebug/android/graphics/PixelXorXfermode.class new file mode 100644 index 000000000..0e123a091 Binary files /dev/null and b/app/build/bin/classesdebug/android/graphics/PixelXorXfermode.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$0$debug.class new file mode 100644 index 000000000..3346449ea Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$anim$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$anim$0$debug.class new file mode 100644 index 000000000..65a90c760 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$anim$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$anim.class b/app/build/bin/classesdebug/android/support/design/R$anim.class new file mode 100644 index 000000000..8300ede40 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$anim.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$array$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$array$0$debug.class new file mode 100644 index 000000000..fea8502e7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$array$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$array.class b/app/build/bin/classesdebug/android/support/design/R$array.class new file mode 100644 index 000000000..5517a78b6 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$array.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$attr$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$attr$0$debug.class new file mode 100644 index 000000000..eaf4a90f7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$attr$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$attr.class b/app/build/bin/classesdebug/android/support/design/R$attr.class new file mode 100644 index 000000000..3b81d5f24 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$attr.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$bool$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$bool$0$debug.class new file mode 100644 index 000000000..429badab1 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$bool$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$bool.class b/app/build/bin/classesdebug/android/support/design/R$bool.class new file mode 100644 index 000000000..4eefcaf10 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$bool.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$color$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$color$0$debug.class new file mode 100644 index 000000000..0b6b3941b Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$color$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$color.class b/app/build/bin/classesdebug/android/support/design/R$color.class new file mode 100644 index 000000000..43009a13a Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$color.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$dimen$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$dimen$0$debug.class new file mode 100644 index 000000000..34055bca3 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$dimen$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$dimen.class b/app/build/bin/classesdebug/android/support/design/R$dimen.class new file mode 100644 index 000000000..4c0f3e61b Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$dimen.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$drawable$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$drawable$0$debug.class new file mode 100644 index 000000000..5d232dca9 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$drawable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$drawable.class b/app/build/bin/classesdebug/android/support/design/R$drawable.class new file mode 100644 index 000000000..b3235eb98 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$drawable.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$id$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$id$0$debug.class new file mode 100644 index 000000000..07fad4316 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$id$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$id.class b/app/build/bin/classesdebug/android/support/design/R$id.class new file mode 100644 index 000000000..a10ec59f5 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$id.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$integer$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$integer$0$debug.class new file mode 100644 index 000000000..caa48b11c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$integer$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$integer.class b/app/build/bin/classesdebug/android/support/design/R$integer.class new file mode 100644 index 000000000..c70145ea0 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$integer.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$layout$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$layout$0$debug.class new file mode 100644 index 000000000..9980c1d5c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$layout$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$layout.class b/app/build/bin/classesdebug/android/support/design/R$layout.class new file mode 100644 index 000000000..a1b3fb4a8 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$layout.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$menu$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$menu$0$debug.class new file mode 100644 index 000000000..05ea480ee Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$menu$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$menu.class b/app/build/bin/classesdebug/android/support/design/R$menu.class new file mode 100644 index 000000000..3503a05e2 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$menu.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$string$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$string$0$debug.class new file mode 100644 index 000000000..3554e2a32 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$string$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$string.class b/app/build/bin/classesdebug/android/support/design/R$string.class new file mode 100644 index 000000000..ccaf64ebd Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$string.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$style$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$style$0$debug.class new file mode 100644 index 000000000..0a011da24 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$style$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$style.class b/app/build/bin/classesdebug/android/support/design/R$style.class new file mode 100644 index 000000000..567d82bb5 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$style.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$styleable$0$debug.class b/app/build/bin/classesdebug/android/support/design/R$styleable$0$debug.class new file mode 100644 index 000000000..7f8964db8 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$styleable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R$styleable.class b/app/build/bin/classesdebug/android/support/design/R$styleable.class new file mode 100644 index 000000000..ff3aacc93 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R$styleable.class differ diff --git a/app/build/bin/classesdebug/android/support/design/R.class b/app/build/bin/classesdebug/android/support/design/R.class new file mode 100644 index 000000000..ffdd4b464 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/design/R.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$0$debug.class new file mode 100644 index 000000000..fc4ac0cde Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim$0$debug.class new file mode 100644 index 000000000..776c13e7f Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim.class new file mode 100644 index 000000000..c87d0250c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$anim.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$array$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$array$0$debug.class new file mode 100644 index 000000000..6e191b995 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$array$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$array.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$array.class new file mode 100644 index 000000000..006e79b97 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$array.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr$0$debug.class new file mode 100644 index 000000000..583fc9036 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr.class new file mode 100644 index 000000000..967d97e5c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$attr.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool$0$debug.class new file mode 100644 index 000000000..9b0e19102 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool.class new file mode 100644 index 000000000..600d660ad Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$bool.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$color$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$color$0$debug.class new file mode 100644 index 000000000..bfb3eaca2 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$color$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$color.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$color.class new file mode 100644 index 000000000..9a54d50e4 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$color.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen$0$debug.class new file mode 100644 index 000000000..4bb90be8a Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen.class new file mode 100644 index 000000000..657ba4d96 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$dimen.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable$0$debug.class new file mode 100644 index 000000000..bcdb0022f Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable.class new file mode 100644 index 000000000..146605d6c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$drawable.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$id$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$id$0$debug.class new file mode 100644 index 000000000..6a7535d52 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$id$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$id.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$id.class new file mode 100644 index 000000000..34dcbba42 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$id.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer$0$debug.class new file mode 100644 index 000000000..884da594c Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer.class new file mode 100644 index 000000000..ed4ba21b5 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$integer.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout$0$debug.class new file mode 100644 index 000000000..e48ba5534 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout.class new file mode 100644 index 000000000..2ee8afb29 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$layout.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu$0$debug.class new file mode 100644 index 000000000..c662793d7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu.class new file mode 100644 index 000000000..d8434db77 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$menu.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$string$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$string$0$debug.class new file mode 100644 index 000000000..9fb358f62 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$string$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$string.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$string.class new file mode 100644 index 000000000..82abf28a7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$string.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$style$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$style$0$debug.class new file mode 100644 index 000000000..196c5b4f0 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$style$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$style.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$style.class new file mode 100644 index 000000000..d4e9d8649 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$style.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable$0$debug.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable$0$debug.class new file mode 100644 index 000000000..964407ee4 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable.class new file mode 100644 index 000000000..6dc2c0ac6 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R$styleable.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/appcompat/R.class b/app/build/bin/classesdebug/android/support/v7/appcompat/R.class new file mode 100644 index 000000000..185b3527a Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/appcompat/R.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$0$debug.class new file mode 100644 index 000000000..15c427a40 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim$0$debug.class new file mode 100644 index 000000000..4674a047a Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim.class new file mode 100644 index 000000000..02104f893 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$anim.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array$0$debug.class new file mode 100644 index 000000000..257a7009d Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array.class new file mode 100644 index 000000000..14d965825 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$array.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr$0$debug.class new file mode 100644 index 000000000..b426a4cce Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr.class new file mode 100644 index 000000000..81b3cd6bf Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$attr.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool$0$debug.class new file mode 100644 index 000000000..c739a7cf9 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool.class new file mode 100644 index 000000000..c7b466d16 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$bool.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color$0$debug.class new file mode 100644 index 000000000..713a03f16 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color.class new file mode 100644 index 000000000..da40c97b3 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$color.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen$0$debug.class new file mode 100644 index 000000000..9b3c96078 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen.class new file mode 100644 index 000000000..d5bc770c9 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$dimen.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable$0$debug.class new file mode 100644 index 000000000..e5da6ade9 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable.class new file mode 100644 index 000000000..52f2879f2 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$drawable.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id$0$debug.class new file mode 100644 index 000000000..1db40390d Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id.class new file mode 100644 index 000000000..2ff853810 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$id.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer$0$debug.class new file mode 100644 index 000000000..8cdf5b0ea Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer.class new file mode 100644 index 000000000..7cc28d054 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$integer.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout$0$debug.class new file mode 100644 index 000000000..39c3f5cab Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout.class new file mode 100644 index 000000000..6b6870789 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$layout.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu$0$debug.class new file mode 100644 index 000000000..773b0d49e Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu.class new file mode 100644 index 000000000..0cb247e55 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$menu.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string$0$debug.class new file mode 100644 index 000000000..3ffb9c447 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string.class new file mode 100644 index 000000000..9f78f48b4 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$string.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style$0$debug.class new file mode 100644 index 000000000..fad3b0b1b Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style.class new file mode 100644 index 000000000..a13d50db7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$style.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable$0$debug.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable$0$debug.class new file mode 100644 index 000000000..9cb3f950e Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable$0$debug.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable.class new file mode 100644 index 000000000..659e33cc9 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R$styleable.class differ diff --git a/app/build/bin/classesdebug/android/support/v7/recyclerview/R.class b/app/build/bin/classesdebug/android/support/v7/recyclerview/R.class new file mode 100644 index 000000000..fca7b71a7 Binary files /dev/null and b/app/build/bin/classesdebug/android/support/v7/recyclerview/R.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter$0$debug.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter$0$debug.class new file mode 100644 index 000000000..e6e0352d1 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter.class new file mode 100644 index 000000000..8a43037bd Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListAdapter.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$0$debug.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$0$debug.class new file mode 100644 index 000000000..c783077c6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000$0$debug.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000$0$debug.class new file mode 100644 index 000000000..9dd539e8f Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000.class new file mode 100644 index 000000000..a61dc6dad Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView$100000000.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileListView.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView.class new file mode 100644 index 000000000..ebc1d29b4 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileListView.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/FileSelectedListener.class b/app/build/bin/classesdebug/com/kdt/filerapi/FileSelectedListener.class new file mode 100644 index 000000000..d93fb4467 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/FileSelectedListener.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName$0$debug.class b/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName$0$debug.class new file mode 100644 index 000000000..cf868bc0c Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName.class b/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName.class new file mode 100644 index 000000000..9e4d49aea Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filerapi/SortFileName.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter$0$debug.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter$0$debug.class new file mode 100644 index 000000000..6e4b1416f Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter.class new file mode 100644 index 000000000..ef7cb2de4 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListAdapter.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$0$debug.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$0$debug.class new file mode 100644 index 000000000..5b813ed22 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000$0$debug.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000$0$debug.class new file mode 100644 index 000000000..7b656a550 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000.class new file mode 100644 index 000000000..437da705a Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000000.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001$0$debug.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001$0$debug.class new file mode 100644 index 000000000..a28d5e505 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001.class new file mode 100644 index 000000000..1cf1cd2e6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView$100000001.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileListView.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView.class new file mode 100644 index 000000000..6f85ecb26 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileListView.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MFileSelectedListener.class b/app/build/bin/classesdebug/com/kdt/filermod/MFileSelectedListener.class new file mode 100644 index 000000000..9ff4705a8 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MFileSelectedListener.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName$0$debug.class b/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName$0$debug.class new file mode 100644 index 000000000..3aba0e5ac Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName.class b/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName.class new file mode 100644 index 000000000..433365744 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/filermod/MSortFileName.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$0$debug.class new file mode 100644 index 000000000..112d8c110 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser$0$debug.class new file mode 100644 index 000000000..574663c1f Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class new file mode 100644 index 000000000..331ee4d1f Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser$0$debug.class new file mode 100644 index 000000000..674be33aa Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class new file mode 100644 index 000000000..8dc8339e0 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory$0$debug.class new file mode 100644 index 000000000..5b58e19b0 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class new file mode 100644 index 000000000..452816fb8 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory$0$debug.class new file mode 100644 index 000000000..2610a76eb Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class new file mode 100644 index 000000000..56c926a3f Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class new file mode 100644 index 000000000..526a12c22 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLContextFactory.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLContextFactory.class new file mode 100644 index 000000000..0456877e4 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLContextFactory.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class new file mode 100644 index 000000000..fa417529e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper$0$debug.class new file mode 100644 index 000000000..edda3a598 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper.class new file mode 100644 index 000000000..37fc195ea Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$EglHelper.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread$0$debug.class new file mode 100644 index 000000000..88d67a1c5 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread.class new file mode 100644 index 000000000..d5e0cc127 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThread.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager$0$debug.class new file mode 100644 index 000000000..d1f57b6fd Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager.class new file mode 100644 index 000000000..c35bb1acb Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLThreadManager.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLWrapper.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLWrapper.class new file mode 100644 index 000000000..626c0fbc4 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$GLWrapper.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter$0$debug.class new file mode 100644 index 000000000..cf9891a6b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter.class new file mode 100644 index 000000000..8dd1b1a64 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$LogWriter.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$Renderer.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$Renderer.class new file mode 100644 index 000000000..166bb5ca1 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$Renderer.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser$0$debug.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser$0$debug.class new file mode 100644 index 000000000..48a93dfa6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class new file mode 100644 index 000000000..64d4aea9e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class differ diff --git a/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView.class b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView.class new file mode 100644 index 000000000..5d74dee16 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/glsupport/GLTextureView.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$0$debug.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$0$debug.class new file mode 100644 index 000000000..2c48b38d0 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000$0$debug.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000$0$debug.class new file mode 100644 index 000000000..02b34faf8 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000.class new file mode 100644 index 000000000..5c385a69e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton$100000000.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineButton.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton.class new file mode 100644 index 000000000..3bd442081 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineButton.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText$0$debug.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText$0$debug.class new file mode 100644 index 000000000..94fb4be79 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText.class b/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText.class new file mode 100644 index 000000000..b7f2ab29b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/MineEditText.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity$0$debug.class b/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity$0$debug.class new file mode 100644 index 000000000..8d114b843 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity.class b/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity.class new file mode 100644 index 000000000..3a2b450ad Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mcgui/app/MineActivity.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/LoginListener.class b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginListener.class new file mode 100644 index 000000000..d0a55cb1e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginListener.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask$0$debug.class new file mode 100644 index 000000000..d43a6ad32 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask.class b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask.class new file mode 100644 index 000000000..1d4a8d505 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/LoginTask.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshListener.class b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshListener.class new file mode 100644 index 000000000..e0ab9c70b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshListener.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask$0$debug.class new file mode 100644 index 000000000..eef7cf9af Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask.class b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask.class new file mode 100644 index 000000000..cd260865b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/RefreshTokenTask.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$0$debug.class new file mode 100644 index 000000000..6258e15fe Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo$0$debug.class new file mode 100644 index 000000000..c0ddafc82 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class new file mode 100644 index 000000000..f761b82a3 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class new file mode 100644 index 000000000..396f8401a Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse$0$debug.class new file mode 100644 index 000000000..d5c8d8b85 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class new file mode 100644 index 000000000..f550a7ce6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse$0$debug.class new file mode 100644 index 000000000..174eba7b8 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse.class new file mode 100644 index 000000000..85a49b8f6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/ErrorResponse.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile$0$debug.class new file mode 100644 index 000000000..09e48ae85 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile.class new file mode 100644 index 000000000..afb764831 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/Profile.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest$0$debug.class new file mode 100644 index 000000000..0dc88619b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest.class new file mode 100644 index 000000000..f38d4133c Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshRequest.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse$0$debug.class new file mode 100644 index 000000000..1f504b782 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse.class new file mode 100644 index 000000000..144f8207b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/RefreshResponse.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator$0$debug.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator$0$debug.class new file mode 100644 index 000000000..f59ca5ad7 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class new file mode 100644 index 000000000..b68ab4d8e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class differ diff --git a/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$0$debug.class b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$0$debug.class new file mode 100644 index 000000000..afa63b9f6 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000$0$debug.class b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000$0$debug.class new file mode 100644 index 000000000..d8a18ab3b Binary files /dev/null and b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000.class b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000.class new file mode 100644 index 000000000..346fcd14e Binary files /dev/null and b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext$100000000.class differ diff --git a/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext.class b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext.class new file mode 100644 index 000000000..a71538286 Binary files /dev/null and b/app/build/bin/classesdebug/com/kdtapi/mclup/UpContext.class differ diff --git a/app/build/bin/classesdebug/java/applet/Applet$0$debug.class b/app/build/bin/classesdebug/java/applet/Applet$0$debug.class new file mode 100644 index 000000000..7edd0bb16 Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/Applet$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet$0$debug.class b/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet$0$debug.class new file mode 100644 index 000000000..50b86dc25 Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet.class b/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet.class new file mode 100644 index 000000000..4c3953cba Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/Applet$AccessibleApplet.class differ diff --git a/app/build/bin/classesdebug/java/applet/Applet.class b/app/build/bin/classesdebug/java/applet/Applet.class new file mode 100644 index 000000000..00d61fdc0 Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/Applet.class differ diff --git a/app/build/bin/classesdebug/java/applet/AppletContext.class b/app/build/bin/classesdebug/java/applet/AppletContext.class new file mode 100644 index 000000000..cffdcb402 Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/AppletContext.class differ diff --git a/app/build/bin/classesdebug/java/applet/AppletStub.class b/app/build/bin/classesdebug/java/applet/AppletStub.class new file mode 100644 index 000000000..b74e8533c Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/AppletStub.class differ diff --git a/app/build/bin/classesdebug/java/applet/AudioClip.class b/app/build/bin/classesdebug/java/applet/AudioClip.class new file mode 100644 index 000000000..6b5b3b6a6 Binary files /dev/null and b/app/build/bin/classesdebug/java/applet/AudioClip.class differ diff --git a/app/build/bin/classesdebug/java/awt/AWTError$0$debug.class b/app/build/bin/classesdebug/java/awt/AWTError$0$debug.class new file mode 100644 index 000000000..d31c25169 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/AWTError$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/AWTError.class b/app/build/bin/classesdebug/java/awt/AWTError.class new file mode 100644 index 000000000..df5ce8b50 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/AWTError.class differ diff --git a/app/build/bin/classesdebug/java/awt/AWTException$0$debug.class b/app/build/bin/classesdebug/java/awt/AWTException$0$debug.class new file mode 100644 index 000000000..7ca5d1ed4 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/AWTException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/AWTException.class b/app/build/bin/classesdebug/java/awt/AWTException.class new file mode 100644 index 000000000..e4b25b402 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/AWTException.class differ diff --git a/app/build/bin/classesdebug/java/awt/BorderLayout$0$debug.class b/app/build/bin/classesdebug/java/awt/BorderLayout$0$debug.class new file mode 100644 index 000000000..b871cb3a1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/BorderLayout$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/BorderLayout.class b/app/build/bin/classesdebug/java/awt/BorderLayout.class new file mode 100644 index 000000000..885390356 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/BorderLayout.class differ diff --git a/app/build/bin/classesdebug/java/awt/Canvas$0$debug.class b/app/build/bin/classesdebug/java/awt/Canvas$0$debug.class new file mode 100644 index 000000000..f8b23c1bc Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Canvas$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Canvas.class b/app/build/bin/classesdebug/java/awt/Canvas.class new file mode 100644 index 000000000..9fea6728f Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Canvas.class differ diff --git a/app/build/bin/classesdebug/java/awt/Color$0$debug.class b/app/build/bin/classesdebug/java/awt/Color$0$debug.class new file mode 100644 index 000000000..95643518c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Color$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Color.class b/app/build/bin/classesdebug/java/awt/Color.class new file mode 100644 index 000000000..80ec2d124 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Color.class differ diff --git a/app/build/bin/classesdebug/java/awt/Component$0$debug.class b/app/build/bin/classesdebug/java/awt/Component$0$debug.class new file mode 100644 index 000000000..183f53518 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Component$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Component.class b/app/build/bin/classesdebug/java/awt/Component.class new file mode 100644 index 000000000..314c6d9b1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Component.class differ diff --git a/app/build/bin/classesdebug/java/awt/ComponentOrientation$0$debug.class b/app/build/bin/classesdebug/java/awt/ComponentOrientation$0$debug.class new file mode 100644 index 000000000..9d16c0f00 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/ComponentOrientation$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/ComponentOrientation.class b/app/build/bin/classesdebug/java/awt/ComponentOrientation.class new file mode 100644 index 000000000..9bf60d639 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/ComponentOrientation.class differ diff --git a/app/build/bin/classesdebug/java/awt/Conditional.class b/app/build/bin/classesdebug/java/awt/Conditional.class new file mode 100644 index 000000000..1dfcc8f9b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Conditional.class differ diff --git a/app/build/bin/classesdebug/java/awt/Container$0$debug.class b/app/build/bin/classesdebug/java/awt/Container$0$debug.class new file mode 100644 index 000000000..312e9c519 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Container$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Container.class b/app/build/bin/classesdebug/java/awt/Container.class new file mode 100644 index 000000000..4a27f6549 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Container.class differ diff --git a/app/build/bin/classesdebug/java/awt/Cursor$0$debug.class b/app/build/bin/classesdebug/java/awt/Cursor$0$debug.class new file mode 100644 index 000000000..401be2265 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Cursor$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Cursor.class b/app/build/bin/classesdebug/java/awt/Cursor.class new file mode 100644 index 000000000..5b9389c67 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Cursor.class differ diff --git a/app/build/bin/classesdebug/java/awt/Desktop$0$debug.class b/app/build/bin/classesdebug/java/awt/Desktop$0$debug.class new file mode 100644 index 000000000..d2ca1b262 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Desktop$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Desktop$Action$0$debug.class b/app/build/bin/classesdebug/java/awt/Desktop$Action$0$debug.class new file mode 100644 index 000000000..67a1dbb54 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Desktop$Action$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Desktop$Action.class b/app/build/bin/classesdebug/java/awt/Desktop$Action.class new file mode 100644 index 000000000..c995bc18e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Desktop$Action.class differ diff --git a/app/build/bin/classesdebug/java/awt/Desktop.class b/app/build/bin/classesdebug/java/awt/Desktop.class new file mode 100644 index 000000000..146bb7fd4 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Desktop.class differ diff --git a/app/build/bin/classesdebug/java/awt/Dimension$0$debug.class b/app/build/bin/classesdebug/java/awt/Dimension$0$debug.class new file mode 100644 index 000000000..4b1333c4c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Dimension$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Dimension.class b/app/build/bin/classesdebug/java/awt/Dimension.class new file mode 100644 index 000000000..31d34c458 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Dimension.class differ diff --git a/app/build/bin/classesdebug/java/awt/DisplayMode$0$debug.class b/app/build/bin/classesdebug/java/awt/DisplayMode$0$debug.class new file mode 100644 index 000000000..ae4b86f91 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/DisplayMode$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/DisplayMode.class b/app/build/bin/classesdebug/java/awt/DisplayMode.class new file mode 100644 index 000000000..53e415416 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/DisplayMode.class differ diff --git a/app/build/bin/classesdebug/java/awt/FlowLayout$0$debug.class b/app/build/bin/classesdebug/java/awt/FlowLayout$0$debug.class new file mode 100644 index 000000000..c2649abb0 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/FlowLayout$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/FlowLayout.class b/app/build/bin/classesdebug/java/awt/FlowLayout.class new file mode 100644 index 000000000..aafda3d3d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/FlowLayout.class differ diff --git a/app/build/bin/classesdebug/java/awt/Font$0$debug.class b/app/build/bin/classesdebug/java/awt/Font$0$debug.class new file mode 100644 index 000000000..421ffb4c7 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Font$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Font.class b/app/build/bin/classesdebug/java/awt/Font.class new file mode 100644 index 000000000..07cd7a089 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Font.class differ diff --git a/app/build/bin/classesdebug/java/awt/FontFormatException$0$debug.class b/app/build/bin/classesdebug/java/awt/FontFormatException$0$debug.class new file mode 100644 index 000000000..6666dab0a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/FontFormatException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/FontFormatException.class b/app/build/bin/classesdebug/java/awt/FontFormatException.class new file mode 100644 index 000000000..15d3074c4 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/FontFormatException.class differ diff --git a/app/build/bin/classesdebug/java/awt/Frame$0$debug.class b/app/build/bin/classesdebug/java/awt/Frame$0$debug.class new file mode 100644 index 000000000..bbdbe1ecb Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Frame$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Frame.class b/app/build/bin/classesdebug/java/awt/Frame.class new file mode 100644 index 000000000..598587183 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Frame.class differ diff --git a/app/build/bin/classesdebug/java/awt/Graphics$0$debug.class b/app/build/bin/classesdebug/java/awt/Graphics$0$debug.class new file mode 100644 index 000000000..a3e5a2963 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Graphics$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Graphics.class b/app/build/bin/classesdebug/java/awt/Graphics.class new file mode 100644 index 000000000..28275953d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Graphics.class differ diff --git a/app/build/bin/classesdebug/java/awt/Graphics2D$0$debug.class b/app/build/bin/classesdebug/java/awt/Graphics2D$0$debug.class new file mode 100644 index 000000000..8bf23bb89 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Graphics2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Graphics2D.class b/app/build/bin/classesdebug/java/awt/Graphics2D.class new file mode 100644 index 000000000..d8dc94085 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Graphics2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/GraphicsEnvironment$0$debug.class b/app/build/bin/classesdebug/java/awt/GraphicsEnvironment$0$debug.class new file mode 100644 index 000000000..83072eee9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/GraphicsEnvironment$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/GraphicsEnvironment.class b/app/build/bin/classesdebug/java/awt/GraphicsEnvironment.class new file mode 100644 index 000000000..a24a55811 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/GraphicsEnvironment.class differ diff --git a/app/build/bin/classesdebug/java/awt/HeadlessException$0$debug.class b/app/build/bin/classesdebug/java/awt/HeadlessException$0$debug.class new file mode 100644 index 000000000..bc8f62521 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/HeadlessException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/HeadlessException.class b/app/build/bin/classesdebug/java/awt/HeadlessException.class new file mode 100644 index 000000000..9c0578847 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/HeadlessException.class differ diff --git a/app/build/bin/classesdebug/java/awt/IllegalComponentStateException$0$debug.class b/app/build/bin/classesdebug/java/awt/IllegalComponentStateException$0$debug.class new file mode 100644 index 000000000..d2b01713c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/IllegalComponentStateException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/IllegalComponentStateException.class b/app/build/bin/classesdebug/java/awt/IllegalComponentStateException.class new file mode 100644 index 000000000..fbfcbe0ae Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/IllegalComponentStateException.class differ diff --git a/app/build/bin/classesdebug/java/awt/Image$0$debug.class b/app/build/bin/classesdebug/java/awt/Image$0$debug.class new file mode 100644 index 000000000..d5695e717 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Image$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Image.class b/app/build/bin/classesdebug/java/awt/Image.class new file mode 100644 index 000000000..575163248 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Image.class differ diff --git a/app/build/bin/classesdebug/java/awt/Insets$0$debug.class b/app/build/bin/classesdebug/java/awt/Insets$0$debug.class new file mode 100644 index 000000000..dfeecc955 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Insets$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Insets.class b/app/build/bin/classesdebug/java/awt/Insets.class new file mode 100644 index 000000000..89447c7d9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Insets.class differ diff --git a/app/build/bin/classesdebug/java/awt/LayoutManager.class b/app/build/bin/classesdebug/java/awt/LayoutManager.class new file mode 100644 index 000000000..9e1d7635a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/LayoutManager.class differ diff --git a/app/build/bin/classesdebug/java/awt/LayoutManager2.class b/app/build/bin/classesdebug/java/awt/LayoutManager2.class new file mode 100644 index 000000000..53dc7561b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/LayoutManager2.class differ diff --git a/app/build/bin/classesdebug/java/awt/Panel$0$debug.class b/app/build/bin/classesdebug/java/awt/Panel$0$debug.class new file mode 100644 index 000000000..6e2b06091 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Panel$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel$0$debug.class b/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel$0$debug.class new file mode 100644 index 000000000..f084e4b7e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel.class b/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel.class new file mode 100644 index 000000000..54217b731 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Panel$AccessibleAWTPanel.class differ diff --git a/app/build/bin/classesdebug/java/awt/Panel.class b/app/build/bin/classesdebug/java/awt/Panel.class new file mode 100644 index 000000000..1a9fc4a1c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Panel.class differ diff --git a/app/build/bin/classesdebug/java/awt/Point$0$debug.class b/app/build/bin/classesdebug/java/awt/Point$0$debug.class new file mode 100644 index 000000000..cc7efc78a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Point$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Point.class b/app/build/bin/classesdebug/java/awt/Point.class new file mode 100644 index 000000000..45819a3c4 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Point.class differ diff --git a/app/build/bin/classesdebug/java/awt/Rectangle$0$debug.class b/app/build/bin/classesdebug/java/awt/Rectangle$0$debug.class new file mode 100644 index 000000000..559bbc3d2 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Rectangle$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Rectangle.class b/app/build/bin/classesdebug/java/awt/Rectangle.class new file mode 100644 index 000000000..87522eefd Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Rectangle.class differ diff --git a/app/build/bin/classesdebug/java/awt/Shape.class b/app/build/bin/classesdebug/java/awt/Shape.class new file mode 100644 index 000000000..e63ca4fa8 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Shape.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit$0$debug.class b/app/build/bin/classesdebug/java/awt/Toolkit$0$debug.class new file mode 100644 index 000000000..d4b968893 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit$100000000$0$debug.class b/app/build/bin/classesdebug/java/awt/Toolkit$100000000$0$debug.class new file mode 100644 index 000000000..11c428c6c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit$100000000.class b/app/build/bin/classesdebug/java/awt/Toolkit$100000000.class new file mode 100644 index 000000000..a42629e10 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit$100000000.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock$0$debug.class b/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock$0$debug.class new file mode 100644 index 000000000..f82a1dd7b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock.class b/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock.class new file mode 100644 index 000000000..002a99037 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit$AWTTreeLock.class differ diff --git a/app/build/bin/classesdebug/java/awt/Toolkit.class b/app/build/bin/classesdebug/java/awt/Toolkit.class new file mode 100644 index 000000000..486096a5a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Toolkit.class differ diff --git a/app/build/bin/classesdebug/java/awt/Transparency.class b/app/build/bin/classesdebug/java/awt/Transparency.class new file mode 100644 index 000000000..64a6e2977 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Transparency.class differ diff --git a/app/build/bin/classesdebug/java/awt/Window$0$debug.class b/app/build/bin/classesdebug/java/awt/Window$0$debug.class new file mode 100644 index 000000000..50d83f374 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Window$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/Window.class b/app/build/bin/classesdebug/java/awt/Window.class new file mode 100644 index 000000000..9c4db62c0 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/Window.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$0$debug.class new file mode 100644 index 000000000..4214e7b98 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000$0$debug.class new file mode 100644 index 000000000..4d7fac0ec Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000.class b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000.class new file mode 100644 index 000000000..c5f3da39c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard$100000000.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard.class b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard.class new file mode 100644 index 000000000..a1c390b5e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/Clipboard.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/ClipboardOwner.class b/app/build/bin/classesdebug/java/awt/datatransfer/ClipboardOwner.class new file mode 100644 index 000000000..3c4291065 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/ClipboardOwner.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor$0$debug.class new file mode 100644 index 000000000..1e6e328c8 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor.class b/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor.class new file mode 100644 index 000000000..4938ebf58 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/DataFlavor.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$0$debug.class new file mode 100644 index 000000000..b3e0eb634 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType$0$debug.class new file mode 100644 index 000000000..8e0456ce7 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType.class new file mode 100644 index 000000000..2c52025d6 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$MimeType.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition$0$debug.class new file mode 100644 index 000000000..227830c73 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class new file mode 100644 index 000000000..82c5dbe59 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor.class b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor.class new file mode 100644 index 000000000..aac357c15 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/MimeTypeProcessor.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection$0$debug.class new file mode 100644 index 000000000..0f98ca1a8 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection.class b/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection.class new file mode 100644 index 000000000..12d6cb205 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/StringSelection.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/Transferable.class b/app/build/bin/classesdebug/java/awt/datatransfer/Transferable.class new file mode 100644 index 000000000..7d865fc81 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/Transferable.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException$0$debug.class b/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException$0$debug.class new file mode 100644 index 000000000..d4bdaa78b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException.class b/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException.class new file mode 100644 index 000000000..684c5ad68 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/datatransfer/UnsupportedFlavorException.class differ diff --git a/app/build/bin/classesdebug/java/awt/event/WindowAdapter$0$debug.class b/app/build/bin/classesdebug/java/awt/event/WindowAdapter$0$debug.class new file mode 100644 index 000000000..bb97c97c5 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/event/WindowAdapter$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/event/WindowAdapter.class b/app/build/bin/classesdebug/java/awt/event/WindowAdapter.class new file mode 100644 index 000000000..5a5476d9d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/event/WindowAdapter.class differ diff --git a/app/build/bin/classesdebug/java/awt/event/WindowEvent$0$debug.class b/app/build/bin/classesdebug/java/awt/event/WindowEvent$0$debug.class new file mode 100644 index 000000000..c3579f495 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/event/WindowEvent$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/event/WindowEvent.class b/app/build/bin/classesdebug/java/awt/event/WindowEvent.class new file mode 100644 index 000000000..54eba0807 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/event/WindowEvent.class differ diff --git a/app/build/bin/classesdebug/java/awt/event/WindowListener.class b/app/build/bin/classesdebug/java/awt/event/WindowListener.class new file mode 100644 index 000000000..4a068a639 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/event/WindowListener.class differ diff --git a/app/build/bin/classesdebug/java/awt/font/TextAttribute$0$debug.class b/app/build/bin/classesdebug/java/awt/font/TextAttribute$0$debug.class new file mode 100644 index 000000000..5b9e209a1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/font/TextAttribute$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/font/TextAttribute.class b/app/build/bin/classesdebug/java/awt/font/TextAttribute.class new file mode 100644 index 000000000..846b5e17a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/font/TextAttribute.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/AffineTransform$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/AffineTransform$0$debug.class new file mode 100644 index 000000000..722b70e78 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/AffineTransform$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/AffineTransform.class b/app/build/bin/classesdebug/java/awt/geom/AffineTransform.class new file mode 100644 index 000000000..9304680e6 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/AffineTransform.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$0$debug.class new file mode 100644 index 000000000..74d19fa00 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double$0$debug.class new file mode 100644 index 000000000..b186fdbf3 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double.class new file mode 100644 index 000000000..74cbd0153 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float$0$debug.class new file mode 100644 index 000000000..af45b831b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float.class new file mode 100644 index 000000000..32ab1b600 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator$0$debug.class new file mode 100644 index 000000000..fc67db9e9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator.class new file mode 100644 index 000000000..8b350165a Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Arc2D.class b/app/build/bin/classesdebug/java/awt/geom/Arc2D.class new file mode 100644 index 000000000..1d7753ec1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Arc2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Area$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Area$0$debug.class new file mode 100644 index 000000000..8f7112a0c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Area$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator$0$debug.class new file mode 100644 index 000000000..37be61c08 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator.class b/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator.class new file mode 100644 index 000000000..8751c2857 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Area$NullIterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Area.class b/app/build/bin/classesdebug/java/awt/geom/Area.class new file mode 100644 index 000000000..761eb033e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Area.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$0$debug.class new file mode 100644 index 000000000..1d4910122 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double$0$debug.class new file mode 100644 index 000000000..29a89611e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double.class new file mode 100644 index 000000000..e555218be Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float$0$debug.class new file mode 100644 index 000000000..e35f18eba Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float.class new file mode 100644 index 000000000..c299f5655 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator$0$debug.class new file mode 100644 index 000000000..681cd242c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator.class new file mode 100644 index 000000000..7aced11d2 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D.class b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D.class new file mode 100644 index 000000000..86a98e4fb Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/CubicCurve2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Dimension2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Dimension2D$0$debug.class new file mode 100644 index 000000000..259939803 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Dimension2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Dimension2D.class b/app/build/bin/classesdebug/java/awt/geom/Dimension2D.class new file mode 100644 index 000000000..743163fbd Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Dimension2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$0$debug.class new file mode 100644 index 000000000..6da5cb634 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double$0$debug.class new file mode 100644 index 000000000..61bbb2cd6 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double.class new file mode 100644 index 000000000..4722dcb34 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float$0$debug.class new file mode 100644 index 000000000..ca68d24c2 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float.class new file mode 100644 index 000000000..692444b2b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator$0$debug.class new file mode 100644 index 000000000..7ff5f4487 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator.class new file mode 100644 index 000000000..e471a1cf1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Ellipse2D.class b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D.class new file mode 100644 index 000000000..52587e31e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Ellipse2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator$0$debug.class new file mode 100644 index 000000000..d9c6a3457 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator.class b/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator.class new file mode 100644 index 000000000..32619b37b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/FlatteningPathIterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/GeneralPath$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$0$debug.class new file mode 100644 index 000000000..448632d4b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator$0$debug.class new file mode 100644 index 000000000..e0e949ad7 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator.class new file mode 100644 index 000000000..aca7478c8 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/GeneralPath$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/GeneralPath.class b/app/build/bin/classesdebug/java/awt/geom/GeneralPath.class new file mode 100644 index 000000000..11ff0cc64 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/GeneralPath.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException$0$debug.class new file mode 100644 index 000000000..1865f24ae Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException.class b/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException.class new file mode 100644 index 000000000..e1a0c78d9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/IllegalPathStateException.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$0$debug.class new file mode 100644 index 000000000..9ae64383b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Double$0$debug.class new file mode 100644 index 000000000..47f9f015c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Double.class new file mode 100644 index 000000000..ebcb808e8 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Float$0$debug.class new file mode 100644 index 000000000..b2a8d3e28 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Float.class new file mode 100644 index 000000000..2e71e34ca Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator$0$debug.class new file mode 100644 index 000000000..59a1f20c3 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator.class new file mode 100644 index 000000000..0cbfa027d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Line2D.class b/app/build/bin/classesdebug/java/awt/geom/Line2D.class new file mode 100644 index 000000000..ba7eeeb73 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Line2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException$0$debug.class new file mode 100644 index 000000000..a9a65cc47 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException.class b/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException.class new file mode 100644 index 000000000..1cd68bde7 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/NoninvertibleTransformException.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/PathIterator.class b/app/build/bin/classesdebug/java/awt/geom/PathIterator.class new file mode 100644 index 000000000..d26d4916e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/PathIterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Point2D$0$debug.class new file mode 100644 index 000000000..19b8760dd Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Point2D$Double$0$debug.class new file mode 100644 index 000000000..fdc9766af Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/Point2D$Double.class new file mode 100644 index 000000000..42b067c4d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Point2D$Float$0$debug.class new file mode 100644 index 000000000..3fd94fff9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/Point2D$Float.class new file mode 100644 index 000000000..fd6684705 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Point2D.class b/app/build/bin/classesdebug/java/awt/geom/Point2D.class new file mode 100644 index 000000000..738959445 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Point2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$0$debug.class new file mode 100644 index 000000000..05378e87b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double$0$debug.class new file mode 100644 index 000000000..75bf0a792 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double.class new file mode 100644 index 000000000..325a8b389 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float$0$debug.class new file mode 100644 index 000000000..24c250e9d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float.class new file mode 100644 index 000000000..ec5f5b0d0 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator$0$debug.class new file mode 100644 index 000000000..218d6f362 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator.class new file mode 100644 index 000000000..b6cf7a327 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D.class b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D.class new file mode 100644 index 000000000..408f75ccd Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/QuadCurve2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$0$debug.class new file mode 100644 index 000000000..5b69e44c0 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double$0$debug.class new file mode 100644 index 000000000..d19ea3873 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double.class new file mode 100644 index 000000000..f3c30bb19 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float$0$debug.class new file mode 100644 index 000000000..1a86e1b21 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float.class new file mode 100644 index 000000000..1b3e0cb30 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator$0$debug.class new file mode 100644 index 000000000..55d63769d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator.class new file mode 100644 index 000000000..59b30b897 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/Rectangle2D.class b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D.class new file mode 100644 index 000000000..d793f7890 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/Rectangle2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RectangularShape$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/RectangularShape$0$debug.class new file mode 100644 index 000000000..e145d2597 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RectangularShape$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RectangularShape.class b/app/build/bin/classesdebug/java/awt/geom/RectangularShape.class new file mode 100644 index 000000000..9fea88d93 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RectangularShape.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$0$debug.class new file mode 100644 index 000000000..2ee9bdb80 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double$0$debug.class new file mode 100644 index 000000000..e9270e18c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double.class new file mode 100644 index 000000000..468cd1b89 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Double.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float$0$debug.class new file mode 100644 index 000000000..0fb5e8997 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float.class new file mode 100644 index 000000000..aa1cda877 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Float.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator$0$debug.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator$0$debug.class new file mode 100644 index 000000000..507801a94 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator.class new file mode 100644 index 000000000..4457de96b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D$Iterator.class differ diff --git a/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D.class b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D.class new file mode 100644 index 000000000..2fc6ea3d9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/geom/RoundRectangle2D.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/BufferedImage$0$debug.class b/app/build/bin/classesdebug/java/awt/image/BufferedImage$0$debug.class new file mode 100644 index 000000000..9fbeabb2d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/BufferedImage$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/BufferedImage.class b/app/build/bin/classesdebug/java/awt/image/BufferedImage.class new file mode 100644 index 000000000..2406645cc Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/BufferedImage.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/DataBuffer$0$debug.class b/app/build/bin/classesdebug/java/awt/image/DataBuffer$0$debug.class new file mode 100644 index 000000000..64b2945a1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/DataBuffer$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/DataBuffer.class b/app/build/bin/classesdebug/java/awt/image/DataBuffer.class new file mode 100644 index 000000000..030edb30e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/DataBuffer.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/DataBufferInt$0$debug.class b/app/build/bin/classesdebug/java/awt/image/DataBufferInt$0$debug.class new file mode 100644 index 000000000..8dc7ad39d Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/DataBufferInt$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/DataBufferInt.class b/app/build/bin/classesdebug/java/awt/image/DataBufferInt.class new file mode 100644 index 000000000..fba83555e Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/DataBufferInt.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/ImageObserver$0$debug.class b/app/build/bin/classesdebug/java/awt/image/ImageObserver$0$debug.class new file mode 100644 index 000000000..543ea4f9f Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/ImageObserver$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/ImageObserver.class b/app/build/bin/classesdebug/java/awt/image/ImageObserver.class new file mode 100644 index 000000000..591568918 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/ImageObserver.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/RenderedImage.class b/app/build/bin/classesdebug/java/awt/image/RenderedImage.class new file mode 100644 index 000000000..ce6aedee9 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/RenderedImage.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/WritableRaster$0$debug.class b/app/build/bin/classesdebug/java/awt/image/WritableRaster$0$debug.class new file mode 100644 index 000000000..c76b26dc1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/WritableRaster$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/image/WritableRaster.class b/app/build/bin/classesdebug/java/awt/image/WritableRaster.class new file mode 100644 index 000000000..7ae6c063c Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/image/WritableRaster.class differ diff --git a/app/build/bin/classesdebug/java/awt/mod/ModdingKit$0$debug.class b/app/build/bin/classesdebug/java/awt/mod/ModdingKit$0$debug.class new file mode 100644 index 000000000..2d79aac7b Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/mod/ModdingKit$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/awt/mod/ModdingKit.class b/app/build/bin/classesdebug/java/awt/mod/ModdingKit.class new file mode 100644 index 000000000..dd229f662 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/mod/ModdingKit.class differ diff --git a/app/build/bin/classesdebug/java/awt/peer/DesktopPeer.class b/app/build/bin/classesdebug/java/awt/peer/DesktopPeer.class new file mode 100644 index 000000000..c76ea33e1 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/peer/DesktopPeer.class differ diff --git a/app/build/bin/classesdebug/java/awt/peer/FontPeer.class b/app/build/bin/classesdebug/java/awt/peer/FontPeer.class new file mode 100644 index 000000000..0dd3d4c70 Binary files /dev/null and b/app/build/bin/classesdebug/java/awt/peer/FontPeer.class differ diff --git a/app/build/bin/classesdebug/java/lang/management/ManagementFactory$0$debug.class b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$0$debug.class new file mode 100644 index 000000000..d76f9b89f Binary files /dev/null and b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl$0$debug.class b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl$0$debug.class new file mode 100644 index 000000000..6a81ea937 Binary files /dev/null and b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class new file mode 100644 index 000000000..d9f093bec Binary files /dev/null and b/app/build/bin/classesdebug/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class differ diff --git a/app/build/bin/classesdebug/java/lang/management/ManagementFactory.class b/app/build/bin/classesdebug/java/lang/management/ManagementFactory.class new file mode 100644 index 000000000..db9dae95b Binary files /dev/null and b/app/build/bin/classesdebug/java/lang/management/ManagementFactory.class differ diff --git a/app/build/bin/classesdebug/java/lang/management/RuntimeMXBean.class b/app/build/bin/classesdebug/java/lang/management/RuntimeMXBean.class new file mode 100644 index 000000000..c17477ef4 Binary files /dev/null and b/app/build/bin/classesdebug/java/lang/management/RuntimeMXBean.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/ASCII$0$debug.class b/app/build/bin/classesdebug/java/util/regex/ASCII$0$debug.class new file mode 100644 index 000000000..deef13569 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/ASCII$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/ASCII.class b/app/build/bin/classesdebug/java/util/regex/ASCII.class new file mode 100644 index 000000000..022830375 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/ASCII.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/MatchResult.class b/app/build/bin/classesdebug/java/util/regex/MatchResult.class new file mode 100644 index 000000000..2bdee41ae Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/MatchResult.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Matcher$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Matcher$0$debug.class new file mode 100644 index 000000000..729f3026c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Matcher$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Matcher.class b/app/build/bin/classesdebug/java/util/regex/Matcher.class new file mode 100644 index 000000000..d8ef6d1cb Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Matcher.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$0$debug.class new file mode 100644 index 000000000..da4051dc6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000001$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000001$0$debug.class new file mode 100644 index 000000000..33f31b9d1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000001.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000001.class new file mode 100644 index 000000000..1a00f094c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000001.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000002$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000002$0$debug.class new file mode 100644 index 000000000..8930f4028 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000002.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000002.class new file mode 100644 index 000000000..ed517de04 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000002.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000003$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000003$0$debug.class new file mode 100644 index 000000000..bfe0b82a8 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000003.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000003.class new file mode 100644 index 000000000..4b5f15423 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000003.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000004$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000004$0$debug.class new file mode 100644 index 000000000..8d9c6e919 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000004.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000004.class new file mode 100644 index 000000000..c7b3f5656 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000004.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000005$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000005$0$debug.class new file mode 100644 index 000000000..c8f82dcb6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000005.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000005.class new file mode 100644 index 000000000..27f72426b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000005.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000006$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000006$0$debug.class new file mode 100644 index 000000000..be47dc5f6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000006.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000006.class new file mode 100644 index 000000000..a74d7c02e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000006.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000007$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000007$0$debug.class new file mode 100644 index 000000000..fafd37841 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000007$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$100000007.class b/app/build/bin/classesdebug/java/util/regex/Pattern$100000007.class new file mode 100644 index 000000000..93dc14836 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$100000007.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$All$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$All$0$debug.class new file mode 100644 index 000000000..20b04ff39 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$All$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$All.class b/app/build/bin/classesdebug/java/util/regex/Pattern$All.class new file mode 100644 index 000000000..06ee6e8ba Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$All.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef$0$debug.class new file mode 100644 index 000000000..caa1ab1b3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef.class new file mode 100644 index 000000000..29b51efd3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BackRef.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Begin$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Begin$0$debug.class new file mode 100644 index 000000000..5436e3b11 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Begin$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Begin.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Begin.class new file mode 100644 index 000000000..39fa40899 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Begin.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Behind$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Behind$0$debug.class new file mode 100644 index 000000000..9194f4444 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Behind$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Behind.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Behind.class new file mode 100644 index 000000000..b52c9511e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Behind.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS$0$debug.class new file mode 100644 index 000000000..bead923c1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS.class new file mode 100644 index 000000000..e8c347707 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BehindS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass$0$debug.class new file mode 100644 index 000000000..e88a0035a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass.class new file mode 100644 index 000000000..5b8862d92 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BitClass.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Block$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Block$0$debug.class new file mode 100644 index 000000000..193067c01 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Block$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Block.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Block.class new file mode 100644 index 000000000..319d212da Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Block.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty$0$debug.class new file mode 100644 index 000000000..3dfd27c10 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty.class new file mode 100644 index 000000000..b09e43383 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BmpCharProperty.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BnM$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BnM$0$debug.class new file mode 100644 index 000000000..5d085da3d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BnM$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BnM.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BnM.class new file mode 100644 index 000000000..0e75fb9ee Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BnM.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS$0$debug.class new file mode 100644 index 000000000..7a2ebce06 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS.class new file mode 100644 index 000000000..c851010ec Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BnMS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Bound$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Bound$0$debug.class new file mode 100644 index 000000000..5474e4ece Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Bound$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Bound.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Bound.class new file mode 100644 index 000000000..491f8141c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Bound.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Branch$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Branch$0$debug.class new file mode 100644 index 000000000..767d60114 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Branch$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Branch.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Branch.class new file mode 100644 index 000000000..0ce4fb120 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Branch.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn$0$debug.class new file mode 100644 index 000000000..d4e87e7ad Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn.class b/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn.class new file mode 100644 index 000000000..4ffc8e7de Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$BranchConn.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef$0$debug.class new file mode 100644 index 000000000..0a43a8379 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef.class new file mode 100644 index 000000000..73cb608f3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CIBackRef.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Caret$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Caret$0$debug.class new file mode 100644 index 000000000..0ddc9672e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Caret$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Caret.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Caret.class new file mode 100644 index 000000000..551879a84 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Caret.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Category$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Category$0$debug.class new file mode 100644 index 000000000..dc681e81d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Category$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Category.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Category.class new file mode 100644 index 000000000..8fa8f72d6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Category.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$0$debug.class new file mode 100644 index 000000000..2615c5c6c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000$0$debug.class new file mode 100644 index 000000000..b7904d9ee Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000.class new file mode 100644 index 000000000..f95234426 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty$100000000.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty.class new file mode 100644 index 000000000..722d747d2 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharProperty.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$0$debug.class new file mode 100644 index 000000000..71e84cec0 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008$0$debug.class new file mode 100644 index 000000000..4d2900f4a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008.class new file mode 100644 index 000000000..088299bba Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000008.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009$0$debug.class new file mode 100644 index 000000000..82088a85d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009.class new file mode 100644 index 000000000..ffb2b8904 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000009.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010$0$debug.class new file mode 100644 index 000000000..413ecb735 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010.class new file mode 100644 index 000000000..8cf48e472 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000010.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011$0$debug.class new file mode 100644 index 000000000..0315a9567 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011.class new file mode 100644 index 000000000..36c1029b4 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000011.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012$0$debug.class new file mode 100644 index 000000000..889b7e28d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012.class new file mode 100644 index 000000000..80eb745dd Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000012.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013$0$debug.class new file mode 100644 index 000000000..3a39f46b4 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013.class new file mode 100644 index 000000000..d72ff8e74 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000013.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014$0$debug.class new file mode 100644 index 000000000..4f8e482db Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014.class new file mode 100644 index 000000000..927c8cbbc Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000014.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015$0$debug.class new file mode 100644 index 000000000..049079a66 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015.class new file mode 100644 index 000000000..3c1fb2477 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000015.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016$0$debug.class new file mode 100644 index 000000000..53c36df9f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016.class new file mode 100644 index 000000000..8f1eae301 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000016.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017$0$debug.class new file mode 100644 index 000000000..9ecf67390 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017.class new file mode 100644 index 000000000..a3ee0317e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000017.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018$0$debug.class new file mode 100644 index 000000000..cf7468079 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018.class new file mode 100644 index 000000000..bdf24299f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000018.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019$0$debug.class new file mode 100644 index 000000000..0260de45d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019.class new file mode 100644 index 000000000..3def0847f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000019.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020$0$debug.class new file mode 100644 index 000000000..3f408355b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020.class new file mode 100644 index 000000000..f721f8bf5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000020.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021$0$debug.class new file mode 100644 index 000000000..8d61a3b62 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021.class new file mode 100644 index 000000000..478b6b838 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000021.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022$0$debug.class new file mode 100644 index 000000000..54b616b78 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022.class new file mode 100644 index 000000000..78db3af57 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000022.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023$0$debug.class new file mode 100644 index 000000000..331bdde14 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023.class new file mode 100644 index 000000000..989261ed2 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000023.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024$0$debug.class new file mode 100644 index 000000000..e237c5d3c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024.class new file mode 100644 index 000000000..87dc1919f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000024.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025$0$debug.class new file mode 100644 index 000000000..392c8114c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025.class new file mode 100644 index 000000000..4b00e3535 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000025.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026$0$debug.class new file mode 100644 index 000000000..e943afdf7 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026.class new file mode 100644 index 000000000..a2234864f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000026.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027$0$debug.class new file mode 100644 index 000000000..5ebc00596 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027.class new file mode 100644 index 000000000..5aee8fe9b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000027.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028$0$debug.class new file mode 100644 index 000000000..66b498e21 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028.class new file mode 100644 index 000000000..b3d0592d1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000028.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029$0$debug.class new file mode 100644 index 000000000..0112146d3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029.class new file mode 100644 index 000000000..b2a247471 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000029.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030$0$debug.class new file mode 100644 index 000000000..454f49a26 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030.class new file mode 100644 index 000000000..d2fabc5d1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$100000030.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory$0$debug.class new file mode 100644 index 000000000..effe6cea4 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class new file mode 100644 index 000000000..130af6b20 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty$0$debug.class new file mode 100644 index 000000000..093c986b1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class new file mode 100644 index 000000000..7a35b6966 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames.class b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames.class new file mode 100644 index 000000000..2268c29a4 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$CharPropertyNames.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional$0$debug.class new file mode 100644 index 000000000..18fcaae1b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional.class new file mode 100644 index 000000000..efee3498e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Conditional.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype$0$debug.class new file mode 100644 index 000000000..66c459fb9 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype.class new file mode 100644 index 000000000..97f35f0d7 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Ctype.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Curly$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Curly$0$debug.class new file mode 100644 index 000000000..8435c80e9 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Curly$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Curly.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Curly.class new file mode 100644 index 000000000..9dc26282b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Curly.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar$0$debug.class new file mode 100644 index 000000000..50af3d48f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar.class new file mode 100644 index 000000000..083b19d64 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Dollar.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Dot$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Dot$0$debug.class new file mode 100644 index 000000000..c0f1e8e1c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Dot$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Dot.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Dot.class new file mode 100644 index 000000000..29f6c053a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Dot.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$End$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$End$0$debug.class new file mode 100644 index 000000000..d9a5458ac Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$End$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$End.class b/app/build/bin/classesdebug/java/util/regex/Pattern$End.class new file mode 100644 index 000000000..5193257dd Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$End.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$First$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$First$0$debug.class new file mode 100644 index 000000000..cce381d22 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$First$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$First.class b/app/build/bin/classesdebug/java/util/regex/Pattern$First.class new file mode 100644 index 000000000..606b9844f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$First.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly$0$debug.class new file mode 100644 index 000000000..edc99ff71 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly.class new file mode 100644 index 000000000..5cbdeb9ba Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupCurly.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead$0$debug.class new file mode 100644 index 000000000..b2da187a2 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead.class new file mode 100644 index 000000000..b0cc17233 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupHead.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef$0$debug.class new file mode 100644 index 000000000..4b1153999 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef.class new file mode 100644 index 000000000..b0ee1300a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupRef.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail$0$debug.class new file mode 100644 index 000000000..e878286da Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail.class b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail.class new file mode 100644 index 000000000..86fb12dc1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$GroupTail.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch$0$debug.class new file mode 100644 index 000000000..745cb665c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch.class new file mode 100644 index 000000000..649526ca6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LastMatch.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode$0$debug.class new file mode 100644 index 000000000..ddfb79af1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode.class new file mode 100644 index 000000000..3b697c64a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LastNode.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop$0$debug.class new file mode 100644 index 000000000..30df575db Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop.class b/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop.class new file mode 100644 index 000000000..3d1b93790 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$LazyLoop.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Loop$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Loop$0$debug.class new file mode 100644 index 000000000..94edbbb5b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Loop$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Loop.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Loop.class new file mode 100644 index 000000000..fd8dd5f46 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Loop.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Neg$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Neg$0$debug.class new file mode 100644 index 000000000..d956247ca Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Neg$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Neg.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Neg.class new file mode 100644 index 000000000..f922a85e5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Neg.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Node$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Node$0$debug.class new file mode 100644 index 000000000..3738e1dd1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Node$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Node.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Node.class new file mode 100644 index 000000000..fdcbf462b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Node.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind$0$debug.class new file mode 100644 index 000000000..d3d886427 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind.class b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind.class new file mode 100644 index 000000000..135da7aae Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehind.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS$0$debug.class new file mode 100644 index 000000000..5529378b5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS.class new file mode 100644 index 000000000..2c7621136 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$NotBehindS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Pos$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Pos$0$debug.class new file mode 100644 index 000000000..d56eb74ec Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Pos$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Pos.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Pos.class new file mode 100644 index 000000000..d076447e6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Pos.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog$0$debug.class new file mode 100644 index 000000000..c9d8c0e74 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog.class new file mode 100644 index 000000000..15e8576f5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Prolog.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Ques$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Ques$0$debug.class new file mode 100644 index 000000000..63b819983 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Ques$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Ques.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Ques.class new file mode 100644 index 000000000..a0e97c4f1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Ques.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Script$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Script$0$debug.class new file mode 100644 index 000000000..94b6b1911 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Script$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Script.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Script.class new file mode 100644 index 000000000..cc7eec24c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Script.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Single$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Single$0$debug.class new file mode 100644 index 000000000..9a8f4c725 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Single$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Single.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Single.class new file mode 100644 index 000000000..74ad42fa6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Single.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI$0$debug.class new file mode 100644 index 000000000..bd1505624 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI.class new file mode 100644 index 000000000..ee2186f04 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleI.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS$0$debug.class new file mode 100644 index 000000000..baa3154a3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS.class new file mode 100644 index 000000000..86c798ff2 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU$0$debug.class new file mode 100644 index 000000000..410c5fb1c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU.class new file mode 100644 index 000000000..74fa6d838 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SingleU.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Slice$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Slice$0$debug.class new file mode 100644 index 000000000..6dcb13616 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Slice$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Slice.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Slice.class new file mode 100644 index 000000000..c5a274b84 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Slice.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI$0$debug.class new file mode 100644 index 000000000..1d70462f6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI.class new file mode 100644 index 000000000..e8ba5020e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceI.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS$0$debug.class new file mode 100644 index 000000000..eda4f5a4e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS.class new file mode 100644 index 000000000..dc37a86c3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceIS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode$0$debug.class new file mode 100644 index 000000000..71b7b2a57 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode.class new file mode 100644 index 000000000..39a49925e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceNode.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS$0$debug.class new file mode 100644 index 000000000..8610a8c3b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS.class new file mode 100644 index 000000000..79480c79d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU$0$debug.class new file mode 100644 index 000000000..944480a0d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU.class new file mode 100644 index 000000000..625682bfa Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceU.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS$0$debug.class new file mode 100644 index 000000000..afe4aad98 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS.class new file mode 100644 index 000000000..6be1adceb Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$SliceUS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Start$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Start$0$debug.class new file mode 100644 index 000000000..4d30be593 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Start$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Start.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Start.class new file mode 100644 index 000000000..042e9fbbe Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Start.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$StartS$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$StartS$0$debug.class new file mode 100644 index 000000000..884ba5102 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$StartS$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$StartS.class b/app/build/bin/classesdebug/java/util/regex/Pattern$StartS.class new file mode 100644 index 000000000..fbef55ae7 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$StartS.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo$0$debug.class new file mode 100644 index 000000000..80b135227 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo.class b/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo.class new file mode 100644 index 000000000..dd12fbb52 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$TreeInfo.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret$0$debug.class new file mode 100644 index 000000000..4004ac0b6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret.class new file mode 100644 index 000000000..fae4599e6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixCaret.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar$0$debug.class new file mode 100644 index 000000000..1f85b2e49 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar.class new file mode 100644 index 000000000..11f0a435a Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDollar.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot$0$debug.class new file mode 100644 index 000000000..21b49885b Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot.class b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot.class new file mode 100644 index 000000000..d4a56612d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$UnixDot.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Utype$0$debug.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Utype$0$debug.class new file mode 100644 index 000000000..82706eb96 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Utype$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern$Utype.class b/app/build/bin/classesdebug/java/util/regex/Pattern$Utype.class new file mode 100644 index 000000000..05157b21d Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern$Utype.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/Pattern.class b/app/build/bin/classesdebug/java/util/regex/Pattern.class new file mode 100644 index 000000000..cfbcbd5f5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/Pattern.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException$0$debug.class b/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException$0$debug.class new file mode 100644 index 000000000..6b231a3a1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException.class b/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException.class new file mode 100644 index 000000000..6ea9a3abc Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/PatternSyntaxException.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$0$debug.class new file mode 100644 index 000000000..5ef8385d7 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000$0$debug.class new file mode 100644 index 000000000..bd87086c9 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000.class new file mode 100644 index 000000000..fba30938f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000000.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001$0$debug.class new file mode 100644 index 000000000..a3517dbd6 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001.class new file mode 100644 index 000000000..e286aa9c2 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000001.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002$0$debug.class new file mode 100644 index 000000000..b83922e7c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002.class new file mode 100644 index 000000000..e982aabc4 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000002.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003$0$debug.class new file mode 100644 index 000000000..a13ad3d8c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003.class new file mode 100644 index 000000000..e23ea9f0e Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000003.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004$0$debug.class new file mode 100644 index 000000000..86aa65396 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004.class new file mode 100644 index 000000000..c5dcbc057 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000004.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005$0$debug.class new file mode 100644 index 000000000..22a441f3f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005.class new file mode 100644 index 000000000..de57d5cee Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000005.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006$0$debug.class new file mode 100644 index 000000000..b6b1c3cec Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006.class new file mode 100644 index 000000000..7832f0af3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000006.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007$0$debug.class new file mode 100644 index 000000000..396414b31 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007.class new file mode 100644 index 000000000..1e14893c5 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000007.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008$0$debug.class new file mode 100644 index 000000000..84d5c8d77 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008.class new file mode 100644 index 000000000..0f0b3e182 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000008.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009$0$debug.class new file mode 100644 index 000000000..98ba0aee3 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009.class new file mode 100644 index 000000000..03991eee8 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000009.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010$0$debug.class new file mode 100644 index 000000000..52b7cac74 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010.class new file mode 100644 index 000000000..2e46f0d3c Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000010.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011$0$debug.class new file mode 100644 index 000000000..9d42b56ba Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011.class new file mode 100644 index 000000000..becd9a639 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000011.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012$0$debug.class new file mode 100644 index 000000000..67ff39c40 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012.class new file mode 100644 index 000000000..5a9fe3186 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000012.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013$0$debug.class new file mode 100644 index 000000000..047d132ae Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013.class new file mode 100644 index 000000000..9c4e509dc Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000013.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014$0$debug.class new file mode 100644 index 000000000..cabd9a254 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014.class new file mode 100644 index 000000000..b74fe4ac1 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000014.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015$0$debug.class new file mode 100644 index 000000000..0315ae4dd Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015.class new file mode 100644 index 000000000..3db80ea03 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000015.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016$0$debug.class new file mode 100644 index 000000000..a7467ffee Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016.class new file mode 100644 index 000000000..608d036e8 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000016.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017$0$debug.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017$0$debug.class new file mode 100644 index 000000000..185e3a29f Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017$0$debug.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017.class new file mode 100644 index 000000000..bf0fb5960 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp$100000017.class differ diff --git a/app/build/bin/classesdebug/java/util/regex/UnicodeProp.class b/app/build/bin/classesdebug/java/util/regex/UnicodeProp.class new file mode 100644 index 000000000..1a3ea0820 Binary files /dev/null and b/app/build/bin/classesdebug/java/util/regex/UnicodeProp.class differ diff --git a/app/build/bin/classesdebug/javax/accessibility/Accessible.class b/app/build/bin/classesdebug/javax/accessibility/Accessible.class new file mode 100644 index 000000000..a10c44364 Binary files /dev/null and b/app/build/bin/classesdebug/javax/accessibility/Accessible.class differ diff --git a/app/build/bin/classesdebug/javax/accessibility/AccessibleContext$0$debug.class b/app/build/bin/classesdebug/javax/accessibility/AccessibleContext$0$debug.class new file mode 100644 index 000000000..616946a30 Binary files /dev/null and b/app/build/bin/classesdebug/javax/accessibility/AccessibleContext$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/accessibility/AccessibleContext.class b/app/build/bin/classesdebug/javax/accessibility/AccessibleContext.class new file mode 100644 index 000000000..44c558c36 Binary files /dev/null and b/app/build/bin/classesdebug/javax/accessibility/AccessibleContext.class differ diff --git a/app/build/bin/classesdebug/javax/accessibility/AccessibleText.class b/app/build/bin/classesdebug/javax/accessibility/AccessibleText.class new file mode 100644 index 000000000..63843f466 Binary files /dev/null and b/app/build/bin/classesdebug/javax/accessibility/AccessibleText.class differ diff --git a/app/build/bin/classesdebug/javax/imageio/IIOException$0$debug.class b/app/build/bin/classesdebug/javax/imageio/IIOException$0$debug.class new file mode 100644 index 000000000..77c4a3b3b Binary files /dev/null and b/app/build/bin/classesdebug/javax/imageio/IIOException$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/imageio/IIOException.class b/app/build/bin/classesdebug/javax/imageio/IIOException.class new file mode 100644 index 000000000..ce6c91c87 Binary files /dev/null and b/app/build/bin/classesdebug/javax/imageio/IIOException.class differ diff --git a/app/build/bin/classesdebug/javax/imageio/ImageIO$0$debug.class b/app/build/bin/classesdebug/javax/imageio/ImageIO$0$debug.class new file mode 100644 index 000000000..366ac512a Binary files /dev/null and b/app/build/bin/classesdebug/javax/imageio/ImageIO$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/imageio/ImageIO.class b/app/build/bin/classesdebug/javax/imageio/ImageIO.class new file mode 100644 index 000000000..84af48b6b Binary files /dev/null and b/app/build/bin/classesdebug/javax/imageio/ImageIO.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/ControllerEventListener.class b/app/build/bin/classesdebug/javax/sound/midi/ControllerEventListener.class new file mode 100644 index 000000000..eb3ed0ed5 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/ControllerEventListener.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Instrument$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Instrument$0$debug.class new file mode 100644 index 000000000..fc097a5a8 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Instrument$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Instrument.class b/app/build/bin/classesdebug/javax/sound/midi/Instrument.class new file mode 100644 index 000000000..91c7d7162 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Instrument.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException$0$debug.class new file mode 100644 index 000000000..98bef12a4 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException.class b/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException.class new file mode 100644 index 000000000..5c777a270 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/InvalidMidiDataException.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MetaEventListener.class b/app/build/bin/classesdebug/javax/sound/midi/MetaEventListener.class new file mode 100644 index 000000000..eb2a4d5ce Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MetaEventListener.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MetaMessage$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MetaMessage$0$debug.class new file mode 100644 index 000000000..957c5a33b Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MetaMessage$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MetaMessage.class b/app/build/bin/classesdebug/javax/sound/midi/MetaMessage.class new file mode 100644 index 000000000..0bc074ff5 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MetaMessage.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiChannel.class b/app/build/bin/classesdebug/javax/sound/midi/MidiChannel.class new file mode 100644 index 000000000..add04ae82 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiChannel.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info$0$debug.class new file mode 100644 index 000000000..9c6bb0be3 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info.class b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info.class new file mode 100644 index 000000000..4be6b44a6 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice$Info.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiDevice.class b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice.class new file mode 100644 index 000000000..ff59e068e Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiDevice.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceReceiver.class b/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceReceiver.class new file mode 100644 index 000000000..b63f01a5a Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceReceiver.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceTransmitter.class b/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceTransmitter.class new file mode 100644 index 000000000..5647be6da Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiDeviceTransmitter.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiEvent$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiEvent$0$debug.class new file mode 100644 index 000000000..d19ccc4da Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiEvent$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiEvent.class b/app/build/bin/classesdebug/javax/sound/midi/MidiEvent.class new file mode 100644 index 000000000..8f56274ae Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiEvent.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat$0$debug.class new file mode 100644 index 000000000..6c70b3bcd Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat.class b/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat.class new file mode 100644 index 000000000..90a3b7e9e Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiFileFormat.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiMessage$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiMessage$0$debug.class new file mode 100644 index 000000000..a82fef345 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiMessage$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiMessage.class b/app/build/bin/classesdebug/javax/sound/midi/MidiMessage.class new file mode 100644 index 000000000..8b227e5e3 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiMessage.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$0$debug.class new file mode 100644 index 000000000..5e280a81b Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils$0$debug.class new file mode 100644 index 000000000..ca7d71b6e Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils.class b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils.class new file mode 100644 index 000000000..1775af868 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem$MidiSystemUtils.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiSystem.class b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem.class new file mode 100644 index 000000000..ecaa897ba Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiSystem.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException$0$debug.class new file mode 100644 index 000000000..c944ed9ed Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException.class b/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException.class new file mode 100644 index 000000000..1b2ca2a25 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/MidiUnavailableException.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Patch$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Patch$0$debug.class new file mode 100644 index 000000000..c79eae406 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Patch$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Patch.class b/app/build/bin/classesdebug/javax/sound/midi/Patch.class new file mode 100644 index 000000000..7aa28b7f3 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Patch.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Receiver.class b/app/build/bin/classesdebug/javax/sound/midi/Receiver.class new file mode 100644 index 000000000..0bda35e8e Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Receiver.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Sequence$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Sequence$0$debug.class new file mode 100644 index 000000000..53eb026dd Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Sequence$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Sequence.class b/app/build/bin/classesdebug/javax/sound/midi/Sequence.class new file mode 100644 index 000000000..14c9481ca Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Sequence.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode$0$debug.class new file mode 100644 index 000000000..b2fbfa762 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode.class b/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode.class new file mode 100644 index 000000000..91fc342f9 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Sequencer$SyncMode.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Sequencer.class b/app/build/bin/classesdebug/javax/sound/midi/Sequencer.class new file mode 100644 index 000000000..8e0f19cf9 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Sequencer.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/ShortMessage$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/ShortMessage$0$debug.class new file mode 100644 index 000000000..8bfc3642c Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/ShortMessage$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/ShortMessage.class b/app/build/bin/classesdebug/javax/sound/midi/ShortMessage.class new file mode 100644 index 000000000..7ffbe0ddf Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/ShortMessage.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Soundbank.class b/app/build/bin/classesdebug/javax/sound/midi/Soundbank.class new file mode 100644 index 000000000..ba3d6e9a0 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Soundbank.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource$0$debug.class new file mode 100644 index 000000000..215591abc Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource.class b/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource.class new file mode 100644 index 000000000..847f5446d Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/SoundbankResource.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Synthesizer.class b/app/build/bin/classesdebug/javax/sound/midi/Synthesizer.class new file mode 100644 index 000000000..caaee4e9a Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Synthesizer.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/SysexMessage$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/SysexMessage$0$debug.class new file mode 100644 index 000000000..180d0321b Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/SysexMessage$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/SysexMessage.class b/app/build/bin/classesdebug/javax/sound/midi/SysexMessage.class new file mode 100644 index 000000000..ca801b40b Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/SysexMessage.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Track$0$debug.class new file mode 100644 index 000000000..5b1168057 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track$100000000$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Track$100000000$0$debug.class new file mode 100644 index 000000000..3ffafc81c Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track$100000000.class b/app/build/bin/classesdebug/javax/sound/midi/Track$100000000.class new file mode 100644 index 000000000..f83bd4fcc Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track$100000000.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils$0$debug.class new file mode 100644 index 000000000..c8752b041 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils.class b/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils.class new file mode 100644 index 000000000..0ee3408a2 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track$TrackUtils.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Track.class b/app/build/bin/classesdebug/javax/sound/midi/Track.class new file mode 100644 index 000000000..d67cef1d4 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Track.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/Transmitter.class b/app/build/bin/classesdebug/javax/sound/midi/Transmitter.class new file mode 100644 index 000000000..b83752473 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/Transmitter.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus$0$debug.class new file mode 100644 index 000000000..34c6d55a7 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus.class b/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus.class new file mode 100644 index 000000000..a4ff7f4f3 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/VoiceStatus.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl$0$debug.class new file mode 100644 index 000000000..bf6dfca20 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl.class b/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl.class new file mode 100644 index 000000000..436521518 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/MidiChannelImpl.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$0$debug.class new file mode 100644 index 000000000..745ce166c Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$0$debug.class new file mode 100644 index 000000000..e240a7d19 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000$0$debug.class new file mode 100644 index 000000000..3dc76912f Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class new file mode 100644 index 000000000..a16cb47d1 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread.class new file mode 100644 index 000000000..9ad4a1ce8 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl$SequencerThread.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl.class b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl.class new file mode 100644 index 000000000..f0528a135 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/impl/SequencerImpl.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$0$debug.class new file mode 100644 index 000000000..88639eca9 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat$0$debug.class new file mode 100644 index 000000000..da1d2338b Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class new file mode 100644 index 000000000..d37e95ac8 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream$0$debug.class new file mode 100644 index 000000000..cd94c4491 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class new file mode 100644 index 000000000..189d2faad Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader.class new file mode 100644 index 000000000..945846906 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileReader.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$0$debug.class new file mode 100644 index 000000000..f16136fa2 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream$0$debug.class new file mode 100644 index 000000000..6cd3f9252 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class new file mode 100644 index 000000000..2bac9b2b4 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter.class b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter.class new file mode 100644 index 000000000..7b924aae4 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/io/StandardMidiFileWriter.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider$0$debug.class new file mode 100644 index 000000000..1e68bb4f0 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider.class new file mode 100644 index 000000000..d04e96b57 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiDeviceProvider.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader$0$debug.class new file mode 100644 index 000000000..ab1bb08cd Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader.class new file mode 100644 index 000000000..6eb7707d4 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileReader.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter$0$debug.class new file mode 100644 index 000000000..142738d73 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter.class b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter.class new file mode 100644 index 000000000..ca158fa48 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/MidiFileWriter.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader$0$debug.class b/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader$0$debug.class new file mode 100644 index 000000000..0cc6e2991 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader.class b/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader.class new file mode 100644 index 000000000..6e4029a07 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/midi/spi/SoundbankReader.class differ diff --git a/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat$0$debug.class b/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat$0$debug.class new file mode 100644 index 000000000..efde56708 Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat.class b/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat.class new file mode 100644 index 000000000..e4fce1fde Binary files /dev/null and b/app/build/bin/classesdebug/javax/sound/sampled/AudioFormat.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JComponent$0$debug.class b/app/build/bin/classesdebug/javax/swing/JComponent$0$debug.class new file mode 100644 index 000000000..537c62fe1 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JComponent$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JComponent.class b/app/build/bin/classesdebug/javax/swing/JComponent.class new file mode 100644 index 000000000..3394f731d Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JComponent.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JOptionPane$0$debug.class b/app/build/bin/classesdebug/javax/swing/JOptionPane$0$debug.class new file mode 100644 index 000000000..dbc23ca07 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JOptionPane$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JOptionPane.class b/app/build/bin/classesdebug/javax/swing/JOptionPane.class new file mode 100644 index 000000000..599aa5471 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JOptionPane.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JPanel$0$debug.class b/app/build/bin/classesdebug/javax/swing/JPanel$0$debug.class new file mode 100644 index 000000000..ccd561160 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JPanel$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JPanel$100000000$0$debug.class b/app/build/bin/classesdebug/javax/swing/JPanel$100000000$0$debug.class new file mode 100644 index 000000000..19a4f2dbf Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JPanel$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JPanel$100000000.class b/app/build/bin/classesdebug/javax/swing/JPanel$100000000.class new file mode 100644 index 000000000..788f5ae68 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JPanel$100000000.class differ diff --git a/app/build/bin/classesdebug/javax/swing/JPanel.class b/app/build/bin/classesdebug/javax/swing/JPanel.class new file mode 100644 index 000000000..52c7e58a8 Binary files /dev/null and b/app/build/bin/classesdebug/javax/swing/JPanel.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$0$debug.class b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$0$debug.class new file mode 100644 index 000000000..367d01269 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000$0$debug.class b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000$0$debug.class new file mode 100644 index 000000000..cb6a2e130 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000.class b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000.class new file mode 100644 index 000000000..b780e02f8 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite$100000000.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite.class b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite.class new file mode 100644 index 000000000..e0edf94f9 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ActiveTestSuite.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase$0$debug.class b/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase$0$debug.class new file mode 100644 index 000000000..dab9ef312 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase.class b/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase.class new file mode 100644 index 000000000..10f4a78c0 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/ExceptionTestCase.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/RepeatedTest$0$debug.class b/app/build/bin/classesdebug/junit/extensions/RepeatedTest$0$debug.class new file mode 100644 index 000000000..b41449c46 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/RepeatedTest$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/RepeatedTest.class b/app/build/bin/classesdebug/junit/extensions/RepeatedTest.class new file mode 100644 index 000000000..09ffbdbea Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/RepeatedTest.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestDecorator$0$debug.class b/app/build/bin/classesdebug/junit/extensions/TestDecorator$0$debug.class new file mode 100644 index 000000000..939cf447e Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestDecorator$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestDecorator.class b/app/build/bin/classesdebug/junit/extensions/TestDecorator.class new file mode 100644 index 000000000..304a94f32 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestDecorator.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestSetup$0$debug.class b/app/build/bin/classesdebug/junit/extensions/TestSetup$0$debug.class new file mode 100644 index 000000000..75c100e85 Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestSetup$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000$0$debug.class b/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000$0$debug.class new file mode 100644 index 000000000..9be43638c Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000.class b/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000.class new file mode 100644 index 000000000..888403e5d Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestSetup$100000000.class differ diff --git a/app/build/bin/classesdebug/junit/extensions/TestSetup.class b/app/build/bin/classesdebug/junit/extensions/TestSetup.class new file mode 100644 index 000000000..ef196f0ba Binary files /dev/null and b/app/build/bin/classesdebug/junit/extensions/TestSetup.class differ diff --git a/app/build/bin/classesdebug/junit/framework/Assert$0$debug.class b/app/build/bin/classesdebug/junit/framework/Assert$0$debug.class new file mode 100644 index 000000000..dea1e2c66 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/Assert$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/Assert.class b/app/build/bin/classesdebug/junit/framework/Assert.class new file mode 100644 index 000000000..b57465cca Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/Assert.class differ diff --git a/app/build/bin/classesdebug/junit/framework/AssertionFailedError$0$debug.class b/app/build/bin/classesdebug/junit/framework/AssertionFailedError$0$debug.class new file mode 100644 index 000000000..aaf959847 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/AssertionFailedError$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/AssertionFailedError.class b/app/build/bin/classesdebug/junit/framework/AssertionFailedError.class new file mode 100644 index 000000000..72fb29d9c Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/AssertionFailedError.class differ diff --git a/app/build/bin/classesdebug/junit/framework/ComparisonFailure$0$debug.class b/app/build/bin/classesdebug/junit/framework/ComparisonFailure$0$debug.class new file mode 100644 index 000000000..7049e5682 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/ComparisonFailure$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/ComparisonFailure.class b/app/build/bin/classesdebug/junit/framework/ComparisonFailure.class new file mode 100644 index 000000000..8a8382704 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/ComparisonFailure.class differ diff --git a/app/build/bin/classesdebug/junit/framework/Protectable.class b/app/build/bin/classesdebug/junit/framework/Protectable.class new file mode 100644 index 000000000..fd28bf07d Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/Protectable.class differ diff --git a/app/build/bin/classesdebug/junit/framework/Test.class b/app/build/bin/classesdebug/junit/framework/Test.class new file mode 100644 index 000000000..0f66bd150 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/Test.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestCase$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestCase$0$debug.class new file mode 100644 index 000000000..9f3c2a1cc Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestCase$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestCase.class b/app/build/bin/classesdebug/junit/framework/TestCase.class new file mode 100644 index 000000000..0cf1ccc16 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestCase.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestFailure$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestFailure$0$debug.class new file mode 100644 index 000000000..a50aa7671 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestFailure$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestFailure.class b/app/build/bin/classesdebug/junit/framework/TestFailure.class new file mode 100644 index 000000000..08a501c50 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestFailure.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestListener.class b/app/build/bin/classesdebug/junit/framework/TestListener.class new file mode 100644 index 000000000..3acdd2938 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestListener.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestResult$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestResult$0$debug.class new file mode 100644 index 000000000..cd86257c5 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestResult$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestResult$100000000$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestResult$100000000$0$debug.class new file mode 100644 index 000000000..a7f845a26 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestResult$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestResult$100000000.class b/app/build/bin/classesdebug/junit/framework/TestResult$100000000.class new file mode 100644 index 000000000..070542441 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestResult$100000000.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestResult.class b/app/build/bin/classesdebug/junit/framework/TestResult.class new file mode 100644 index 000000000..e9263634c Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestResult.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestSuite$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestSuite$0$debug.class new file mode 100644 index 000000000..c0742a3c8 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestSuite$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestSuite$100000000$0$debug.class b/app/build/bin/classesdebug/junit/framework/TestSuite$100000000$0$debug.class new file mode 100644 index 000000000..294b34b53 Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestSuite$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestSuite$100000000.class b/app/build/bin/classesdebug/junit/framework/TestSuite$100000000.class new file mode 100644 index 000000000..7c4df06bd Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestSuite$100000000.class differ diff --git a/app/build/bin/classesdebug/junit/framework/TestSuite.class b/app/build/bin/classesdebug/junit/framework/TestSuite.class new file mode 100644 index 000000000..b3b2781dc Binary files /dev/null and b/app/build/bin/classesdebug/junit/framework/TestSuite.class differ diff --git a/app/build/bin/classesdebug/junit/runner/BaseTestRunner$0$debug.class b/app/build/bin/classesdebug/junit/runner/BaseTestRunner$0$debug.class new file mode 100644 index 000000000..5bfc702c0 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/BaseTestRunner$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/BaseTestRunner.class b/app/build/bin/classesdebug/junit/runner/BaseTestRunner.class new file mode 100644 index 000000000..5b43f42bd Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/BaseTestRunner.class differ diff --git a/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector$0$debug.class b/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector$0$debug.class new file mode 100644 index 000000000..7e866eac7 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector.class b/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector.class new file mode 100644 index 000000000..d4392d9a5 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/ClassPathTestCollector.class differ diff --git a/app/build/bin/classesdebug/junit/runner/FailureDetailView.class b/app/build/bin/classesdebug/junit/runner/FailureDetailView.class new file mode 100644 index 000000000..a999d571d Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/FailureDetailView.class differ diff --git a/app/build/bin/classesdebug/junit/runner/LoadingTestCollector$0$debug.class b/app/build/bin/classesdebug/junit/runner/LoadingTestCollector$0$debug.class new file mode 100644 index 000000000..f87925af0 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/LoadingTestCollector$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/LoadingTestCollector.class b/app/build/bin/classesdebug/junit/runner/LoadingTestCollector.class new file mode 100644 index 000000000..aba9d9a4d Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/LoadingTestCollector.class differ diff --git a/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader$0$debug.class b/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader$0$debug.class new file mode 100644 index 000000000..0f44cd24f Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader.class b/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader.class new file mode 100644 index 000000000..e119bfb34 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/ReloadingTestSuiteLoader.class differ diff --git a/app/build/bin/classesdebug/junit/runner/SimpleTestCollector$0$debug.class b/app/build/bin/classesdebug/junit/runner/SimpleTestCollector$0$debug.class new file mode 100644 index 000000000..8f45ff813 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/SimpleTestCollector$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/SimpleTestCollector.class b/app/build/bin/classesdebug/junit/runner/SimpleTestCollector.class new file mode 100644 index 000000000..d7ce1e2d9 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/SimpleTestCollector.class differ diff --git a/app/build/bin/classesdebug/junit/runner/Sorter$0$debug.class b/app/build/bin/classesdebug/junit/runner/Sorter$0$debug.class new file mode 100644 index 000000000..b36eca5ee Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/Sorter$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/Sorter$Swapper.class b/app/build/bin/classesdebug/junit/runner/Sorter$Swapper.class new file mode 100644 index 000000000..3cff315c0 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/Sorter$Swapper.class differ diff --git a/app/build/bin/classesdebug/junit/runner/Sorter.class b/app/build/bin/classesdebug/junit/runner/Sorter.class new file mode 100644 index 000000000..97d0a7b00 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/Sorter.class differ diff --git a/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader$0$debug.class b/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader$0$debug.class new file mode 100644 index 000000000..bcf76914a Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader.class b/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader.class new file mode 100644 index 000000000..d0211dbe4 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/StandardTestSuiteLoader.class differ diff --git a/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader$0$debug.class b/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader$0$debug.class new file mode 100644 index 000000000..841d54a4b Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader.class b/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader.class new file mode 100644 index 000000000..b11fcdb3b Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/TestCaseClassLoader.class differ diff --git a/app/build/bin/classesdebug/junit/runner/TestCollector.class b/app/build/bin/classesdebug/junit/runner/TestCollector.class new file mode 100644 index 000000000..631f2c57f Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/TestCollector.class differ diff --git a/app/build/bin/classesdebug/junit/runner/TestRunListener.class b/app/build/bin/classesdebug/junit/runner/TestRunListener.class new file mode 100644 index 000000000..1e42dd597 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/TestRunListener.class differ diff --git a/app/build/bin/classesdebug/junit/runner/TestSuiteLoader.class b/app/build/bin/classesdebug/junit/runner/TestSuiteLoader.class new file mode 100644 index 000000000..c221a0d8c Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/TestSuiteLoader.class differ diff --git a/app/build/bin/classesdebug/junit/runner/Version$0$debug.class b/app/build/bin/classesdebug/junit/runner/Version$0$debug.class new file mode 100644 index 000000000..92bae262f Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/Version$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/runner/Version.class b/app/build/bin/classesdebug/junit/runner/Version.class new file mode 100644 index 000000000..a3c7af2f9 Binary files /dev/null and b/app/build/bin/classesdebug/junit/runner/Version.class differ diff --git a/app/build/bin/classesdebug/junit/textui/ResultPrinter$0$debug.class b/app/build/bin/classesdebug/junit/textui/ResultPrinter$0$debug.class new file mode 100644 index 000000000..0fb3ee98a Binary files /dev/null and b/app/build/bin/classesdebug/junit/textui/ResultPrinter$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/textui/ResultPrinter.class b/app/build/bin/classesdebug/junit/textui/ResultPrinter.class new file mode 100644 index 000000000..d4853b8a5 Binary files /dev/null and b/app/build/bin/classesdebug/junit/textui/ResultPrinter.class differ diff --git a/app/build/bin/classesdebug/junit/textui/TestRunner$0$debug.class b/app/build/bin/classesdebug/junit/textui/TestRunner$0$debug.class new file mode 100644 index 000000000..8f62a447c Binary files /dev/null and b/app/build/bin/classesdebug/junit/textui/TestRunner$0$debug.class differ diff --git a/app/build/bin/classesdebug/junit/textui/TestRunner.class b/app/build/bin/classesdebug/junit/textui/TestRunner.class new file mode 100644 index 000000000..b484c1b52 Binary files /dev/null and b/app/build/bin/classesdebug/junit/textui/TestRunner.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo$0$debug.class new file mode 100644 index 000000000..16e443761 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo.class new file mode 100644 index 000000000..ea14986f9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AccInfo.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode$0$debug.class new file mode 100644 index 000000000..a6451bfd0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class new file mode 100644 index 000000000..edb11c9ee Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck$0$debug.class new file mode 100644 index 000000000..3dbc9b69f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck.class new file mode 100644 index 000000000..9e654134b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ArchitectureCheck.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread$0$debug.class new file mode 100644 index 000000000..40691e389 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread.class new file mode 100644 index 000000000..ef70c5ba7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/AsyncThread.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig$0$debug.class new file mode 100644 index 000000000..abe716da0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig.class new file mode 100644 index 000000000..daf054764 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/BuildConfig.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException$0$debug.class new file mode 100644 index 000000000..960ebf64f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException.class new file mode 100644 index 000000000..1257fcee6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/CancelException.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException$0$debug.class new file mode 100644 index 000000000..746ab785e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException.class new file mode 100644 index 000000000..913915137 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ClassesNotFoundException.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey$0$debug.class new file mode 100644 index 000000000..c121abf2d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey.class new file mode 100644 index 000000000..ad80fbc15 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/DroidToJavaKey.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$0$debug.class new file mode 100644 index 000000000..3953dcb87 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString$0$debug.class new file mode 100644 index 000000000..da9a4b849 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString.class new file mode 100644 index 000000000..e01eb00a1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount$RandomString.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount.class new file mode 100644 index 000000000..92307d0c0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeAccount.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader$0$debug.class new file mode 100644 index 000000000..a65008930 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader.class new file mode 100644 index 000000000..ae45cea6d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FakeURLClassLoader.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger$0$debug.class new file mode 100644 index 000000000..8fb2f8f29 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger.class new file mode 100644 index 000000000..9c88072ca Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/FontChanger.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask$0$debug.class new file mode 100644 index 000000000..835f818e0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask.class new file mode 100644 index 000000000..27734cdad Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/InstallerTask.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo$0$debug.class new file mode 100644 index 000000000..fdf3ce83c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo.class new file mode 100644 index 000000000..c2d992748 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssetInfo.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets$0$debug.class new file mode 100644 index 000000000..a425ba117 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets.class new file mode 100644 index 000000000..bd16b2cf0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JAssets.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$0$debug.class new file mode 100644 index 000000000..d58b7f780 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion$0$debug.class new file mode 100644 index 000000000..6a396e592 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class new file mode 100644 index 000000000..90458ed97 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version$0$debug.class new file mode 100644 index 000000000..8864bfb83 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class new file mode 100644 index 000000000..ec286a1c2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList.class new file mode 100644 index 000000000..32c4fe85c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JMinecraftVersionList.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion$0$debug.class new file mode 100644 index 000000000..2a9f513cb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion.class new file mode 100644 index 000000000..43a9a7d00 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/JVersion.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments$0$debug.class new file mode 100644 index 000000000..c0a2e5e37 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class new file mode 100644 index 000000000..aa2594266 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$0$debug.class new file mode 100644 index 000000000..73f768538 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream$0$debug.class new file mode 100644 index 000000000..2b7ecbb47 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class new file mode 100644 index 000000000..d7c30b19a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class new file mode 100644 index 000000000..a39efe0e9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava.class new file mode 100644 index 000000000..ec367acc4 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/LoggerJava.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$0$debug.class new file mode 100644 index 000000000..a28759e8a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$0$debug.class new file mode 100644 index 000000000..db3dc8a7a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000$0$debug.class new file mode 100644 index 000000000..5f6e6c79b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class new file mode 100644 index 000000000..fff95ecef Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001$0$debug.class new file mode 100644 index 000000000..b77047baf Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class new file mode 100644 index 000000000..33e0bf33e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class new file mode 100644 index 000000000..8346e082a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$0$debug.class new file mode 100644 index 000000000..7dff6b1ce Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000$0$debug.class new file mode 100644 index 000000000..adeeec4ac Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class new file mode 100644 index 000000000..9466f30f2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001$0$debug.class new file mode 100644 index 000000000..425323960 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class new file mode 100644 index 000000000..b9bbbd00f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002$0$debug.class new file mode 100644 index 000000000..263f59178 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class new file mode 100644 index 000000000..b670c74b4 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class new file mode 100644 index 000000000..6a51b6dd8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004$0$debug.class new file mode 100644 index 000000000..052a96703 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class new file mode 100644 index 000000000..e8a1647af Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$0$debug.class new file mode 100644 index 000000000..5a6abdb3a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004$0$debug.class new file mode 100644 index 000000000..a779c8037 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class new file mode 100644 index 000000000..d90741349 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class new file mode 100644 index 000000000..0488c68e7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$0$debug.class new file mode 100644 index 000000000..3fb232c7c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005$0$debug.class new file mode 100644 index 000000000..1f604a1f1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class new file mode 100644 index 000000000..c913dd1ee Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class new file mode 100644 index 000000000..f7d38a8d6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013$0$debug.class new file mode 100644 index 000000000..37ff69608 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class new file mode 100644 index 000000000..36b497632 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014$0$debug.class new file mode 100644 index 000000000..b585cba6e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class new file mode 100644 index 000000000..9ee2c220e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015$0$debug.class new file mode 100644 index 000000000..9cbaba7eb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class new file mode 100644 index 000000000..91c3b919b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016$0$debug.class new file mode 100644 index 000000000..bd443c013 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class new file mode 100644 index 000000000..dd2bdb1f5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017$0$debug.class new file mode 100644 index 000000000..f66223fc2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class new file mode 100644 index 000000000..45e530960 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$0$debug.class new file mode 100644 index 000000000..80adb3e91 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$0$debug.class new file mode 100644 index 000000000..0da2437db Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017$0$debug.class new file mode 100644 index 000000000..6a5fe2a07 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class new file mode 100644 index 000000000..e06e251ec Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class new file mode 100644 index 000000000..60893e0d2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019$0$debug.class new file mode 100644 index 000000000..06926e842 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class new file mode 100644 index 000000000..2adcd18e1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020$0$debug.class new file mode 100644 index 000000000..4b402042a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class new file mode 100644 index 000000000..6702a0c41 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class new file mode 100644 index 000000000..977f47cdf Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$0$debug.class new file mode 100644 index 000000000..02b8bbd3f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$0$debug.class new file mode 100644 index 000000000..dca34dad5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018$0$debug.class new file mode 100644 index 000000000..fe6637d17 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class new file mode 100644 index 000000000..12e70af04 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class new file mode 100644 index 000000000..fa45e92b9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020$0$debug.class new file mode 100644 index 000000000..7cd3bb3f3 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class new file mode 100644 index 000000000..fdf83d58b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021$0$debug.class new file mode 100644 index 000000000..9de5ed16b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class new file mode 100644 index 000000000..d2bc06a0a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class new file mode 100644 index 000000000..2b7fdd0d1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$0$debug.class new file mode 100644 index 000000000..bd3022fde Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006$0$debug.class new file mode 100644 index 000000000..c8cef27cb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class new file mode 100644 index 000000000..9617a2a52 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007$0$debug.class new file mode 100644 index 000000000..1803aca88 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class new file mode 100644 index 000000000..23bcd8c73 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008$0$debug.class new file mode 100644 index 000000000..d0831c126 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class new file mode 100644 index 000000000..c60cde1ed Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009$0$debug.class new file mode 100644 index 000000000..f8a4cf9ab Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class new file mode 100644 index 000000000..8ea7e1779 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010$0$debug.class new file mode 100644 index 000000000..fa1028a12 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class new file mode 100644 index 000000000..af5cfe1e7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011$0$debug.class new file mode 100644 index 000000000..14d174484 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class new file mode 100644 index 000000000..60f518534 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012$0$debug.class new file mode 100644 index 000000000..7187a5450 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class new file mode 100644 index 000000000..c01943c00 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013$0$debug.class new file mode 100644 index 000000000..e86d79a6c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class new file mode 100644 index 000000000..9664ddc3b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class new file mode 100644 index 000000000..171ed4d74 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter$0$debug.class new file mode 100644 index 000000000..f15a213f8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class new file mode 100644 index 000000000..7f3b69ba5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity.class new file mode 100644 index 000000000..3c3702fb1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCLauncherActivity.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$0$debug.class new file mode 100644 index 000000000..44b0610eb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder$0$debug.class new file mode 100644 index 000000000..494487ccd Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder.class new file mode 100644 index 000000000..6a13b64e0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile$Builder.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile.class new file mode 100644 index 000000000..e9e9ac35f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MCProfile.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$0$debug.class new file mode 100644 index 000000000..fdd04055d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$0$debug.class new file mode 100644 index 000000000..87c268944 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$0$debug.class new file mode 100644 index 000000000..95ea5b23f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000$0$debug.class new file mode 100644 index 000000000..9d9191861 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class new file mode 100644 index 000000000..dbb4379be Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class new file mode 100644 index 000000000..c84cf2c8f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002.class new file mode 100644 index 000000000..11b6fa2df Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003$0$debug.class new file mode 100644 index 000000000..9e0172b41 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003.class new file mode 100644 index 000000000..3d882e6dc Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000003.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004$0$debug.class new file mode 100644 index 000000000..82fcd5390 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004.class new file mode 100644 index 000000000..e713f36b1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$0$debug.class new file mode 100644 index 000000000..25426e73a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005$0$debug.class new file mode 100644 index 000000000..b9bd7f251 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class new file mode 100644 index 000000000..d16830d89 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006.class new file mode 100644 index 000000000..026ec55e8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007$0$debug.class new file mode 100644 index 000000000..135ea792f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007.class new file mode 100644 index 000000000..bd4a5bd4b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000007.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008$0$debug.class new file mode 100644 index 000000000..a6019bb98 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008.class new file mode 100644 index 000000000..6ba680877 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000008.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009$0$debug.class new file mode 100644 index 000000000..6f00477a0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009.class new file mode 100644 index 000000000..27fa7d350 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000009.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010$0$debug.class new file mode 100644 index 000000000..cd59f9f16 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010.class new file mode 100644 index 000000000..67ecd3322 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000010.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$0$debug.class new file mode 100644 index 000000000..57115bdcd Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010$0$debug.class new file mode 100644 index 000000000..632103a3a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class new file mode 100644 index 000000000..29ecb54dd Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011.class new file mode 100644 index 000000000..88ae4a776 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000011.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$0$debug.class new file mode 100644 index 000000000..7132a8b81 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011$0$debug.class new file mode 100644 index 000000000..7908d088b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class new file mode 100644 index 000000000..de7eaff46 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012.class new file mode 100644 index 000000000..b53995984 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000012.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013$0$debug.class new file mode 100644 index 000000000..895fb25be Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013.class new file mode 100644 index 000000000..30a9ec640 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000013.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014$0$debug.class new file mode 100644 index 000000000..a3a8863ec Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014.class new file mode 100644 index 000000000..1dc9f1d02 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000014.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$0$debug.class new file mode 100644 index 000000000..6a227135e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013$0$debug.class new file mode 100644 index 000000000..f584b58a1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class new file mode 100644 index 000000000..3e0e1aa4b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014$0$debug.class new file mode 100644 index 000000000..d2878f995 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class new file mode 100644 index 000000000..e57177f50 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015.class new file mode 100644 index 000000000..5915efe7b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000015.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016$0$debug.class new file mode 100644 index 000000000..956407454 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016.class new file mode 100644 index 000000000..ac3f50ed2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$100000016.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm$0$debug.class new file mode 100644 index 000000000..c45a74fb8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class new file mode 100644 index 000000000..157bedc40 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity.class new file mode 100644 index 000000000..c56247aa9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MainActivity.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView$0$debug.class new file mode 100644 index 000000000..b9b2cd822 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView.class new file mode 100644 index 000000000..aed04fcd2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MinecraftGLView.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$0$debug.class new file mode 100644 index 000000000..c98fee7fb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$Listen.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$Listen.class new file mode 100644 index 000000000..cd064b5d7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager$Listen.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager.class new file mode 100644 index 000000000..141f2b774 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/MultidojManager.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication$0$debug.class new file mode 100644 index 000000000..4336d5361 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication.class new file mode 100644 index 000000000..f9f64a497 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavApplication.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$0$debug.class new file mode 100644 index 000000000..171679861 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000$0$debug.class new file mode 100644 index 000000000..3d713c3c2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class new file mode 100644 index 000000000..06b4aa4d2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001$0$debug.class new file mode 100644 index 000000000..61b931833 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class new file mode 100644 index 000000000..cb013865b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002$0$debug.class new file mode 100644 index 000000000..668581830 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class new file mode 100644 index 000000000..e09e264b3 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003$0$debug.class new file mode 100644 index 000000000..f9b37a12c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class new file mode 100644 index 000000000..46d6a08a9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004$0$debug.class new file mode 100644 index 000000000..805493b8d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class new file mode 100644 index 000000000..17c1b5b60 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$0$debug.class new file mode 100644 index 000000000..4217adecb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004$0$debug.class new file mode 100644 index 000000000..d0c97379e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class new file mode 100644 index 000000000..687f5abb4 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005$0$debug.class new file mode 100644 index 000000000..16e661f24 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class new file mode 100644 index 000000000..054c0ff84 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class new file mode 100644 index 000000000..537138a94 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$0$debug.class new file mode 100644 index 000000000..5dbbd3103 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005$0$debug.class new file mode 100644 index 000000000..4bb4d3415 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class new file mode 100644 index 000000000..86b6a0421 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006$0$debug.class new file mode 100644 index 000000000..e0eaf39f2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class new file mode 100644 index 000000000..35ea5950e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class new file mode 100644 index 000000000..0b2fcf24c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008$0$debug.class new file mode 100644 index 000000000..ee1c7713d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class new file mode 100644 index 000000000..a1b26ca66 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009$0$debug.class new file mode 100644 index 000000000..c74874b06 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class new file mode 100644 index 000000000..b1e0d01c0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010$0$debug.class new file mode 100644 index 000000000..55352e2c6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class new file mode 100644 index 000000000..8ca0db557 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011$0$debug.class new file mode 100644 index 000000000..a6829e230 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class new file mode 100644 index 000000000..ee01956b8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012$0$debug.class new file mode 100644 index 000000000..3a367ecc9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class new file mode 100644 index 000000000..72cdaf9eb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$0$debug.class new file mode 100644 index 000000000..243201fac Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003$0$debug.class new file mode 100644 index 000000000..f2edff6ab Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class new file mode 100644 index 000000000..c61fcde33 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class new file mode 100644 index 000000000..76ad5d2be Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity.class new file mode 100644 index 000000000..48921710b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavLoginActivity.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile$0$debug.class new file mode 100644 index 000000000..6b8a88190 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile.class new file mode 100644 index 000000000..f68987262 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavProfile.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager$0$debug.class new file mode 100644 index 000000000..428147788 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager.class new file mode 100644 index 000000000..5509f2ddc Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/PojavV2ActivityManager.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$0$debug.class new file mode 100644 index 000000000..ec2e5e44f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim$0$debug.class new file mode 100644 index 000000000..386424b3d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim.class new file mode 100644 index 000000000..8b98be474 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$anim.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array$0$debug.class new file mode 100644 index 000000000..0b2c0864d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array.class new file mode 100644 index 000000000..d033dda74 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$array.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr$0$debug.class new file mode 100644 index 000000000..e3a5b9593 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr.class new file mode 100644 index 000000000..892e9fc4d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$attr.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool$0$debug.class new file mode 100644 index 000000000..db8baa759 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool.class new file mode 100644 index 000000000..0a006a3c4 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$bool.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color$0$debug.class new file mode 100644 index 000000000..a5486c3bc Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color.class new file mode 100644 index 000000000..def4ca889 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$color.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen$0$debug.class new file mode 100644 index 000000000..259494e96 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen.class new file mode 100644 index 000000000..f824d85a1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$dimen.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable$0$debug.class new file mode 100644 index 000000000..06f54f37b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable.class new file mode 100644 index 000000000..2a9f1ab7c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$drawable.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id$0$debug.class new file mode 100644 index 000000000..497715d36 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id.class new file mode 100644 index 000000000..01c94711c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$id.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer$0$debug.class new file mode 100644 index 000000000..60a10ce8d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer.class new file mode 100644 index 000000000..66a00822d Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$integer.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout$0$debug.class new file mode 100644 index 000000000..8f06d8e23 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout.class new file mode 100644 index 000000000..0a84b90b2 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$layout.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu$0$debug.class new file mode 100644 index 000000000..360f0bd79 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu.class new file mode 100644 index 000000000..7556d4830 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$menu.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string$0$debug.class new file mode 100644 index 000000000..f63f4512e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string.class new file mode 100644 index 000000000..c3f98e479 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$string.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style$0$debug.class new file mode 100644 index 000000000..8959e5289 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style.class new file mode 100644 index 000000000..45c296da8 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$style.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable$0$debug.class new file mode 100644 index 000000000..adc3d8b07 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable.class new file mode 100644 index 000000000..1f4d857e5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R$styleable.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/R.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R.class new file mode 100644 index 000000000..db4def7bf Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/R.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$0$debug.class new file mode 100644 index 000000000..37a31b496 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000$0$debug.class new file mode 100644 index 000000000..0860c70cb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class new file mode 100644 index 000000000..3b210fcd6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001$0$debug.class new file mode 100644 index 000000000..13861fdaa Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class new file mode 100644 index 000000000..70ce1a2ae Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class new file mode 100644 index 000000000..bca252fe3 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation.class new file mode 100644 index 000000000..f093cdc5e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/ShellProcessOperation.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$0$debug.class new file mode 100644 index 000000000..951f76448 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000$0$debug.class new file mode 100644 index 000000000..2fc417a16 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000.class new file mode 100644 index 000000000..ee7217287 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$0$debug.class new file mode 100644 index 000000000..8ae30152a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001$0$debug.class new file mode 100644 index 000000000..f778a4a6a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001.class new file mode 100644 index 000000000..efbf0ff4b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002$0$debug.class new file mode 100644 index 000000000..a6997c26b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002.class new file mode 100644 index 000000000..e68cd5aa6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003$0$debug.class new file mode 100644 index 000000000..645afa57e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003.class new file mode 100644 index 000000000..06008e2c6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004$100000003.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004.class new file mode 100644 index 000000000..b1332f9c7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000004.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005$0$debug.class new file mode 100644 index 000000000..dd6e6f6cc Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005.class new file mode 100644 index 000000000..95f6a9160 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000005.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006$0$debug.class new file mode 100644 index 000000000..342953ff6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006.class new file mode 100644 index 000000000..800bb0dd0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$100000006.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool$0$debug.class new file mode 100644 index 000000000..983d54e92 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool.class new file mode 100644 index 000000000..365e357ff Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools$ZipTool.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools.class new file mode 100644 index 000000000..413e4ecda Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/Tools.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity$0$debug.class new file mode 100644 index 000000000..88e2d71a7 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity.class new file mode 100644 index 000000000..64600d267 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/UpdateAppActivity.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$0$debug.class new file mode 100644 index 000000000..126137815 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$0$debug.class new file mode 100644 index 000000000..38928d55b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000$0$debug.class new file mode 100644 index 000000000..031caa25e Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class new file mode 100644 index 000000000..f99b7a841 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001$0$debug.class new file mode 100644 index 000000000..5c38485c3 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class new file mode 100644 index 000000000..99a119717 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002.class new file mode 100644 index 000000000..6338cc8b5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation$100000002.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation.class new file mode 100644 index 000000000..9124a4884 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/WindowAnimation.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$0$debug.class new file mode 100644 index 000000000..648ec1767 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000$0$debug.class new file mode 100644 index 000000000..de6bc4234 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000.class new file mode 100644 index 000000000..fc0a946c9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class new file mode 100644 index 000000000..64fb7ad8a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager.class new file mode 100644 index 000000000..126925a9f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitManager.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException$0$debug.class new file mode 100644 index 000000000..0501d9b90 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException.class new file mode 100644 index 000000000..b330b3886 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/exit/ExitTrappedException.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager$0$debug.class new file mode 100644 index 000000000..e4df79931 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager.class new file mode 100644 index 000000000..b8daf1491 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/libs/LibrariesManager.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment$0$debug.class new file mode 100644 index 000000000..ae669de2b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class new file mode 100644 index 000000000..4dd9c746f Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment$0$debug.class new file mode 100644 index 000000000..3267f5db1 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment.class new file mode 100644 index 000000000..243acf960 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/CrashFragment.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$0$debug.class new file mode 100644 index 000000000..a03483608 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000$0$debug.class new file mode 100644 index 000000000..9aa6d1a30 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class new file mode 100644 index 000000000..26a1d5d03 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class new file mode 100644 index 000000000..4b7cad08c Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine$0$debug.class new file mode 100644 index 000000000..062af7966 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine.class new file mode 100644 index 000000000..4fedc345a Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/Optifine.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$0$debug.class new file mode 100644 index 000000000..1b27c9a69 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList$0$debug.class new file mode 100644 index 000000000..9cd39b003 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class new file mode 100644 index 000000000..496a87a01 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion.class new file mode 100644 index 000000000..caf43ed32 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/optifine/OptifineVersion.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner$0$debug.class new file mode 100644 index 000000000..7c6c9e284 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner.class new file mode 100644 index 000000000..cf0a13fd6 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/signer/JarSigner.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils$0$debug.class new file mode 100644 index 000000000..df967a532 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils.class new file mode 100644 index 000000000..f6b6e7072 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/DownloadUtils.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$0$debug.class new file mode 100644 index 000000000..2131f76d9 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000$0$debug.class new file mode 100644 index 000000000..57a562391 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000.class new file mode 100644 index 000000000..6f736b138 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil$100000000.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil.class new file mode 100644 index 000000000..9053f9eac Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/util/IoUtil.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$0$debug.class new file mode 100644 index 000000000..3995c8eeb Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads$0$debug.class new file mode 100644 index 000000000..70ff6cd5b Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class new file mode 100644 index 000000000..f95c97632 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary.class new file mode 100644 index 000000000..8a332e2c5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/DependentLibrary.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo$0$debug.class new file mode 100644 index 000000000..2545207d0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo.class new file mode 100644 index 000000000..a885f1957 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftClientInfo.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact$0$debug.class new file mode 100644 index 000000000..e4f06ebc5 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class new file mode 100644 index 000000000..37390fe50 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion$0$debug.class new file mode 100644 index 000000000..a8d905707 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion.class new file mode 100644 index 000000000..2f5178ea0 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/value/MinecraftVersion.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton$0$debug.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton$0$debug.class new file mode 100644 index 000000000..1e54fd496 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton.class b/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton.class new file mode 100644 index 000000000..1b97666d4 Binary files /dev/null and b/app/build/bin/classesdebug/net/kdt/pojavlaunch/views/MineButton.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever$0$debug.class b/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever$0$debug.class new file mode 100644 index 000000000..c7efb201e Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever.class b/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever.class new file mode 100644 index 000000000..e7676ef8d Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/client/ClientBrandRetriever.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker$0$debug.class new file mode 100644 index 000000000..da193bc1c Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker.class new file mode 100644 index 000000000..9b5c98c10 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/AlphaVanillaTweaker.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassNameTransformer.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassNameTransformer.class new file mode 100644 index 000000000..0d28d58f4 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassNameTransformer.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassTransformer.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassTransformer.class new file mode 100644 index 000000000..2db22b8b4 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IClassTransformer.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/ITweaker.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/ITweaker.class new file mode 100644 index 000000000..3397feba6 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/ITweaker.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker$0$debug.class new file mode 100644 index 000000000..390112738 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker.class new file mode 100644 index 000000000..a5d2f824c Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/IndevVanillaTweaker.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch$0$debug.class new file mode 100644 index 000000000..125205df4 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch.class new file mode 100644 index 000000000..f6eaadef2 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/Launch.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader$0$debug.class new file mode 100644 index 000000000..4dcb43171 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader.class new file mode 100644 index 000000000..b7c4ea4b7 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LaunchClassLoader.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$0$debug.class new file mode 100644 index 000000000..a262d80c5 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class new file mode 100644 index 000000000..54a7e9db7 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper.class new file mode 100644 index 000000000..39ce69651 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/LogWrapper.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker$0$debug.class new file mode 100644 index 000000000..1f6da5e06 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker.class new file mode 100644 index 000000000..0cc172914 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/VanillaTweaker.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$0$debug.class new file mode 100644 index 000000000..0a678bc43 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000$0$debug.class new file mode 100644 index 000000000..cf4d732c5 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class new file mode 100644 index 000000000..c52166049 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001$0$debug.class new file mode 100644 index 000000000..f7d866661 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class new file mode 100644 index 000000000..04990139d Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake$0$debug.class new file mode 100644 index 000000000..0114f6f85 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class new file mode 100644 index 000000000..814ee3540 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class new file mode 100644 index 000000000..1e5251c5f Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector$0$debug.class new file mode 100644 index 000000000..0983e2ea8 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class new file mode 100644 index 000000000..47963a760 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector$0$debug.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector$0$debug.class new file mode 100644 index 000000000..2936c97eb Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class new file mode 100644 index 000000000..4b467ffb2 Binary files /dev/null and b/app/build/bin/classesdebug/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class differ diff --git a/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks$0$debug.class b/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks$0$debug.class new file mode 100644 index 000000000..a3482e41c Binary files /dev/null and b/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks$0$debug.class differ diff --git a/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks.class b/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks.class new file mode 100644 index 000000000..af7c6e579 Binary files /dev/null and b/app/build/bin/classesdebug/net/zhuoweizhang/boardwalk/DalvikTweaks.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64$0$debug.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64$0$debug.class new file mode 100644 index 000000000..2213cdc6e Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64.class new file mode 100644 index 000000000..ce940df39 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Base64.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex$0$debug.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex$0$debug.class new file mode 100644 index 000000000..0fed6d166 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex.class new file mode 100644 index 000000000..29352e951 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/Hex.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils$0$debug.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils$0$debug.class new file mode 100644 index 000000000..43641ce3e Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils.class b/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils.class new file mode 100644 index 000000000..fc5360d00 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/binary/StringUtils.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils$0$debug.class b/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils$0$debug.class new file mode 100644 index 000000000..234f09155 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils.class b/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils.class new file mode 100644 index 000000000..1d6202ad4 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/digest/DigestUtils.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms$0$debug.class b/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms$0$debug.class new file mode 100644 index 000000000..4dc583dcd Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms.class b/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms.class new file mode 100644 index 000000000..63a315e32 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/commons/codec/digest/MessageDigestAlgorithms.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$0$debug.class new file mode 100644 index 000000000..3679cbb85 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve$0$debug.class new file mode 100644 index 000000000..3e52a58ef Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve.class new file mode 100644 index 000000000..79f56540c Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$CubicCurve.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve$0$debug.class new file mode 100644 index 000000000..ea7f39ac0 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve.class new file mode 100644 index 000000000..8b56648fb Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing$QuadCurve.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing.class b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing.class new file mode 100644 index 000000000..3b41c020a Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/gl/Crossing.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages$0$debug.class new file mode 100644 index 000000000..9a28752e1 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages.class b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages.class new file mode 100644 index 000000000..cfd5c210b Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/Messages.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp$0$debug.class new file mode 100644 index 000000000..5124640d4 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp.class b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp.class new file mode 100644 index 000000000..8b14d37b2 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/internal/nls/MsgHelp.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory$0$debug.class new file mode 100644 index 000000000..91a79ed26 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory.class b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory.class new file mode 100644 index 000000000..3bad96e58 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/CursorFactory.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeCursor.class b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeCursor.class new file mode 100644 index 000000000..523a288f5 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeCursor.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeWindow.class b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeWindow.class new file mode 100644 index 000000000..63bdfa6e1 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/awt/wtk/NativeWindow.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages$0$debug.class new file mode 100644 index 000000000..ff8700728 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages.class b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages.class new file mode 100644 index 000000000..ec1345cdf Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/Messages.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp$0$debug.class new file mode 100644 index 000000000..e2f52e9cb Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp.class b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp.class new file mode 100644 index 000000000..e7f2b23ce Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/beans/internal/nls/MsgHelp.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$0$debug.class new file mode 100644 index 000000000..99e57452e Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000$0$debug.class new file mode 100644 index 000000000..0438efdca Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000.class new file mode 100644 index 000000000..ebdf7ed9d Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp$100000000.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp.class new file mode 100644 index 000000000..6b4b23e52 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/MsgHelp.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException$0$debug.class new file mode 100644 index 000000000..635bc1dbf Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException.class b/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException.class new file mode 100644 index 000000000..5a9a77dd0 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/luni/util/NotImplementedException.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode$0$debug.class new file mode 100644 index 000000000..312d20892 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode.class b/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode.class new file mode 100644 index 000000000..e2ecc8f46 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/misc/HashCode.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils$0$debug.class b/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils$0$debug.class new file mode 100644 index 000000000..c20400b4d Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils$0$debug.class differ diff --git a/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils.class b/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils.class new file mode 100644 index 000000000..c16be64b4 Binary files /dev/null and b/app/build/bin/classesdebug/org/apache/harmony/misc/SystemUtils.class differ diff --git a/app/build/bin/classesdebug/sun/applet/AppletAudioClip$0$debug.class b/app/build/bin/classesdebug/sun/applet/AppletAudioClip$0$debug.class new file mode 100644 index 000000000..b9f1cdd38 Binary files /dev/null and b/app/build/bin/classesdebug/sun/applet/AppletAudioClip$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/applet/AppletAudioClip.class b/app/build/bin/classesdebug/sun/applet/AppletAudioClip.class new file mode 100644 index 000000000..d60d6f168 Binary files /dev/null and b/app/build/bin/classesdebug/sun/applet/AppletAudioClip.class differ diff --git a/app/build/bin/classesdebug/sun/misc/FakeUnsafe$0$debug.class b/app/build/bin/classesdebug/sun/misc/FakeUnsafe$0$debug.class new file mode 100644 index 000000000..dff00c72c Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/FakeUnsafe$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/misc/FakeUnsafe.class b/app/build/bin/classesdebug/sun/misc/FakeUnsafe.class new file mode 100644 index 000000000..6fefda769 Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/FakeUnsafe.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaIOAccess.class b/app/build/bin/classesdebug/sun/misc/JavaIOAccess.class new file mode 100644 index 000000000..524f62e9b Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaIOAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaIOFileDescriptorAccess.class b/app/build/bin/classesdebug/sun/misc/JavaIOFileDescriptorAccess.class new file mode 100644 index 000000000..72aea834b Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaIOFileDescriptorAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaNetHttpCookieAccess.class b/app/build/bin/classesdebug/sun/misc/JavaNetHttpCookieAccess.class new file mode 100644 index 000000000..a4074fa56 Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaNetHttpCookieAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaNioAccess$BufferPool.class b/app/build/bin/classesdebug/sun/misc/JavaNioAccess$BufferPool.class new file mode 100644 index 000000000..2c299a887 Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaNioAccess$BufferPool.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaNioAccess.class b/app/build/bin/classesdebug/sun/misc/JavaNioAccess.class new file mode 100644 index 000000000..b20726beb Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaNioAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class b/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class new file mode 100644 index 000000000..2916006ba Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess.class b/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess.class new file mode 100644 index 000000000..8a085470b Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaSecurityProtectionDomainAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaUtilJarAccess.class b/app/build/bin/classesdebug/sun/misc/JavaUtilJarAccess.class new file mode 100644 index 000000000..aa3c97e12 Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaUtilJarAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/JavaUtilZipAccess.class b/app/build/bin/classesdebug/sun/misc/JavaUtilZipAccess.class new file mode 100644 index 000000000..f53d1aece Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/JavaUtilZipAccess.class differ diff --git a/app/build/bin/classesdebug/sun/misc/SharedSecrets$0$debug.class b/app/build/bin/classesdebug/sun/misc/SharedSecrets$0$debug.class new file mode 100644 index 000000000..670573a0d Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/SharedSecrets$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/misc/SharedSecrets.class b/app/build/bin/classesdebug/sun/misc/SharedSecrets.class new file mode 100644 index 000000000..7e4f300c1 Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/SharedSecrets.class differ diff --git a/app/build/bin/classesdebug/sun/misc/Unsafe$0$debug.class b/app/build/bin/classesdebug/sun/misc/Unsafe$0$debug.class new file mode 100644 index 000000000..75f717d5e Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/Unsafe$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/misc/Unsafe.class b/app/build/bin/classesdebug/sun/misc/Unsafe.class new file mode 100644 index 000000000..cf180704e Binary files /dev/null and b/app/build/bin/classesdebug/sun/misc/Unsafe.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetBooleanAction$0$debug.class b/app/build/bin/classesdebug/sun/security/action/GetBooleanAction$0$debug.class new file mode 100644 index 000000000..f5179a97b Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetBooleanAction$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetBooleanAction.class b/app/build/bin/classesdebug/sun/security/action/GetBooleanAction.class new file mode 100644 index 000000000..cfc1d2447 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetBooleanAction.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction$0$debug.class b/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction$0$debug.class new file mode 100644 index 000000000..e86a0d922 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction.class b/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction.class new file mode 100644 index 000000000..a16bb1546 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetBooleanSecurityPropertyAction.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetIntegerAction$0$debug.class b/app/build/bin/classesdebug/sun/security/action/GetIntegerAction$0$debug.class new file mode 100644 index 000000000..fc9b7f36c Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetIntegerAction$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetIntegerAction.class b/app/build/bin/classesdebug/sun/security/action/GetIntegerAction.class new file mode 100644 index 000000000..ff71d61c2 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetIntegerAction.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetPropertyAction$0$debug.class b/app/build/bin/classesdebug/sun/security/action/GetPropertyAction$0$debug.class new file mode 100644 index 000000000..acc8ad761 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetPropertyAction$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/action/GetPropertyAction.class b/app/build/bin/classesdebug/sun/security/action/GetPropertyAction.class new file mode 100644 index 000000000..a52a4318a Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/action/GetPropertyAction.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/PermissionFactory.class b/app/build/bin/classesdebug/sun/security/util/PermissionFactory.class new file mode 100644 index 000000000..710f586b5 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/PermissionFactory.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$0$debug.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$0$debug.class new file mode 100644 index 000000000..d3749d7b6 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$0$debug.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$0$debug.class new file mode 100644 index 000000000..d50fca91e Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000$0$debug.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000$0$debug.class new file mode 100644 index 000000000..447f4601b Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000.class new file mode 100644 index 000000000..2a3972a9f Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT$100000000.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT.class new file mode 100644 index 000000000..166ef1f86 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$AWT.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission$0$debug.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission$0$debug.class new file mode 100644 index 000000000..4e090552b Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission.class new file mode 100644 index 000000000..c6a072722 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermission.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory$0$debug.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory$0$debug.class new file mode 100644 index 000000000..9aa6fe556 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class new file mode 100644 index 000000000..e71e9cd55 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class differ diff --git a/app/build/bin/classesdebug/sun/security/util/SecurityConstants.class b/app/build/bin/classesdebug/sun/security/util/SecurityConstants.class new file mode 100644 index 000000000..ef3bb7e87 Binary files /dev/null and b/app/build/bin/classesdebug/sun/security/util/SecurityConstants.class differ diff --git a/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl$0$debug.class b/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl$0$debug.class new file mode 100644 index 000000000..614446507 Binary files /dev/null and b/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl$0$debug.class differ diff --git a/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl.class b/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl.class new file mode 100644 index 000000000..d69dc660c Binary files /dev/null and b/app/build/bin/classesdebug/sun/util/CoreResourceBundleControl.class differ diff --git a/app/build/bin/classesrelease/adrt/ADRTLogCatReader.class b/app/build/bin/classesrelease/adrt/ADRTLogCatReader.class new file mode 100644 index 000000000..937199d86 Binary files /dev/null and b/app/build/bin/classesrelease/adrt/ADRTLogCatReader.class differ diff --git a/app/build/bin/classesrelease/adrt/ADRTLogCatReader.dex b/app/build/bin/classesrelease/adrt/ADRTLogCatReader.dex new file mode 100644 index 000000000..d359bd722 Binary files /dev/null and b/app/build/bin/classesrelease/adrt/ADRTLogCatReader.dex differ diff --git a/app/build/bin/classesrelease/adrt/ADRTSender.class b/app/build/bin/classesrelease/adrt/ADRTSender.class new file mode 100644 index 000000000..5fc4a8288 Binary files /dev/null and b/app/build/bin/classesrelease/adrt/ADRTSender.class differ diff --git a/app/build/bin/classesrelease/adrt/ADRTSender.dex b/app/build/bin/classesrelease/adrt/ADRTSender.dex new file mode 100644 index 000000000..dc977831b Binary files /dev/null and b/app/build/bin/classesrelease/adrt/ADRTSender.dex differ diff --git a/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.class b/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.class new file mode 100644 index 000000000..c11b6dd05 Binary files /dev/null and b/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.class differ diff --git a/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.dex b/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.dex new file mode 100644 index 000000000..db532f1ac Binary files /dev/null and b/app/build/bin/classesrelease/android/graphics/PixelXorXfermode.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$anim.class b/app/build/bin/classesrelease/android/support/design/R$anim.class new file mode 100644 index 000000000..a09835871 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$anim.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$anim.dex b/app/build/bin/classesrelease/android/support/design/R$anim.dex new file mode 100644 index 000000000..f2b1556c8 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$anim.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$array.class b/app/build/bin/classesrelease/android/support/design/R$array.class new file mode 100644 index 000000000..064155d8f Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$array.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$array.dex b/app/build/bin/classesrelease/android/support/design/R$array.dex new file mode 100644 index 000000000..9cce4129e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$array.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$attr.class b/app/build/bin/classesrelease/android/support/design/R$attr.class new file mode 100644 index 000000000..f28790ad4 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$attr.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$attr.dex b/app/build/bin/classesrelease/android/support/design/R$attr.dex new file mode 100644 index 000000000..f29ef5711 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$attr.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$bool.class b/app/build/bin/classesrelease/android/support/design/R$bool.class new file mode 100644 index 000000000..e33135699 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$bool.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$bool.dex b/app/build/bin/classesrelease/android/support/design/R$bool.dex new file mode 100644 index 000000000..5e6eb0713 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$bool.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$color.class b/app/build/bin/classesrelease/android/support/design/R$color.class new file mode 100644 index 000000000..96c3a83d1 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$color.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$color.dex b/app/build/bin/classesrelease/android/support/design/R$color.dex new file mode 100644 index 000000000..73063fa57 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$color.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$dimen.class b/app/build/bin/classesrelease/android/support/design/R$dimen.class new file mode 100644 index 000000000..2628edeb0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$dimen.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$dimen.dex b/app/build/bin/classesrelease/android/support/design/R$dimen.dex new file mode 100644 index 000000000..b028f26e7 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$dimen.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$drawable.class b/app/build/bin/classesrelease/android/support/design/R$drawable.class new file mode 100644 index 000000000..a8f6c3b44 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$drawable.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$drawable.dex b/app/build/bin/classesrelease/android/support/design/R$drawable.dex new file mode 100644 index 000000000..413f951f5 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$drawable.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$id.class b/app/build/bin/classesrelease/android/support/design/R$id.class new file mode 100644 index 000000000..b9ebc4cb6 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$id.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$id.dex b/app/build/bin/classesrelease/android/support/design/R$id.dex new file mode 100644 index 000000000..426815723 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$id.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$integer.class b/app/build/bin/classesrelease/android/support/design/R$integer.class new file mode 100644 index 000000000..210ae0a1c Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$integer.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$integer.dex b/app/build/bin/classesrelease/android/support/design/R$integer.dex new file mode 100644 index 000000000..179b63ab0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$integer.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$layout.class b/app/build/bin/classesrelease/android/support/design/R$layout.class new file mode 100644 index 000000000..a73a7e7f8 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$layout.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$layout.dex b/app/build/bin/classesrelease/android/support/design/R$layout.dex new file mode 100644 index 000000000..3aeb43554 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$layout.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$menu.class b/app/build/bin/classesrelease/android/support/design/R$menu.class new file mode 100644 index 000000000..3216b121f Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$menu.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$menu.dex b/app/build/bin/classesrelease/android/support/design/R$menu.dex new file mode 100644 index 000000000..f9d5f3b78 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$menu.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$string.class b/app/build/bin/classesrelease/android/support/design/R$string.class new file mode 100644 index 000000000..269ce2132 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$string.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$string.dex b/app/build/bin/classesrelease/android/support/design/R$string.dex new file mode 100644 index 000000000..9d77f5b29 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$string.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$style.class b/app/build/bin/classesrelease/android/support/design/R$style.class new file mode 100644 index 000000000..648ac7a2e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$style.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$style.dex b/app/build/bin/classesrelease/android/support/design/R$style.dex new file mode 100644 index 000000000..cec826ca6 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$style.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R$styleable.class b/app/build/bin/classesrelease/android/support/design/R$styleable.class new file mode 100644 index 000000000..d9b6f7a0e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$styleable.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R$styleable.dex b/app/build/bin/classesrelease/android/support/design/R$styleable.dex new file mode 100644 index 000000000..5b27fc161 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R$styleable.dex differ diff --git a/app/build/bin/classesrelease/android/support/design/R.class b/app/build/bin/classesrelease/android/support/design/R.class new file mode 100644 index 000000000..22b7b83a4 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R.class differ diff --git a/app/build/bin/classesrelease/android/support/design/R.dex b/app/build/bin/classesrelease/android/support/design/R.dex new file mode 100644 index 000000000..20f404118 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/design/R.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.class new file mode 100644 index 000000000..b20612a14 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.dex new file mode 100644 index 000000000..69b4350a5 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$anim.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.class new file mode 100644 index 000000000..3b29bd443 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.dex new file mode 100644 index 000000000..9e7463b65 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$array.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.class new file mode 100644 index 000000000..100bc3a1e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.dex new file mode 100644 index 000000000..93e8b3814 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$attr.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.class new file mode 100644 index 000000000..32ceb37e3 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.dex new file mode 100644 index 000000000..3b78534f0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$bool.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.class new file mode 100644 index 000000000..90826fad0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.dex new file mode 100644 index 000000000..a7dd139b8 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$color.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.class new file mode 100644 index 000000000..806b7a2ea Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.dex new file mode 100644 index 000000000..51f079ce6 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$dimen.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.class new file mode 100644 index 000000000..a2a15d726 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.dex new file mode 100644 index 000000000..95388d51e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$drawable.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.class new file mode 100644 index 000000000..555dc7e2e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.dex new file mode 100644 index 000000000..2a4a9f4ab Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$id.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.class new file mode 100644 index 000000000..85459c238 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.dex new file mode 100644 index 000000000..e103bf24f Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$integer.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.class new file mode 100644 index 000000000..82b753160 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.dex new file mode 100644 index 000000000..786ff13de Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$layout.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.class new file mode 100644 index 000000000..2ac5e5b82 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.dex new file mode 100644 index 000000000..42199c406 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$menu.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.class new file mode 100644 index 000000000..1febbca0a Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.dex new file mode 100644 index 000000000..3fb3491ec Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$string.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.class new file mode 100644 index 000000000..7065334e1 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.dex new file mode 100644 index 000000000..1033844f7 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$style.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.class new file mode 100644 index 000000000..e5634529e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.dex new file mode 100644 index 000000000..516b13311 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R$styleable.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R.class b/app/build/bin/classesrelease/android/support/v7/appcompat/R.class new file mode 100644 index 000000000..97fe51ff6 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/appcompat/R.dex b/app/build/bin/classesrelease/android/support/v7/appcompat/R.dex new file mode 100644 index 000000000..4197654b0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/appcompat/R.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.class new file mode 100644 index 000000000..ea35d1ef0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.dex new file mode 100644 index 000000000..a3b30e50f Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$anim.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.class new file mode 100644 index 000000000..0f84ff1a1 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.dex new file mode 100644 index 000000000..694e4c734 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$array.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.class new file mode 100644 index 000000000..e0dd6b6a3 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.dex new file mode 100644 index 000000000..172cbe7c6 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$attr.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.class new file mode 100644 index 000000000..42b879785 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.dex new file mode 100644 index 000000000..ee1fcb568 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$bool.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.class new file mode 100644 index 000000000..e2e859200 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.dex new file mode 100644 index 000000000..71b931b29 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$color.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.class new file mode 100644 index 000000000..b4d93cdb0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.dex new file mode 100644 index 000000000..a9ca8c898 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$dimen.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.class new file mode 100644 index 000000000..2639cfd9a Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.dex new file mode 100644 index 000000000..44c69b12c Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$drawable.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.class new file mode 100644 index 000000000..d5e2cefce Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.dex new file mode 100644 index 000000000..41fcfe383 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$id.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.class new file mode 100644 index 000000000..a6a95c231 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.dex new file mode 100644 index 000000000..d8410ac1f Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$integer.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.class new file mode 100644 index 000000000..ed33d8b16 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.dex new file mode 100644 index 000000000..ec02471aa Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$layout.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.class new file mode 100644 index 000000000..654ec38b0 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.dex new file mode 100644 index 000000000..2e339307d Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$menu.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.class new file mode 100644 index 000000000..fd54d920c Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.dex new file mode 100644 index 000000000..408f3d06a Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$string.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.class new file mode 100644 index 000000000..b92d077f2 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.dex new file mode 100644 index 000000000..081e7ee0b Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$style.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.class new file mode 100644 index 000000000..39263f10e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.dex new file mode 100644 index 000000000..0a47b626e Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R$styleable.dex differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R.class b/app/build/bin/classesrelease/android/support/v7/recyclerview/R.class new file mode 100644 index 000000000..151247850 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R.class differ diff --git a/app/build/bin/classesrelease/android/support/v7/recyclerview/R.dex b/app/build/bin/classesrelease/android/support/v7/recyclerview/R.dex new file mode 100644 index 000000000..20c086ec3 Binary files /dev/null and b/app/build/bin/classesrelease/android/support/v7/recyclerview/R.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.class b/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.class new file mode 100644 index 000000000..dab46d2b9 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.dex b/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.dex new file mode 100644 index 000000000..fa44d8da5 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListAdapter.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.class b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.class new file mode 100644 index 000000000..b4996cf11 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.dex b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.dex new file mode 100644 index 000000000..33fe4d46a Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView$100000000.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.class b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.class new file mode 100644 index 000000000..af29d811b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.dex b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.dex new file mode 100644 index 000000000..b1f6230dd Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileListView.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.class b/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.class new file mode 100644 index 000000000..d93fb4467 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.dex b/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.dex new file mode 100644 index 000000000..55db8436b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/FileSelectedListener.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.class b/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.class new file mode 100644 index 000000000..7200718b6 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.dex b/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.dex new file mode 100644 index 000000000..cdd96fc7a Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filerapi/SortFileName.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.class b/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.class new file mode 100644 index 000000000..3a9df656e Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.dex b/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.dex new file mode 100644 index 000000000..0e8ccf254 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListAdapter.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.class b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.class new file mode 100644 index 000000000..a38b27268 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.dex b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.dex new file mode 100644 index 000000000..0f64cffda Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000000.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.class b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.class new file mode 100644 index 000000000..b7bb74cca Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.dex b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.dex new file mode 100644 index 000000000..fa3e17fd2 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView$100000001.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.class b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.class new file mode 100644 index 000000000..624052876 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.dex b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.dex new file mode 100644 index 000000000..f7e7126c1 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileListView.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.class b/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.class new file mode 100644 index 000000000..9ff4705a8 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.dex b/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.dex new file mode 100644 index 000000000..90681f396 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MFileSelectedListener.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.class b/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.class new file mode 100644 index 000000000..69d10c72c Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.class differ diff --git a/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.dex b/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.dex new file mode 100644 index 000000000..088c41141 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/filermod/MSortFileName.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class new file mode 100644 index 000000000..c56246a37 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.dex new file mode 100644 index 000000000..a36538748 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$BaseConfigChooser.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class new file mode 100644 index 000000000..21b46c5f0 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.dex new file mode 100644 index 000000000..0ccf3df43 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$ComponentSizeChooser.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class new file mode 100644 index 000000000..5ed68b378 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.dex new file mode 100644 index 000000000..20639165c Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultContextFactory.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class new file mode 100644 index 000000000..4aba3bb2b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.dex new file mode 100644 index 000000000..2707b38da Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$DefaultWindowSurfaceFactory.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class new file mode 100644 index 000000000..526a12c22 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.dex new file mode 100644 index 000000000..2309553fa Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLConfigChooser.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.class new file mode 100644 index 000000000..0456877e4 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.dex new file mode 100644 index 000000000..d777f5bc1 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLContextFactory.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class new file mode 100644 index 000000000..fa417529e Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.dex new file mode 100644 index 000000000..ad2b9192c Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EGLWindowSurfaceFactory.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.class new file mode 100644 index 000000000..38b870cea Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.dex new file mode 100644 index 000000000..f9935ff58 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$EglHelper.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.class new file mode 100644 index 000000000..86b575b49 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.dex new file mode 100644 index 000000000..7161b9dcf Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThread.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.class new file mode 100644 index 000000000..fea09ca40 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.dex new file mode 100644 index 000000000..5ecb6ecdd Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLThreadManager.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.class new file mode 100644 index 000000000..626c0fbc4 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.dex new file mode 100644 index 000000000..451135392 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$GLWrapper.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.class new file mode 100644 index 000000000..e37fc11a5 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.dex new file mode 100644 index 000000000..a4edf8b51 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$LogWriter.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.class new file mode 100644 index 000000000..166bb5ca1 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.dex new file mode 100644 index 000000000..4e7bad942 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$Renderer.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class new file mode 100644 index 000000000..b9791565e Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.dex new file mode 100644 index 000000000..8e86f92b5 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView$SimpleEGLConfigChooser.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.class b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.class new file mode 100644 index 000000000..64dbbd30f Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.class differ diff --git a/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.dex b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.dex new file mode 100644 index 000000000..47c40770f Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/glsupport/GLTextureView.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.class b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.class new file mode 100644 index 000000000..f70d49442 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.dex b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.dex new file mode 100644 index 000000000..e2e01e51d Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton$100000000.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.class b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.class new file mode 100644 index 000000000..d5cacf040 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.dex b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.dex new file mode 100644 index 000000000..d369f86de Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineButton.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.class b/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.class new file mode 100644 index 000000000..1ca137463 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.dex b/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.dex new file mode 100644 index 000000000..afe51d920 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/MineEditText.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.class b/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.class new file mode 100644 index 000000000..acca3d27f Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.dex b/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.dex new file mode 100644 index 000000000..5ad1b4f25 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mcgui/app/MineActivity.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.class b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.class new file mode 100644 index 000000000..d0a55cb1e Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.dex new file mode 100644 index 000000000..ec0528c21 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginListener.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.class b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.class new file mode 100644 index 000000000..f448236e8 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.dex new file mode 100644 index 000000000..aa583c256 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/LoginTask.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.class b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.class new file mode 100644 index 000000000..e0ab9c70b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.dex new file mode 100644 index 000000000..4f4e861a3 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshListener.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.class b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.class new file mode 100644 index 000000000..663a0dcac Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.dex new file mode 100644 index 000000000..d5c5921e2 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/RefreshTokenTask.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class new file mode 100644 index 000000000..3ece23a5b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.dex new file mode 100644 index 000000000..ba151d2d3 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest$AgentInfo.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class new file mode 100644 index 000000000..e2fcd8632 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.dex new file mode 100644 index 000000000..0fd327c35 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class new file mode 100644 index 000000000..aa040276f Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.dex new file mode 100644 index 000000000..fe66d9174 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.class new file mode 100644 index 000000000..aee05e847 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.dex new file mode 100644 index 000000000..7187dcbaa Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/ErrorResponse.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.class new file mode 100644 index 000000000..95f5589b0 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.dex new file mode 100644 index 000000000..9d394d491 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/Profile.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.class new file mode 100644 index 000000000..c2e646bef Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.dex new file mode 100644 index 000000000..4c89d7c29 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshRequest.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.class new file mode 100644 index 000000000..28e5e4090 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.dex new file mode 100644 index 000000000..4c6eb7519 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/RefreshResponse.dex differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class new file mode 100644 index 000000000..fb6152238 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.class differ diff --git a/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.dex b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.dex new file mode 100644 index 000000000..124a4264b Binary files /dev/null and b/app/build/bin/classesrelease/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.dex differ diff --git a/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.class b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.class new file mode 100644 index 000000000..83f8f9c2c Binary files /dev/null and b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.class differ diff --git a/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.dex b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.dex new file mode 100644 index 000000000..d26923918 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext$100000000.dex differ diff --git a/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.class b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.class new file mode 100644 index 000000000..981d5cb39 Binary files /dev/null and b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.class differ diff --git a/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.dex b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.dex new file mode 100644 index 000000000..f19f047ca Binary files /dev/null and b/app/build/bin/classesrelease/com/kdtapi/mclup/UpContext.dex differ diff --git a/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.class b/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.class new file mode 100644 index 000000000..5d1de10f2 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.class differ diff --git a/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.dex b/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.dex new file mode 100644 index 000000000..28fda9bc7 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/Applet$AccessibleApplet.dex differ diff --git a/app/build/bin/classesrelease/java/applet/Applet.class b/app/build/bin/classesrelease/java/applet/Applet.class new file mode 100644 index 000000000..8d4f05a05 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/Applet.class differ diff --git a/app/build/bin/classesrelease/java/applet/Applet.dex b/app/build/bin/classesrelease/java/applet/Applet.dex new file mode 100644 index 000000000..407b00be0 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/Applet.dex differ diff --git a/app/build/bin/classesrelease/java/applet/AppletContext.class b/app/build/bin/classesrelease/java/applet/AppletContext.class new file mode 100644 index 000000000..cffdcb402 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AppletContext.class differ diff --git a/app/build/bin/classesrelease/java/applet/AppletContext.dex b/app/build/bin/classesrelease/java/applet/AppletContext.dex new file mode 100644 index 000000000..42ac419f9 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AppletContext.dex differ diff --git a/app/build/bin/classesrelease/java/applet/AppletStub.class b/app/build/bin/classesrelease/java/applet/AppletStub.class new file mode 100644 index 000000000..b74e8533c Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AppletStub.class differ diff --git a/app/build/bin/classesrelease/java/applet/AppletStub.dex b/app/build/bin/classesrelease/java/applet/AppletStub.dex new file mode 100644 index 000000000..04eb4373c Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AppletStub.dex differ diff --git a/app/build/bin/classesrelease/java/applet/AudioClip.class b/app/build/bin/classesrelease/java/applet/AudioClip.class new file mode 100644 index 000000000..6b5b3b6a6 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AudioClip.class differ diff --git a/app/build/bin/classesrelease/java/applet/AudioClip.dex b/app/build/bin/classesrelease/java/applet/AudioClip.dex new file mode 100644 index 000000000..9ca0c8a42 Binary files /dev/null and b/app/build/bin/classesrelease/java/applet/AudioClip.dex differ diff --git a/app/build/bin/classesrelease/java/awt/AWTError.class b/app/build/bin/classesrelease/java/awt/AWTError.class new file mode 100644 index 000000000..f4c6bb28e Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/AWTError.class differ diff --git a/app/build/bin/classesrelease/java/awt/AWTError.dex b/app/build/bin/classesrelease/java/awt/AWTError.dex new file mode 100644 index 000000000..a9f62fd74 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/AWTError.dex differ diff --git a/app/build/bin/classesrelease/java/awt/AWTException.class b/app/build/bin/classesrelease/java/awt/AWTException.class new file mode 100644 index 000000000..0d8782278 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/AWTException.class differ diff --git a/app/build/bin/classesrelease/java/awt/AWTException.dex b/app/build/bin/classesrelease/java/awt/AWTException.dex new file mode 100644 index 000000000..2ceca459a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/AWTException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/BorderLayout.class b/app/build/bin/classesrelease/java/awt/BorderLayout.class new file mode 100644 index 000000000..d4f1f13bc Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/BorderLayout.class differ diff --git a/app/build/bin/classesrelease/java/awt/BorderLayout.dex b/app/build/bin/classesrelease/java/awt/BorderLayout.dex new file mode 100644 index 000000000..7d7df0dfe Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/BorderLayout.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Canvas.class b/app/build/bin/classesrelease/java/awt/Canvas.class new file mode 100644 index 000000000..8b02f8fff Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Canvas.class differ diff --git a/app/build/bin/classesrelease/java/awt/Canvas.dex b/app/build/bin/classesrelease/java/awt/Canvas.dex new file mode 100644 index 000000000..4f6564c0a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Canvas.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Color.class b/app/build/bin/classesrelease/java/awt/Color.class new file mode 100644 index 000000000..cd45647d4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Color.class differ diff --git a/app/build/bin/classesrelease/java/awt/Color.dex b/app/build/bin/classesrelease/java/awt/Color.dex new file mode 100644 index 000000000..9fde8aee4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Color.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Component.class b/app/build/bin/classesrelease/java/awt/Component.class new file mode 100644 index 000000000..65efa6aec Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Component.class differ diff --git a/app/build/bin/classesrelease/java/awt/Component.dex b/app/build/bin/classesrelease/java/awt/Component.dex new file mode 100644 index 000000000..b6db8f283 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Component.dex differ diff --git a/app/build/bin/classesrelease/java/awt/ComponentOrientation.class b/app/build/bin/classesrelease/java/awt/ComponentOrientation.class new file mode 100644 index 000000000..e4ac29804 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/ComponentOrientation.class differ diff --git a/app/build/bin/classesrelease/java/awt/ComponentOrientation.dex b/app/build/bin/classesrelease/java/awt/ComponentOrientation.dex new file mode 100644 index 000000000..f6e53cb65 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/ComponentOrientation.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Conditional.class b/app/build/bin/classesrelease/java/awt/Conditional.class new file mode 100644 index 000000000..1dfcc8f9b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Conditional.class differ diff --git a/app/build/bin/classesrelease/java/awt/Conditional.dex b/app/build/bin/classesrelease/java/awt/Conditional.dex new file mode 100644 index 000000000..e866da930 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Conditional.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Container.class b/app/build/bin/classesrelease/java/awt/Container.class new file mode 100644 index 000000000..14fca3339 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Container.class differ diff --git a/app/build/bin/classesrelease/java/awt/Container.dex b/app/build/bin/classesrelease/java/awt/Container.dex new file mode 100644 index 000000000..2c7730720 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Container.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Cursor.class b/app/build/bin/classesrelease/java/awt/Cursor.class new file mode 100644 index 000000000..0860cbb06 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Cursor.class differ diff --git a/app/build/bin/classesrelease/java/awt/Cursor.dex b/app/build/bin/classesrelease/java/awt/Cursor.dex new file mode 100644 index 000000000..d993ed3f3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Cursor.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Desktop$Action.class b/app/build/bin/classesrelease/java/awt/Desktop$Action.class new file mode 100644 index 000000000..8fcc1418f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Desktop$Action.class differ diff --git a/app/build/bin/classesrelease/java/awt/Desktop$Action.dex b/app/build/bin/classesrelease/java/awt/Desktop$Action.dex new file mode 100644 index 000000000..2c80223ea Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Desktop$Action.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Desktop.class b/app/build/bin/classesrelease/java/awt/Desktop.class new file mode 100644 index 000000000..ce8e72ebd Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Desktop.class differ diff --git a/app/build/bin/classesrelease/java/awt/Desktop.dex b/app/build/bin/classesrelease/java/awt/Desktop.dex new file mode 100644 index 000000000..8688e2d25 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Desktop.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Dimension.class b/app/build/bin/classesrelease/java/awt/Dimension.class new file mode 100644 index 000000000..02bc8b73b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Dimension.class differ diff --git a/app/build/bin/classesrelease/java/awt/Dimension.dex b/app/build/bin/classesrelease/java/awt/Dimension.dex new file mode 100644 index 000000000..e6b925221 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Dimension.dex differ diff --git a/app/build/bin/classesrelease/java/awt/DisplayMode.class b/app/build/bin/classesrelease/java/awt/DisplayMode.class new file mode 100644 index 000000000..6a9de90b1 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/DisplayMode.class differ diff --git a/app/build/bin/classesrelease/java/awt/DisplayMode.dex b/app/build/bin/classesrelease/java/awt/DisplayMode.dex new file mode 100644 index 000000000..f21c468ce Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/DisplayMode.dex differ diff --git a/app/build/bin/classesrelease/java/awt/FlowLayout.class b/app/build/bin/classesrelease/java/awt/FlowLayout.class new file mode 100644 index 000000000..7fee87bb4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/FlowLayout.class differ diff --git a/app/build/bin/classesrelease/java/awt/FlowLayout.dex b/app/build/bin/classesrelease/java/awt/FlowLayout.dex new file mode 100644 index 000000000..13923e13a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/FlowLayout.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Font.class b/app/build/bin/classesrelease/java/awt/Font.class new file mode 100644 index 000000000..d7b66b905 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Font.class differ diff --git a/app/build/bin/classesrelease/java/awt/Font.dex b/app/build/bin/classesrelease/java/awt/Font.dex new file mode 100644 index 000000000..ef23412e4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Font.dex differ diff --git a/app/build/bin/classesrelease/java/awt/FontFormatException.class b/app/build/bin/classesrelease/java/awt/FontFormatException.class new file mode 100644 index 000000000..f5c121b3c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/FontFormatException.class differ diff --git a/app/build/bin/classesrelease/java/awt/FontFormatException.dex b/app/build/bin/classesrelease/java/awt/FontFormatException.dex new file mode 100644 index 000000000..a7dd0ffd4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/FontFormatException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Frame.class b/app/build/bin/classesrelease/java/awt/Frame.class new file mode 100644 index 000000000..e0ee67ae0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Frame.class differ diff --git a/app/build/bin/classesrelease/java/awt/Frame.dex b/app/build/bin/classesrelease/java/awt/Frame.dex new file mode 100644 index 000000000..b765a0c80 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Frame.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Graphics.class b/app/build/bin/classesrelease/java/awt/Graphics.class new file mode 100644 index 000000000..19bb19547 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Graphics.class differ diff --git a/app/build/bin/classesrelease/java/awt/Graphics.dex b/app/build/bin/classesrelease/java/awt/Graphics.dex new file mode 100644 index 000000000..128dbaa99 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Graphics.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Graphics2D.class b/app/build/bin/classesrelease/java/awt/Graphics2D.class new file mode 100644 index 000000000..44dab4615 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Graphics2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/Graphics2D.dex b/app/build/bin/classesrelease/java/awt/Graphics2D.dex new file mode 100644 index 000000000..82decd559 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Graphics2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.class b/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.class new file mode 100644 index 000000000..2356a84b0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.class differ diff --git a/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.dex b/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.dex new file mode 100644 index 000000000..c4f4cdd61 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/GraphicsEnvironment.dex differ diff --git a/app/build/bin/classesrelease/java/awt/HeadlessException.class b/app/build/bin/classesrelease/java/awt/HeadlessException.class new file mode 100644 index 000000000..1170be090 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/HeadlessException.class differ diff --git a/app/build/bin/classesrelease/java/awt/HeadlessException.dex b/app/build/bin/classesrelease/java/awt/HeadlessException.dex new file mode 100644 index 000000000..a000b7607 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/HeadlessException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.class b/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.class new file mode 100644 index 000000000..9fef18181 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.class differ diff --git a/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.dex b/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.dex new file mode 100644 index 000000000..e4e9168b2 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/IllegalComponentStateException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Image.class b/app/build/bin/classesrelease/java/awt/Image.class new file mode 100644 index 000000000..4cabe9241 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Image.class differ diff --git a/app/build/bin/classesrelease/java/awt/Image.dex b/app/build/bin/classesrelease/java/awt/Image.dex new file mode 100644 index 000000000..01e23de42 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Image.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Insets.class b/app/build/bin/classesrelease/java/awt/Insets.class new file mode 100644 index 000000000..d0dec8ea8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Insets.class differ diff --git a/app/build/bin/classesrelease/java/awt/Insets.dex b/app/build/bin/classesrelease/java/awt/Insets.dex new file mode 100644 index 000000000..6e0954a46 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Insets.dex differ diff --git a/app/build/bin/classesrelease/java/awt/LayoutManager.class b/app/build/bin/classesrelease/java/awt/LayoutManager.class new file mode 100644 index 000000000..9e1d7635a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/LayoutManager.class differ diff --git a/app/build/bin/classesrelease/java/awt/LayoutManager.dex b/app/build/bin/classesrelease/java/awt/LayoutManager.dex new file mode 100644 index 000000000..b81982847 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/LayoutManager.dex differ diff --git a/app/build/bin/classesrelease/java/awt/LayoutManager2.class b/app/build/bin/classesrelease/java/awt/LayoutManager2.class new file mode 100644 index 000000000..53dc7561b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/LayoutManager2.class differ diff --git a/app/build/bin/classesrelease/java/awt/LayoutManager2.dex b/app/build/bin/classesrelease/java/awt/LayoutManager2.dex new file mode 100644 index 000000000..e2d5ffa60 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/LayoutManager2.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.class b/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.class new file mode 100644 index 000000000..526fb0308 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.class differ diff --git a/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.dex b/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.dex new file mode 100644 index 000000000..c368489ee Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Panel$AccessibleAWTPanel.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Panel.class b/app/build/bin/classesrelease/java/awt/Panel.class new file mode 100644 index 000000000..90c921895 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Panel.class differ diff --git a/app/build/bin/classesrelease/java/awt/Panel.dex b/app/build/bin/classesrelease/java/awt/Panel.dex new file mode 100644 index 000000000..04b89a3d8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Panel.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Point.class b/app/build/bin/classesrelease/java/awt/Point.class new file mode 100644 index 000000000..87e3b3d89 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Point.class differ diff --git a/app/build/bin/classesrelease/java/awt/Point.dex b/app/build/bin/classesrelease/java/awt/Point.dex new file mode 100644 index 000000000..aa7defc2d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Point.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Rectangle.class b/app/build/bin/classesrelease/java/awt/Rectangle.class new file mode 100644 index 000000000..f73357863 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Rectangle.class differ diff --git a/app/build/bin/classesrelease/java/awt/Rectangle.dex b/app/build/bin/classesrelease/java/awt/Rectangle.dex new file mode 100644 index 000000000..c3b7b1c50 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Rectangle.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Shape.class b/app/build/bin/classesrelease/java/awt/Shape.class new file mode 100644 index 000000000..e63ca4fa8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Shape.class differ diff --git a/app/build/bin/classesrelease/java/awt/Shape.dex b/app/build/bin/classesrelease/java/awt/Shape.dex new file mode 100644 index 000000000..4fa11352a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Shape.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit$100000000.class b/app/build/bin/classesrelease/java/awt/Toolkit$100000000.class new file mode 100644 index 000000000..c13ee000f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit$100000000.class differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit$100000000.dex b/app/build/bin/classesrelease/java/awt/Toolkit$100000000.dex new file mode 100644 index 000000000..f3b8bb36a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit$100000000.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.class b/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.class new file mode 100644 index 000000000..3f28e688c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.class differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.dex b/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.dex new file mode 100644 index 000000000..e31f0e831 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit$AWTTreeLock.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit.class b/app/build/bin/classesrelease/java/awt/Toolkit.class new file mode 100644 index 000000000..490e1aaab Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit.class differ diff --git a/app/build/bin/classesrelease/java/awt/Toolkit.dex b/app/build/bin/classesrelease/java/awt/Toolkit.dex new file mode 100644 index 000000000..c9913e580 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Toolkit.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Transparency.class b/app/build/bin/classesrelease/java/awt/Transparency.class new file mode 100644 index 000000000..64a6e2977 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Transparency.class differ diff --git a/app/build/bin/classesrelease/java/awt/Transparency.dex b/app/build/bin/classesrelease/java/awt/Transparency.dex new file mode 100644 index 000000000..a5fa0834f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Transparency.dex differ diff --git a/app/build/bin/classesrelease/java/awt/Window.class b/app/build/bin/classesrelease/java/awt/Window.class new file mode 100644 index 000000000..2c55e02f7 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Window.class differ diff --git a/app/build/bin/classesrelease/java/awt/Window.dex b/app/build/bin/classesrelease/java/awt/Window.dex new file mode 100644 index 000000000..76ab258f8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/Window.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.class b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.class new file mode 100644 index 000000000..9fa86f9e6 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.dex b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.dex new file mode 100644 index 000000000..ee032fd42 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard$100000000.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.class b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.class new file mode 100644 index 000000000..180e9a17d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.dex b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.dex new file mode 100644 index 000000000..2d28f8453 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Clipboard.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.class b/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.class new file mode 100644 index 000000000..3c4291065 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.dex b/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.dex new file mode 100644 index 000000000..9ef5ed90f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/ClipboardOwner.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.class b/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.class new file mode 100644 index 000000000..78eb512e7 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.dex b/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.dex new file mode 100644 index 000000000..60556e260 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/DataFlavor.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.class b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.class new file mode 100644 index 000000000..5fba1b113 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.dex b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.dex new file mode 100644 index 000000000..9def90765 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$MimeType.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class new file mode 100644 index 000000000..a24745c7e Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.dex b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.dex new file mode 100644 index 000000000..138f66e3d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor$StringPosition.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.class b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.class new file mode 100644 index 000000000..ae3a1be89 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.dex b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.dex new file mode 100644 index 000000000..4a7334ec3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/MimeTypeProcessor.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.class b/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.class new file mode 100644 index 000000000..c1b9631cc Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.dex b/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.dex new file mode 100644 index 000000000..b6f1fea8d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/StringSelection.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.class b/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.class new file mode 100644 index 000000000..7d865fc81 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.dex b/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.dex new file mode 100644 index 000000000..0e1c80b6c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/Transferable.dex differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.class b/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.class new file mode 100644 index 000000000..ee8cbc0f3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.class differ diff --git a/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.dex b/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.dex new file mode 100644 index 000000000..391ea4588 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/datatransfer/UnsupportedFlavorException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowAdapter.class b/app/build/bin/classesrelease/java/awt/event/WindowAdapter.class new file mode 100644 index 000000000..2a4034260 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowAdapter.class differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowAdapter.dex b/app/build/bin/classesrelease/java/awt/event/WindowAdapter.dex new file mode 100644 index 000000000..07502a7ea Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowAdapter.dex differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowEvent.class b/app/build/bin/classesrelease/java/awt/event/WindowEvent.class new file mode 100644 index 000000000..10a3b4643 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowEvent.class differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowEvent.dex b/app/build/bin/classesrelease/java/awt/event/WindowEvent.dex new file mode 100644 index 000000000..00fc89ec2 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowEvent.dex differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowListener.class b/app/build/bin/classesrelease/java/awt/event/WindowListener.class new file mode 100644 index 000000000..4a068a639 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowListener.class differ diff --git a/app/build/bin/classesrelease/java/awt/event/WindowListener.dex b/app/build/bin/classesrelease/java/awt/event/WindowListener.dex new file mode 100644 index 000000000..12ac01297 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/event/WindowListener.dex differ diff --git a/app/build/bin/classesrelease/java/awt/font/TextAttribute.class b/app/build/bin/classesrelease/java/awt/font/TextAttribute.class new file mode 100644 index 000000000..39983ae26 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/font/TextAttribute.class differ diff --git a/app/build/bin/classesrelease/java/awt/font/TextAttribute.dex b/app/build/bin/classesrelease/java/awt/font/TextAttribute.dex new file mode 100644 index 000000000..13e56ba94 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/font/TextAttribute.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/AffineTransform.class b/app/build/bin/classesrelease/java/awt/geom/AffineTransform.class new file mode 100644 index 000000000..64c9c50b0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/AffineTransform.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/AffineTransform.dex b/app/build/bin/classesrelease/java/awt/geom/AffineTransform.dex new file mode 100644 index 000000000..109fa8c0b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/AffineTransform.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.class new file mode 100644 index 000000000..d7f8f249b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.dex new file mode 100644 index 000000000..cf868608a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.class new file mode 100644 index 000000000..946eb108e Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.dex new file mode 100644 index 000000000..565a3c9f5 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.class new file mode 100644 index 000000000..aaad1b496 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.dex new file mode 100644 index 000000000..d7e5f4a14 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D.class b/app/build/bin/classesrelease/java/awt/geom/Arc2D.class new file mode 100644 index 000000000..073bfad1c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Arc2D.dex b/app/build/bin/classesrelease/java/awt/geom/Arc2D.dex new file mode 100644 index 000000000..c1707d858 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Arc2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.class b/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.class new file mode 100644 index 000000000..c1c9c0fc8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.dex b/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.dex new file mode 100644 index 000000000..d36840df4 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Area$NullIterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Area.class b/app/build/bin/classesrelease/java/awt/geom/Area.class new file mode 100644 index 000000000..04c42cb44 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Area.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Area.dex b/app/build/bin/classesrelease/java/awt/geom/Area.dex new file mode 100644 index 000000000..17e486217 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Area.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.class new file mode 100644 index 000000000..686f7fb46 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.dex new file mode 100644 index 000000000..dbf4a8f61 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.class new file mode 100644 index 000000000..533015e21 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.dex new file mode 100644 index 000000000..e7bd11a4c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.class new file mode 100644 index 000000000..f3c51e4d0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.dex new file mode 100644 index 000000000..a44cc3bff Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.class b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.class new file mode 100644 index 000000000..07086dc3a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.dex b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.dex new file mode 100644 index 000000000..a8c4fb55c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/CubicCurve2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Dimension2D.class b/app/build/bin/classesrelease/java/awt/geom/Dimension2D.class new file mode 100644 index 000000000..ddfa0b4ca Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Dimension2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Dimension2D.dex b/app/build/bin/classesrelease/java/awt/geom/Dimension2D.dex new file mode 100644 index 000000000..37f503f2d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Dimension2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.class new file mode 100644 index 000000000..2e5b87571 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.dex new file mode 100644 index 000000000..89f31b8e7 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.class new file mode 100644 index 000000000..65736a5b2 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.dex new file mode 100644 index 000000000..627f1404d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.class new file mode 100644 index 000000000..7b7a47481 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.dex new file mode 100644 index 000000000..8ebd256ad Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.class b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.class new file mode 100644 index 000000000..2422f5494 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.dex b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.dex new file mode 100644 index 000000000..0ee19c020 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Ellipse2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.class b/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.class new file mode 100644 index 000000000..4283a7604 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.dex b/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.dex new file mode 100644 index 000000000..9d588bc5c Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/FlatteningPathIterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.class new file mode 100644 index 000000000..229e46440 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.dex new file mode 100644 index 000000000..f968f2a73 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/GeneralPath$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/GeneralPath.class b/app/build/bin/classesrelease/java/awt/geom/GeneralPath.class new file mode 100644 index 000000000..599064526 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/GeneralPath.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/GeneralPath.dex b/app/build/bin/classesrelease/java/awt/geom/GeneralPath.dex new file mode 100644 index 000000000..571368032 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/GeneralPath.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.class b/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.class new file mode 100644 index 000000000..05e790b14 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.dex b/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.dex new file mode 100644 index 000000000..ba097670a Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/IllegalPathStateException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.class new file mode 100644 index 000000000..85fcb14c5 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.dex new file mode 100644 index 000000000..a5283b25b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.class new file mode 100644 index 000000000..8d1f39295 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.dex new file mode 100644 index 000000000..35976cdf8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.class new file mode 100644 index 000000000..9ab7218ad Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.dex new file mode 100644 index 000000000..71d2a40c8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D.class b/app/build/bin/classesrelease/java/awt/geom/Line2D.class new file mode 100644 index 000000000..993fc56cb Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Line2D.dex b/app/build/bin/classesrelease/java/awt/geom/Line2D.dex new file mode 100644 index 000000000..69c1cd9eb Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Line2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.class b/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.class new file mode 100644 index 000000000..b374d88a3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.dex b/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.dex new file mode 100644 index 000000000..16fab53e3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/NoninvertibleTransformException.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/PathIterator.class b/app/build/bin/classesrelease/java/awt/geom/PathIterator.class new file mode 100644 index 000000000..d26d4916e Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/PathIterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/PathIterator.dex b/app/build/bin/classesrelease/java/awt/geom/PathIterator.dex new file mode 100644 index 000000000..cae49c073 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/PathIterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.class new file mode 100644 index 000000000..69c564bd3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.dex new file mode 100644 index 000000000..d6dfefd92 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.class new file mode 100644 index 000000000..2ffda0d22 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.dex new file mode 100644 index 000000000..e524e3974 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D.class b/app/build/bin/classesrelease/java/awt/geom/Point2D.class new file mode 100644 index 000000000..2352d7a37 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Point2D.dex b/app/build/bin/classesrelease/java/awt/geom/Point2D.dex new file mode 100644 index 000000000..ec4c473b2 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Point2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.class new file mode 100644 index 000000000..76ffb1ec5 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.dex new file mode 100644 index 000000000..5c3435a47 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.class new file mode 100644 index 000000000..05cfeb750 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.dex new file mode 100644 index 000000000..42c4249ac Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.class new file mode 100644 index 000000000..64a08cad1 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.dex new file mode 100644 index 000000000..5eee1e41d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.class b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.class new file mode 100644 index 000000000..b739fb849 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.dex b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.dex new file mode 100644 index 000000000..d9af90f0f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/QuadCurve2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.class new file mode 100644 index 000000000..c0d1c4e41 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.dex new file mode 100644 index 000000000..ddc8b8658 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.class new file mode 100644 index 000000000..d84941c5d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.dex new file mode 100644 index 000000000..984dd498e Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.class new file mode 100644 index 000000000..805e97c57 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.dex new file mode 100644 index 000000000..b336d3f6b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.class b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.class new file mode 100644 index 000000000..9c1f2f9d0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.dex b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.dex new file mode 100644 index 000000000..c4922e3fb Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/Rectangle2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RectangularShape.class b/app/build/bin/classesrelease/java/awt/geom/RectangularShape.class new file mode 100644 index 000000000..157194ded Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RectangularShape.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RectangularShape.dex b/app/build/bin/classesrelease/java/awt/geom/RectangularShape.dex new file mode 100644 index 000000000..9d99cfb87 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RectangularShape.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.class b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.class new file mode 100644 index 000000000..df52b1224 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.dex b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.dex new file mode 100644 index 000000000..29be7efc5 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Double.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.class b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.class new file mode 100644 index 000000000..42d6322a2 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.dex b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.dex new file mode 100644 index 000000000..5de7dfefb Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Float.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.class b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.class new file mode 100644 index 000000000..db92546e0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.dex b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.dex new file mode 100644 index 000000000..5f425ba22 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D$Iterator.dex differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.class b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.class new file mode 100644 index 000000000..6f4533319 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.class differ diff --git a/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.dex b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.dex new file mode 100644 index 000000000..85b3e5a39 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/geom/RoundRectangle2D.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/BufferedImage.class b/app/build/bin/classesrelease/java/awt/image/BufferedImage.class new file mode 100644 index 000000000..c85383300 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/BufferedImage.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/BufferedImage.dex b/app/build/bin/classesrelease/java/awt/image/BufferedImage.dex new file mode 100644 index 000000000..f8c02e34b Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/BufferedImage.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/DataBuffer.class b/app/build/bin/classesrelease/java/awt/image/DataBuffer.class new file mode 100644 index 000000000..231d68f13 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/DataBuffer.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/DataBuffer.dex b/app/build/bin/classesrelease/java/awt/image/DataBuffer.dex new file mode 100644 index 000000000..6291470c8 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/DataBuffer.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/DataBufferInt.class b/app/build/bin/classesrelease/java/awt/image/DataBufferInt.class new file mode 100644 index 000000000..facdbb174 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/DataBufferInt.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/DataBufferInt.dex b/app/build/bin/classesrelease/java/awt/image/DataBufferInt.dex new file mode 100644 index 000000000..f9ff7cf6f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/DataBufferInt.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/ImageObserver.class b/app/build/bin/classesrelease/java/awt/image/ImageObserver.class new file mode 100644 index 000000000..85350a138 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/ImageObserver.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/ImageObserver.dex b/app/build/bin/classesrelease/java/awt/image/ImageObserver.dex new file mode 100644 index 000000000..9eb15cd3d Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/ImageObserver.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/RenderedImage.class b/app/build/bin/classesrelease/java/awt/image/RenderedImage.class new file mode 100644 index 000000000..ce6aedee9 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/RenderedImage.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/RenderedImage.dex b/app/build/bin/classesrelease/java/awt/image/RenderedImage.dex new file mode 100644 index 000000000..0285340c3 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/RenderedImage.dex differ diff --git a/app/build/bin/classesrelease/java/awt/image/WritableRaster.class b/app/build/bin/classesrelease/java/awt/image/WritableRaster.class new file mode 100644 index 000000000..da6c8b169 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/WritableRaster.class differ diff --git a/app/build/bin/classesrelease/java/awt/image/WritableRaster.dex b/app/build/bin/classesrelease/java/awt/image/WritableRaster.dex new file mode 100644 index 000000000..59de734d0 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/image/WritableRaster.dex differ diff --git a/app/build/bin/classesrelease/java/awt/mod/ModdingKit.class b/app/build/bin/classesrelease/java/awt/mod/ModdingKit.class new file mode 100644 index 000000000..81d92fbdc Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/mod/ModdingKit.class differ diff --git a/app/build/bin/classesrelease/java/awt/mod/ModdingKit.dex b/app/build/bin/classesrelease/java/awt/mod/ModdingKit.dex new file mode 100644 index 000000000..d79a4be2f Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/mod/ModdingKit.dex differ diff --git a/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.class b/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.class new file mode 100644 index 000000000..c76ea33e1 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.class differ diff --git a/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.dex b/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.dex new file mode 100644 index 000000000..cb1f5ce19 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/peer/DesktopPeer.dex differ diff --git a/app/build/bin/classesrelease/java/awt/peer/FontPeer.class b/app/build/bin/classesrelease/java/awt/peer/FontPeer.class new file mode 100644 index 000000000..0dd3d4c70 Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/peer/FontPeer.class differ diff --git a/app/build/bin/classesrelease/java/awt/peer/FontPeer.dex b/app/build/bin/classesrelease/java/awt/peer/FontPeer.dex new file mode 100644 index 000000000..c40c3e3ec Binary files /dev/null and b/app/build/bin/classesrelease/java/awt/peer/FontPeer.dex differ diff --git a/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class b/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class new file mode 100644 index 000000000..b4cf797fd Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.class differ diff --git a/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.dex b/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.dex new file mode 100644 index 000000000..7735e541e Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/ManagementFactory$RuntimeMXBeanImpl.dex differ diff --git a/app/build/bin/classesrelease/java/lang/management/ManagementFactory.class b/app/build/bin/classesrelease/java/lang/management/ManagementFactory.class new file mode 100644 index 000000000..af0a8ed52 Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/ManagementFactory.class differ diff --git a/app/build/bin/classesrelease/java/lang/management/ManagementFactory.dex b/app/build/bin/classesrelease/java/lang/management/ManagementFactory.dex new file mode 100644 index 000000000..90d790aa6 Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/ManagementFactory.dex differ diff --git a/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.class b/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.class new file mode 100644 index 000000000..c17477ef4 Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.class differ diff --git a/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.dex b/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.dex new file mode 100644 index 000000000..4673f75c2 Binary files /dev/null and b/app/build/bin/classesrelease/java/lang/management/RuntimeMXBean.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/ASCII.class b/app/build/bin/classesrelease/java/util/regex/ASCII.class new file mode 100644 index 000000000..306f39853 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/ASCII.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/ASCII.dex b/app/build/bin/classesrelease/java/util/regex/ASCII.dex new file mode 100644 index 000000000..c97ee77c5 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/ASCII.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/MatchResult.class b/app/build/bin/classesrelease/java/util/regex/MatchResult.class new file mode 100644 index 000000000..2bdee41ae Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/MatchResult.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/MatchResult.dex b/app/build/bin/classesrelease/java/util/regex/MatchResult.dex new file mode 100644 index 000000000..ce5a26da0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/MatchResult.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Matcher.class b/app/build/bin/classesrelease/java/util/regex/Matcher.class new file mode 100644 index 000000000..010db6eae Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Matcher.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Matcher.dex b/app/build/bin/classesrelease/java/util/regex/Matcher.dex new file mode 100644 index 000000000..d18e9bfc3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Matcher.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.class new file mode 100644 index 000000000..9b346f8d3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.dex new file mode 100644 index 000000000..ec6e9a42a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000001.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.class new file mode 100644 index 000000000..2b89a7ca7 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.dex new file mode 100644 index 000000000..d1a6b6b71 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000002.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.class new file mode 100644 index 000000000..a076c0a42 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.dex new file mode 100644 index 000000000..2de99da24 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000003.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.class new file mode 100644 index 000000000..a6b4ae6f8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.dex new file mode 100644 index 000000000..112afbdf0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000004.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.class new file mode 100644 index 000000000..f447dbe3f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.dex new file mode 100644 index 000000000..5b26a5fd0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000005.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.class new file mode 100644 index 000000000..dd5f32782 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.dex new file mode 100644 index 000000000..7e2318961 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000006.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.class b/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.class new file mode 100644 index 000000000..ccd75ba68 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.dex new file mode 100644 index 000000000..dfe708cbb Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$100000007.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$All.class b/app/build/bin/classesrelease/java/util/regex/Pattern$All.class new file mode 100644 index 000000000..f1fe91fe4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$All.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$All.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$All.dex new file mode 100644 index 000000000..6e959a7a7 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$All.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.class new file mode 100644 index 000000000..b479ed23b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.dex new file mode 100644 index 000000000..fcc057bbb Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BackRef.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.class new file mode 100644 index 000000000..c2bfae401 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.dex new file mode 100644 index 000000000..304113cd3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Begin.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.class new file mode 100644 index 000000000..3c16d5716 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.dex new file mode 100644 index 000000000..0aebd7d26 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Behind.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.class new file mode 100644 index 000000000..972b1b5cd Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.dex new file mode 100644 index 000000000..29ef3100b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BehindS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.class new file mode 100644 index 000000000..e8874237a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.dex new file mode 100644 index 000000000..63640a7b3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BitClass.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Block.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Block.class new file mode 100644 index 000000000..7399d4136 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Block.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Block.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Block.dex new file mode 100644 index 000000000..c6782545e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Block.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.class new file mode 100644 index 000000000..e23492004 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.dex new file mode 100644 index 000000000..c89d778e9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BmpCharProperty.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.class new file mode 100644 index 000000000..c511bb67b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.dex new file mode 100644 index 000000000..a63266318 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BnM.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.class new file mode 100644 index 000000000..8b6087b92 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.dex new file mode 100644 index 000000000..f44aa7816 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BnMS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.class new file mode 100644 index 000000000..99331565d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.dex new file mode 100644 index 000000000..44bf3ac9f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Bound.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.class new file mode 100644 index 000000000..42356f484 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.dex new file mode 100644 index 000000000..da0c9687a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Branch.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.class b/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.class new file mode 100644 index 000000000..a0322ca22 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.dex new file mode 100644 index 000000000..5c83e8f52 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$BranchConn.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.class new file mode 100644 index 000000000..c4502e353 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.dex new file mode 100644 index 000000000..3c7b8dee4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CIBackRef.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.class new file mode 100644 index 000000000..0f4b508ef Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.dex new file mode 100644 index 000000000..1fa031e08 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Caret.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Category.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Category.class new file mode 100644 index 000000000..7198ab63c Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Category.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Category.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Category.dex new file mode 100644 index 000000000..1a300146d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Category.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.class new file mode 100644 index 000000000..c558f0533 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.dex new file mode 100644 index 000000000..b2a2f53fa Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty$100000000.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.class new file mode 100644 index 000000000..04a9324a9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.dex new file mode 100644 index 000000000..0512cb89f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharProperty.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.class new file mode 100644 index 000000000..0e5b2664d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.dex new file mode 100644 index 000000000..28e06c18a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000008.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.class new file mode 100644 index 000000000..53b6c0d95 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.dex new file mode 100644 index 000000000..843789b32 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000009.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.class new file mode 100644 index 000000000..8560e2035 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.dex new file mode 100644 index 000000000..5f7649987 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000010.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.class new file mode 100644 index 000000000..56992002d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.dex new file mode 100644 index 000000000..0e4b2a91e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000011.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.class new file mode 100644 index 000000000..a33fa41cd Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.dex new file mode 100644 index 000000000..899ffa544 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000012.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.class new file mode 100644 index 000000000..142e396f9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.dex new file mode 100644 index 000000000..e661765fe Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000013.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.class new file mode 100644 index 000000000..a7f1b48b7 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.dex new file mode 100644 index 000000000..a7a94dcde Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000014.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.class new file mode 100644 index 000000000..00f6a4ccd Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.dex new file mode 100644 index 000000000..b9ba731a8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000015.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.class new file mode 100644 index 000000000..eea93f47d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.dex new file mode 100644 index 000000000..d61767aad Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000016.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.class new file mode 100644 index 000000000..7167cc767 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.dex new file mode 100644 index 000000000..31dfb93d6 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000017.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.class new file mode 100644 index 000000000..2a828d349 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.dex new file mode 100644 index 000000000..41a4a7021 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000018.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.class new file mode 100644 index 000000000..6ed7d0c83 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.dex new file mode 100644 index 000000000..ce2140d3f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000019.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.class new file mode 100644 index 000000000..9625d000d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.dex new file mode 100644 index 000000000..500eb2f9b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000020.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.class new file mode 100644 index 000000000..1a51ff729 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.dex new file mode 100644 index 000000000..4e8c8154d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000021.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.class new file mode 100644 index 000000000..3463c1e17 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.dex new file mode 100644 index 000000000..1bd35e57e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000022.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.class new file mode 100644 index 000000000..cb3abbe78 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.dex new file mode 100644 index 000000000..e33157c57 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000023.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.class new file mode 100644 index 000000000..0f5fcf0b3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.dex new file mode 100644 index 000000000..e0a836a76 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000024.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.class new file mode 100644 index 000000000..b793ef893 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.dex new file mode 100644 index 000000000..e784a7a86 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000025.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.class new file mode 100644 index 000000000..d5fd5f74d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.dex new file mode 100644 index 000000000..5cb824949 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000026.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.class new file mode 100644 index 000000000..227aee9c6 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.dex new file mode 100644 index 000000000..1c32b001d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000027.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.class new file mode 100644 index 000000000..5767980a2 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.dex new file mode 100644 index 000000000..2d48f8e37 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000028.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.class new file mode 100644 index 000000000..29edc9474 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.dex new file mode 100644 index 000000000..b9217ba14 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000029.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.class new file mode 100644 index 000000000..7cbe8775e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.dex new file mode 100644 index 000000000..0af91bc4d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$100000030.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class new file mode 100644 index 000000000..ca3508ac1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.dex new file mode 100644 index 000000000..1f9433125 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class new file mode 100644 index 000000000..adfb207be Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.dex new file mode 100644 index 000000000..61f3f8880 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames$CloneableProperty.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.class b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.class new file mode 100644 index 000000000..3b38857de Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.dex new file mode 100644 index 000000000..4cfdad9c8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$CharPropertyNames.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.class new file mode 100644 index 000000000..13c4f490d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.dex new file mode 100644 index 000000000..09196d559 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Conditional.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.class new file mode 100644 index 000000000..6a730477b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.dex new file mode 100644 index 000000000..1e5fa3fea Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Ctype.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.class new file mode 100644 index 000000000..ce2712125 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.dex new file mode 100644 index 000000000..b45a5027b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Curly.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.class new file mode 100644 index 000000000..cff0a7598 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.dex new file mode 100644 index 000000000..d976f684e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Dollar.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.class new file mode 100644 index 000000000..b0deba738 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.dex new file mode 100644 index 000000000..272a80615 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Dot.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$End.class b/app/build/bin/classesrelease/java/util/regex/Pattern$End.class new file mode 100644 index 000000000..fc09828ab Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$End.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$End.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$End.dex new file mode 100644 index 000000000..f13aeb60b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$End.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$First.class b/app/build/bin/classesrelease/java/util/regex/Pattern$First.class new file mode 100644 index 000000000..8b81a3f54 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$First.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$First.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$First.dex new file mode 100644 index 000000000..8797b5105 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$First.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.class b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.class new file mode 100644 index 000000000..fce4f8233 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.dex new file mode 100644 index 000000000..4d55ee096 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupCurly.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.class b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.class new file mode 100644 index 000000000..f5fa3c698 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.dex new file mode 100644 index 000000000..cff815096 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupHead.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.class b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.class new file mode 100644 index 000000000..cce22cdfa Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.dex new file mode 100644 index 000000000..c4da059b6 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupRef.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.class b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.class new file mode 100644 index 000000000..dcefca5e4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.dex new file mode 100644 index 000000000..0eeed9db9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$GroupTail.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.class b/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.class new file mode 100644 index 000000000..fc91d19e3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.dex new file mode 100644 index 000000000..795953c92 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LastMatch.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.class b/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.class new file mode 100644 index 000000000..7e090f272 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.dex new file mode 100644 index 000000000..86eb3c821 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LastNode.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.class b/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.class new file mode 100644 index 000000000..70117c137 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.dex new file mode 100644 index 000000000..b527bbf72 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$LazyLoop.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.class new file mode 100644 index 000000000..3c5f584f4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.dex new file mode 100644 index 000000000..c33ac12f8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Loop.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.class new file mode 100644 index 000000000..bf90f2431 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.dex new file mode 100644 index 000000000..70176af52 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Neg.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Node.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Node.class new file mode 100644 index 000000000..cda0565d1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Node.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Node.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Node.dex new file mode 100644 index 000000000..9eb9e2da0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Node.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.class b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.class new file mode 100644 index 000000000..e36000f56 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.dex new file mode 100644 index 000000000..37877897a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehind.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.class new file mode 100644 index 000000000..ff81e00bc Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.dex new file mode 100644 index 000000000..fd75949fd Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$NotBehindS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.class new file mode 100644 index 000000000..98a55d5eb Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.dex new file mode 100644 index 000000000..e715718e1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Pos.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.class new file mode 100644 index 000000000..1316ce288 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.dex new file mode 100644 index 000000000..91ef0aa06 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Prolog.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.class new file mode 100644 index 000000000..50df90ed5 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.dex new file mode 100644 index 000000000..e8318dfee Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Ques.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Script.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Script.class new file mode 100644 index 000000000..6a4fa774d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Script.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Script.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Script.dex new file mode 100644 index 000000000..61ce7863c Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Script.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Single.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Single.class new file mode 100644 index 000000000..e980eca0b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Single.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Single.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Single.dex new file mode 100644 index 000000000..88a9c419b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Single.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.class new file mode 100644 index 000000000..7495ff4ea Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.dex new file mode 100644 index 000000000..7451e9cd7 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleI.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.class new file mode 100644 index 000000000..6f85ef7d8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.dex new file mode 100644 index 000000000..f3aecf9e7 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.class new file mode 100644 index 000000000..d5e856b46 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.dex new file mode 100644 index 000000000..ea4efcad9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SingleU.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.class new file mode 100644 index 000000000..e62c28afa Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.dex new file mode 100644 index 000000000..fc7e59c1f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Slice.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.class new file mode 100644 index 000000000..06e6b5b78 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.dex new file mode 100644 index 000000000..dc94b8ed4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceI.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.class new file mode 100644 index 000000000..49cb1ff88 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.dex new file mode 100644 index 000000000..bb28e6177 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceIS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.class new file mode 100644 index 000000000..8f61003f1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.dex new file mode 100644 index 000000000..fe283243c Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceNode.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.class new file mode 100644 index 000000000..b8fef6ea8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.dex new file mode 100644 index 000000000..c67ea95d4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.class new file mode 100644 index 000000000..e91fd5e4e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.dex new file mode 100644 index 000000000..0ff4a7cc1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceU.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.class new file mode 100644 index 000000000..043c653bd Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.dex new file mode 100644 index 000000000..a3511d8cf Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$SliceUS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Start.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Start.class new file mode 100644 index 000000000..4f7331570 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Start.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Start.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Start.dex new file mode 100644 index 000000000..de2acae2f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Start.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.class b/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.class new file mode 100644 index 000000000..c1bebc7f1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.dex new file mode 100644 index 000000000..c4c15c9be Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$StartS.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.class b/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.class new file mode 100644 index 000000000..982af01e9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.dex new file mode 100644 index 000000000..9946e3a39 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$TreeInfo.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.class b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.class new file mode 100644 index 000000000..814db432b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.dex new file mode 100644 index 000000000..618af0d29 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixCaret.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.class b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.class new file mode 100644 index 000000000..d71be7a41 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.dex new file mode 100644 index 000000000..ff28b747f Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDollar.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.class b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.class new file mode 100644 index 000000000..fcee48758 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.dex new file mode 100644 index 000000000..e095a516a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$UnixDot.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.class b/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.class new file mode 100644 index 000000000..52a4b15b4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.dex b/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.dex new file mode 100644 index 000000000..8c36fb25b Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern$Utype.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern.class b/app/build/bin/classesrelease/java/util/regex/Pattern.class new file mode 100644 index 000000000..33b6c77e0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/Pattern.dex b/app/build/bin/classesrelease/java/util/regex/Pattern.dex new file mode 100644 index 000000000..f3743d685 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/Pattern.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.class b/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.class new file mode 100644 index 000000000..5e78ec97d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.dex b/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.dex new file mode 100644 index 000000000..27e68ddf8 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/PatternSyntaxException.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.class new file mode 100644 index 000000000..b7f43fc49 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.dex new file mode 100644 index 000000000..4f862f34e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000000.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.class new file mode 100644 index 000000000..243f600a6 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.dex new file mode 100644 index 000000000..243626c30 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000001.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.class new file mode 100644 index 000000000..e1e2eefa3 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.dex new file mode 100644 index 000000000..0ec3cec7a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000002.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.class new file mode 100644 index 000000000..87e3bc9bb Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.dex new file mode 100644 index 000000000..a12acf724 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000003.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.class new file mode 100644 index 000000000..15560bdbe Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.dex new file mode 100644 index 000000000..d4ef08603 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000004.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.class new file mode 100644 index 000000000..c39aca8f1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.dex new file mode 100644 index 000000000..3ad112ceb Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000005.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.class new file mode 100644 index 000000000..c9cce78c1 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.dex new file mode 100644 index 000000000..52edaca91 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000006.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.class new file mode 100644 index 000000000..c293265e9 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.dex new file mode 100644 index 000000000..211a93579 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000007.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.class new file mode 100644 index 000000000..10ed82d27 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.dex new file mode 100644 index 000000000..fa14e8412 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000008.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.class new file mode 100644 index 000000000..4658ff877 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.dex new file mode 100644 index 000000000..c936255b4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000009.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.class new file mode 100644 index 000000000..07a5a8b22 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.dex new file mode 100644 index 000000000..70de1f4a0 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000010.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.class new file mode 100644 index 000000000..9ca5fd2c4 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.dex new file mode 100644 index 000000000..abf183a92 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000011.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.class new file mode 100644 index 000000000..6bb0d2ea2 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.dex new file mode 100644 index 000000000..544ab7320 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000012.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.class new file mode 100644 index 000000000..f38caae23 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.dex new file mode 100644 index 000000000..e4d236070 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000013.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.class new file mode 100644 index 000000000..f088e6f55 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.dex new file mode 100644 index 000000000..e956fc089 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000014.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.class new file mode 100644 index 000000000..4350a8773 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.dex new file mode 100644 index 000000000..8378a6a1a Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000015.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.class new file mode 100644 index 000000000..f6554353d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.dex new file mode 100644 index 000000000..d64068401 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000016.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.class new file mode 100644 index 000000000..a0eb9ad6d Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.dex new file mode 100644 index 000000000..83f83de2e Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp$100000017.dex differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp.class b/app/build/bin/classesrelease/java/util/regex/UnicodeProp.class new file mode 100644 index 000000000..1c44942ca Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp.class differ diff --git a/app/build/bin/classesrelease/java/util/regex/UnicodeProp.dex b/app/build/bin/classesrelease/java/util/regex/UnicodeProp.dex new file mode 100644 index 000000000..902977147 Binary files /dev/null and b/app/build/bin/classesrelease/java/util/regex/UnicodeProp.dex differ diff --git a/app/build/bin/classesrelease/javax/accessibility/Accessible.class b/app/build/bin/classesrelease/javax/accessibility/Accessible.class new file mode 100644 index 000000000..a10c44364 Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/Accessible.class differ diff --git a/app/build/bin/classesrelease/javax/accessibility/Accessible.dex b/app/build/bin/classesrelease/javax/accessibility/Accessible.dex new file mode 100644 index 000000000..c3d8f14cc Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/Accessible.dex differ diff --git a/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.class b/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.class new file mode 100644 index 000000000..410fe4b6a Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.class differ diff --git a/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.dex b/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.dex new file mode 100644 index 000000000..14341cb64 Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/AccessibleContext.dex differ diff --git a/app/build/bin/classesrelease/javax/accessibility/AccessibleText.class b/app/build/bin/classesrelease/javax/accessibility/AccessibleText.class new file mode 100644 index 000000000..63843f466 Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/AccessibleText.class differ diff --git a/app/build/bin/classesrelease/javax/accessibility/AccessibleText.dex b/app/build/bin/classesrelease/javax/accessibility/AccessibleText.dex new file mode 100644 index 000000000..575e95b3a Binary files /dev/null and b/app/build/bin/classesrelease/javax/accessibility/AccessibleText.dex differ diff --git a/app/build/bin/classesrelease/javax/imageio/IIOException.class b/app/build/bin/classesrelease/javax/imageio/IIOException.class new file mode 100644 index 000000000..ab0b88efd Binary files /dev/null and b/app/build/bin/classesrelease/javax/imageio/IIOException.class differ diff --git a/app/build/bin/classesrelease/javax/imageio/IIOException.dex b/app/build/bin/classesrelease/javax/imageio/IIOException.dex new file mode 100644 index 000000000..e6d940b22 Binary files /dev/null and b/app/build/bin/classesrelease/javax/imageio/IIOException.dex differ diff --git a/app/build/bin/classesrelease/javax/imageio/ImageIO.class b/app/build/bin/classesrelease/javax/imageio/ImageIO.class new file mode 100644 index 000000000..099ced48b Binary files /dev/null and b/app/build/bin/classesrelease/javax/imageio/ImageIO.class differ diff --git a/app/build/bin/classesrelease/javax/imageio/ImageIO.dex b/app/build/bin/classesrelease/javax/imageio/ImageIO.dex new file mode 100644 index 000000000..ce8864b53 Binary files /dev/null and b/app/build/bin/classesrelease/javax/imageio/ImageIO.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.class b/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.class new file mode 100644 index 000000000..eb3ed0ed5 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.dex b/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.dex new file mode 100644 index 000000000..fb3f70a55 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/ControllerEventListener.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Instrument.class b/app/build/bin/classesrelease/javax/sound/midi/Instrument.class new file mode 100644 index 000000000..93ca8ab13 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Instrument.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Instrument.dex b/app/build/bin/classesrelease/javax/sound/midi/Instrument.dex new file mode 100644 index 000000000..c8d23bb66 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Instrument.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.class b/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.class new file mode 100644 index 000000000..fa277f4c1 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.dex b/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.dex new file mode 100644 index 000000000..948aae01f Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/InvalidMidiDataException.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.class b/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.class new file mode 100644 index 000000000..eb2a4d5ce Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.dex b/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.dex new file mode 100644 index 000000000..4c3c78c73 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MetaEventListener.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.class b/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.class new file mode 100644 index 000000000..79fb9c2ed Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.dex b/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.dex new file mode 100644 index 000000000..3a371b5c2 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MetaMessage.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.class b/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.class new file mode 100644 index 000000000..add04ae82 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.dex new file mode 100644 index 000000000..d021a30aa Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiChannel.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.class b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.class new file mode 100644 index 000000000..ca82022e2 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.dex new file mode 100644 index 000000000..6984f6a86 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice$Info.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.class b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.class new file mode 100644 index 000000000..ff59e068e Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.dex new file mode 100644 index 000000000..b977db2dc Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDevice.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.class b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.class new file mode 100644 index 000000000..b63f01a5a Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.dex new file mode 100644 index 000000000..371dfd146 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceReceiver.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.class b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.class new file mode 100644 index 000000000..5647be6da Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.dex new file mode 100644 index 000000000..6918bc4bf Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiDeviceTransmitter.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.class b/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.class new file mode 100644 index 000000000..9092ffd14 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.dex new file mode 100644 index 000000000..d22ae3059 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiEvent.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.class b/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.class new file mode 100644 index 000000000..fab490d3d Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.dex new file mode 100644 index 000000000..7c88e8149 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiFileFormat.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.class b/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.class new file mode 100644 index 000000000..0b1d44df2 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.dex new file mode 100644 index 000000000..532b0a7a5 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiMessage.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.class b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.class new file mode 100644 index 000000000..20143a0c9 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.dex new file mode 100644 index 000000000..280f7efe8 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem$MidiSystemUtils.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.class b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.class new file mode 100644 index 000000000..ad13e1a66 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.dex new file mode 100644 index 000000000..85d9dd9b0 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiSystem.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.class b/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.class new file mode 100644 index 000000000..f260ae0c7 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.dex b/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.dex new file mode 100644 index 000000000..e01141f96 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/MidiUnavailableException.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Patch.class b/app/build/bin/classesrelease/javax/sound/midi/Patch.class new file mode 100644 index 000000000..440d6669e Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Patch.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Patch.dex b/app/build/bin/classesrelease/javax/sound/midi/Patch.dex new file mode 100644 index 000000000..9fa142ab3 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Patch.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Receiver.class b/app/build/bin/classesrelease/javax/sound/midi/Receiver.class new file mode 100644 index 000000000..0bda35e8e Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Receiver.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Receiver.dex b/app/build/bin/classesrelease/javax/sound/midi/Receiver.dex new file mode 100644 index 000000000..3d98b0b02 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Receiver.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequence.class b/app/build/bin/classesrelease/javax/sound/midi/Sequence.class new file mode 100644 index 000000000..f683602f5 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequence.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequence.dex b/app/build/bin/classesrelease/javax/sound/midi/Sequence.dex new file mode 100644 index 000000000..b99b81156 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequence.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.class b/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.class new file mode 100644 index 000000000..4573dec42 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.dex b/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.dex new file mode 100644 index 000000000..4358810f5 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequencer$SyncMode.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequencer.class b/app/build/bin/classesrelease/javax/sound/midi/Sequencer.class new file mode 100644 index 000000000..8e0f19cf9 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequencer.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Sequencer.dex b/app/build/bin/classesrelease/javax/sound/midi/Sequencer.dex new file mode 100644 index 000000000..d82cdb5d1 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Sequencer.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.class b/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.class new file mode 100644 index 000000000..f7e10682c Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.dex b/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.dex new file mode 100644 index 000000000..fd55ea965 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/ShortMessage.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Soundbank.class b/app/build/bin/classesrelease/javax/sound/midi/Soundbank.class new file mode 100644 index 000000000..ba3d6e9a0 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Soundbank.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Soundbank.dex b/app/build/bin/classesrelease/javax/sound/midi/Soundbank.dex new file mode 100644 index 000000000..d5b1955c1 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Soundbank.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.class b/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.class new file mode 100644 index 000000000..3b460bc7c Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.dex b/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.dex new file mode 100644 index 000000000..0a3c04bb9 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/SoundbankResource.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.class b/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.class new file mode 100644 index 000000000..caaee4e9a Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.dex b/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.dex new file mode 100644 index 000000000..c69d17c3f Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Synthesizer.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.class b/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.class new file mode 100644 index 000000000..1e85d2c62 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.dex b/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.dex new file mode 100644 index 000000000..fbc1e3a14 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/SysexMessage.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.class b/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.class new file mode 100644 index 000000000..c2efff625 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.dex b/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.dex new file mode 100644 index 000000000..f2827a2c3 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track$100000000.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.class b/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.class new file mode 100644 index 000000000..0454d54d5 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.dex b/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.dex new file mode 100644 index 000000000..0daaaf728 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track$TrackUtils.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track.class b/app/build/bin/classesrelease/javax/sound/midi/Track.class new file mode 100644 index 000000000..bec63bd31 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Track.dex b/app/build/bin/classesrelease/javax/sound/midi/Track.dex new file mode 100644 index 000000000..8d0c55590 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Track.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Transmitter.class b/app/build/bin/classesrelease/javax/sound/midi/Transmitter.class new file mode 100644 index 000000000..b83752473 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Transmitter.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/Transmitter.dex b/app/build/bin/classesrelease/javax/sound/midi/Transmitter.dex new file mode 100644 index 000000000..08f8fb867 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/Transmitter.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.class b/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.class new file mode 100644 index 000000000..73e55d8e4 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.dex b/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.dex new file mode 100644 index 000000000..19c7595c2 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/VoiceStatus.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.class b/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.class new file mode 100644 index 000000000..1770070ee Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.dex b/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.dex new file mode 100644 index 000000000..ee702aecf Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/MidiChannelImpl.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class new file mode 100644 index 000000000..a1acb7c98 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.dex b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.dex new file mode 100644 index 000000000..49cb52cbb Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread$100000000.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.class b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.class new file mode 100644 index 000000000..c98223d94 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.dex b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.dex new file mode 100644 index 000000000..248b30f62 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl$SequencerThread.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.class b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.class new file mode 100644 index 000000000..e1765ad86 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.dex b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.dex new file mode 100644 index 000000000..f5c47541f Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/impl/SequencerImpl.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class new file mode 100644 index 000000000..65b2c485e Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.dex b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.dex new file mode 100644 index 000000000..e4db00c73 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$ExtendedMidiFileFormat.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class new file mode 100644 index 000000000..97b7fc7c3 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.dex b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.dex new file mode 100644 index 000000000..4328e90cb Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader$MidiDataInputStream.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.class b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.class new file mode 100644 index 000000000..a11a077d7 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.dex b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.dex new file mode 100644 index 000000000..ad5169527 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileReader.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class new file mode 100644 index 000000000..bad8318b7 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.dex b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.dex new file mode 100644 index 000000000..a5209bafb Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter$MidiDataOutputStream.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.class b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.class new file mode 100644 index 000000000..e41829a29 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.dex b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.dex new file mode 100644 index 000000000..59228887a Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/io/StandardMidiFileWriter.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.class b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.class new file mode 100644 index 000000000..46e0d75bc Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.dex b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.dex new file mode 100644 index 000000000..c7906db24 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiDeviceProvider.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.class b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.class new file mode 100644 index 000000000..a595bfa41 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.dex b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.dex new file mode 100644 index 000000000..ed6d807fb Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileReader.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.class b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.class new file mode 100644 index 000000000..d63f7529b Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.dex b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.dex new file mode 100644 index 000000000..d337f7871 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/MidiFileWriter.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.class b/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.class new file mode 100644 index 000000000..8ee96c417 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.class differ diff --git a/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.dex b/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.dex new file mode 100644 index 000000000..92cbe7d1b Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/midi/spi/SoundbankReader.dex differ diff --git a/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.class b/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.class new file mode 100644 index 000000000..fdb6af34b Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.class differ diff --git a/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.dex b/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.dex new file mode 100644 index 000000000..2ae179728 Binary files /dev/null and b/app/build/bin/classesrelease/javax/sound/sampled/AudioFormat.dex differ diff --git a/app/build/bin/classesrelease/javax/swing/JComponent.class b/app/build/bin/classesrelease/javax/swing/JComponent.class new file mode 100644 index 000000000..e1d86379e Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JComponent.class differ diff --git a/app/build/bin/classesrelease/javax/swing/JComponent.dex b/app/build/bin/classesrelease/javax/swing/JComponent.dex new file mode 100644 index 000000000..fd3b4de84 Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JComponent.dex differ diff --git a/app/build/bin/classesrelease/javax/swing/JOptionPane.class b/app/build/bin/classesrelease/javax/swing/JOptionPane.class new file mode 100644 index 000000000..cba502dcc Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JOptionPane.class differ diff --git a/app/build/bin/classesrelease/javax/swing/JOptionPane.dex b/app/build/bin/classesrelease/javax/swing/JOptionPane.dex new file mode 100644 index 000000000..8241c225a Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JOptionPane.dex differ diff --git a/app/build/bin/classesrelease/javax/swing/JPanel$100000000.class b/app/build/bin/classesrelease/javax/swing/JPanel$100000000.class new file mode 100644 index 000000000..dab1c6e0c Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JPanel$100000000.class differ diff --git a/app/build/bin/classesrelease/javax/swing/JPanel$100000000.dex b/app/build/bin/classesrelease/javax/swing/JPanel$100000000.dex new file mode 100644 index 000000000..80d44f090 Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JPanel$100000000.dex differ diff --git a/app/build/bin/classesrelease/javax/swing/JPanel.class b/app/build/bin/classesrelease/javax/swing/JPanel.class new file mode 100644 index 000000000..411af742a Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JPanel.class differ diff --git a/app/build/bin/classesrelease/javax/swing/JPanel.dex b/app/build/bin/classesrelease/javax/swing/JPanel.dex new file mode 100644 index 000000000..99475ca9f Binary files /dev/null and b/app/build/bin/classesrelease/javax/swing/JPanel.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.class b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.class new file mode 100644 index 000000000..4fe45caa8 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.dex b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.dex new file mode 100644 index 000000000..ed4f747b5 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite$100000000.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.class b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.class new file mode 100644 index 000000000..e3b615cf1 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.dex b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.dex new file mode 100644 index 000000000..0241619cc Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ActiveTestSuite.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.class b/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.class new file mode 100644 index 000000000..fc285b35d Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.dex b/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.dex new file mode 100644 index 000000000..cdc1d90a6 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/ExceptionTestCase.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/RepeatedTest.class b/app/build/bin/classesrelease/junit/extensions/RepeatedTest.class new file mode 100644 index 000000000..7c02fdf67 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/RepeatedTest.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/RepeatedTest.dex b/app/build/bin/classesrelease/junit/extensions/RepeatedTest.dex new file mode 100644 index 000000000..249088cb9 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/RepeatedTest.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestDecorator.class b/app/build/bin/classesrelease/junit/extensions/TestDecorator.class new file mode 100644 index 000000000..79f0b9eac Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestDecorator.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestDecorator.dex b/app/build/bin/classesrelease/junit/extensions/TestDecorator.dex new file mode 100644 index 000000000..60bde8428 Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestDecorator.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.class b/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.class new file mode 100644 index 000000000..7331ca4fb Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.dex b/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.dex new file mode 100644 index 000000000..53930ff3b Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestSetup$100000000.dex differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestSetup.class b/app/build/bin/classesrelease/junit/extensions/TestSetup.class new file mode 100644 index 000000000..b90187dfb Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestSetup.class differ diff --git a/app/build/bin/classesrelease/junit/extensions/TestSetup.dex b/app/build/bin/classesrelease/junit/extensions/TestSetup.dex new file mode 100644 index 000000000..6d451de0a Binary files /dev/null and b/app/build/bin/classesrelease/junit/extensions/TestSetup.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/Assert.class b/app/build/bin/classesrelease/junit/framework/Assert.class new file mode 100644 index 000000000..1101059af Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Assert.class differ diff --git a/app/build/bin/classesrelease/junit/framework/Assert.dex b/app/build/bin/classesrelease/junit/framework/Assert.dex new file mode 100644 index 000000000..86b90fa34 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Assert.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/AssertionFailedError.class b/app/build/bin/classesrelease/junit/framework/AssertionFailedError.class new file mode 100644 index 000000000..f3608fa67 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/AssertionFailedError.class differ diff --git a/app/build/bin/classesrelease/junit/framework/AssertionFailedError.dex b/app/build/bin/classesrelease/junit/framework/AssertionFailedError.dex new file mode 100644 index 000000000..b3636e53f Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/AssertionFailedError.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/ComparisonFailure.class b/app/build/bin/classesrelease/junit/framework/ComparisonFailure.class new file mode 100644 index 000000000..e34dc6a34 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/ComparisonFailure.class differ diff --git a/app/build/bin/classesrelease/junit/framework/ComparisonFailure.dex b/app/build/bin/classesrelease/junit/framework/ComparisonFailure.dex new file mode 100644 index 000000000..61e153185 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/ComparisonFailure.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/Protectable.class b/app/build/bin/classesrelease/junit/framework/Protectable.class new file mode 100644 index 000000000..fd28bf07d Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Protectable.class differ diff --git a/app/build/bin/classesrelease/junit/framework/Protectable.dex b/app/build/bin/classesrelease/junit/framework/Protectable.dex new file mode 100644 index 000000000..7e895d192 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Protectable.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/Test.class b/app/build/bin/classesrelease/junit/framework/Test.class new file mode 100644 index 000000000..0f66bd150 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Test.class differ diff --git a/app/build/bin/classesrelease/junit/framework/Test.dex b/app/build/bin/classesrelease/junit/framework/Test.dex new file mode 100644 index 000000000..98274ebe8 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/Test.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestCase.class b/app/build/bin/classesrelease/junit/framework/TestCase.class new file mode 100644 index 000000000..d29830d0d Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestCase.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestCase.dex b/app/build/bin/classesrelease/junit/framework/TestCase.dex new file mode 100644 index 000000000..749bc89ec Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestCase.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestFailure.class b/app/build/bin/classesrelease/junit/framework/TestFailure.class new file mode 100644 index 000000000..d50e90e97 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestFailure.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestFailure.dex b/app/build/bin/classesrelease/junit/framework/TestFailure.dex new file mode 100644 index 000000000..d9485d089 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestFailure.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestListener.class b/app/build/bin/classesrelease/junit/framework/TestListener.class new file mode 100644 index 000000000..3acdd2938 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestListener.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestListener.dex b/app/build/bin/classesrelease/junit/framework/TestListener.dex new file mode 100644 index 000000000..3ab54e1d2 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestListener.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestResult$100000000.class b/app/build/bin/classesrelease/junit/framework/TestResult$100000000.class new file mode 100644 index 000000000..461e1ec8b Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestResult$100000000.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestResult$100000000.dex b/app/build/bin/classesrelease/junit/framework/TestResult$100000000.dex new file mode 100644 index 000000000..987ffbfd4 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestResult$100000000.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestResult.class b/app/build/bin/classesrelease/junit/framework/TestResult.class new file mode 100644 index 000000000..d6057048f Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestResult.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestResult.dex b/app/build/bin/classesrelease/junit/framework/TestResult.dex new file mode 100644 index 000000000..3179f9bf1 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestResult.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.class b/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.class new file mode 100644 index 000000000..09deaaf90 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.dex b/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.dex new file mode 100644 index 000000000..8e3257a31 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestSuite$100000000.dex differ diff --git a/app/build/bin/classesrelease/junit/framework/TestSuite.class b/app/build/bin/classesrelease/junit/framework/TestSuite.class new file mode 100644 index 000000000..634d2f489 Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestSuite.class differ diff --git a/app/build/bin/classesrelease/junit/framework/TestSuite.dex b/app/build/bin/classesrelease/junit/framework/TestSuite.dex new file mode 100644 index 000000000..aa622c72e Binary files /dev/null and b/app/build/bin/classesrelease/junit/framework/TestSuite.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/BaseTestRunner.class b/app/build/bin/classesrelease/junit/runner/BaseTestRunner.class new file mode 100644 index 000000000..7928d7943 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/BaseTestRunner.class differ diff --git a/app/build/bin/classesrelease/junit/runner/BaseTestRunner.dex b/app/build/bin/classesrelease/junit/runner/BaseTestRunner.dex new file mode 100644 index 000000000..2e14d09c8 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/BaseTestRunner.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.class b/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.class new file mode 100644 index 000000000..f9089fdf5 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.class differ diff --git a/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.dex b/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.dex new file mode 100644 index 000000000..3898ba2ed Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/ClassPathTestCollector.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/FailureDetailView.class b/app/build/bin/classesrelease/junit/runner/FailureDetailView.class new file mode 100644 index 000000000..a999d571d Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/FailureDetailView.class differ diff --git a/app/build/bin/classesrelease/junit/runner/FailureDetailView.dex b/app/build/bin/classesrelease/junit/runner/FailureDetailView.dex new file mode 100644 index 000000000..a8b911625 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/FailureDetailView.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.class b/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.class new file mode 100644 index 000000000..831048bf1 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.class differ diff --git a/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.dex b/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.dex new file mode 100644 index 000000000..cf9ffd917 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/LoadingTestCollector.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.class b/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.class new file mode 100644 index 000000000..665327477 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.class differ diff --git a/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.dex b/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.dex new file mode 100644 index 000000000..cd59ce05e Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/ReloadingTestSuiteLoader.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.class b/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.class new file mode 100644 index 000000000..28b398811 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.class differ diff --git a/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.dex b/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.dex new file mode 100644 index 000000000..197bd98f1 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/SimpleTestCollector.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.class b/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.class new file mode 100644 index 000000000..3cff315c0 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.class differ diff --git a/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.dex b/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.dex new file mode 100644 index 000000000..22e156293 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Sorter$Swapper.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/Sorter.class b/app/build/bin/classesrelease/junit/runner/Sorter.class new file mode 100644 index 000000000..56f200ead Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Sorter.class differ diff --git a/app/build/bin/classesrelease/junit/runner/Sorter.dex b/app/build/bin/classesrelease/junit/runner/Sorter.dex new file mode 100644 index 000000000..6d2990000 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Sorter.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.class b/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.class new file mode 100644 index 000000000..e416f5803 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.class differ diff --git a/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.dex b/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.dex new file mode 100644 index 000000000..a9663bfb7 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/StandardTestSuiteLoader.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.class b/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.class new file mode 100644 index 000000000..e20c3607c Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.class differ diff --git a/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.dex b/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.dex new file mode 100644 index 000000000..2bd04c4c8 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestCaseClassLoader.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/TestCollector.class b/app/build/bin/classesrelease/junit/runner/TestCollector.class new file mode 100644 index 000000000..631f2c57f Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestCollector.class differ diff --git a/app/build/bin/classesrelease/junit/runner/TestCollector.dex b/app/build/bin/classesrelease/junit/runner/TestCollector.dex new file mode 100644 index 000000000..98f3cbac2 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestCollector.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/TestRunListener.class b/app/build/bin/classesrelease/junit/runner/TestRunListener.class new file mode 100644 index 000000000..1e42dd597 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestRunListener.class differ diff --git a/app/build/bin/classesrelease/junit/runner/TestRunListener.dex b/app/build/bin/classesrelease/junit/runner/TestRunListener.dex new file mode 100644 index 000000000..6c9a21698 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestRunListener.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.class b/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.class new file mode 100644 index 000000000..c221a0d8c Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.class differ diff --git a/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.dex b/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.dex new file mode 100644 index 000000000..e2cad0150 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/TestSuiteLoader.dex differ diff --git a/app/build/bin/classesrelease/junit/runner/Version.class b/app/build/bin/classesrelease/junit/runner/Version.class new file mode 100644 index 000000000..176ad760e Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Version.class differ diff --git a/app/build/bin/classesrelease/junit/runner/Version.dex b/app/build/bin/classesrelease/junit/runner/Version.dex new file mode 100644 index 000000000..ca0e28012 Binary files /dev/null and b/app/build/bin/classesrelease/junit/runner/Version.dex differ diff --git a/app/build/bin/classesrelease/junit/textui/ResultPrinter.class b/app/build/bin/classesrelease/junit/textui/ResultPrinter.class new file mode 100644 index 000000000..7108b7cf8 Binary files /dev/null and b/app/build/bin/classesrelease/junit/textui/ResultPrinter.class differ diff --git a/app/build/bin/classesrelease/junit/textui/ResultPrinter.dex b/app/build/bin/classesrelease/junit/textui/ResultPrinter.dex new file mode 100644 index 000000000..b309005b6 Binary files /dev/null and b/app/build/bin/classesrelease/junit/textui/ResultPrinter.dex differ diff --git a/app/build/bin/classesrelease/junit/textui/TestRunner.class b/app/build/bin/classesrelease/junit/textui/TestRunner.class new file mode 100644 index 000000000..a6768e3a9 Binary files /dev/null and b/app/build/bin/classesrelease/junit/textui/TestRunner.class differ diff --git a/app/build/bin/classesrelease/junit/textui/TestRunner.dex b/app/build/bin/classesrelease/junit/textui/TestRunner.dex new file mode 100644 index 000000000..e350f385e Binary files /dev/null and b/app/build/bin/classesrelease/junit/textui/TestRunner.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.class new file mode 100644 index 000000000..7b96c13e8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.dex new file mode 100644 index 000000000..2a11d99c2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AccInfo.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class new file mode 100644 index 000000000..1d1e5ef80 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.dex new file mode 100644 index 000000000..994c16abe Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AndroidLWJGLKeycode.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.class new file mode 100644 index 000000000..80fa83172 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.dex new file mode 100644 index 000000000..375dc6106 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ArchitectureCheck.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.class new file mode 100644 index 000000000..6875cc9f7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.dex new file mode 100644 index 000000000..6e6a0c1fb Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/AsyncThread.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.class new file mode 100644 index 000000000..e320510d1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.dex new file mode 100644 index 000000000..84d125d4f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/BuildConfig.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.class new file mode 100644 index 000000000..5cb00655b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.dex new file mode 100644 index 000000000..8dbbd788b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/CancelException.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.class new file mode 100644 index 000000000..340ff600a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.dex new file mode 100644 index 000000000..8f719df65 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ClassesNotFoundException.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.class new file mode 100644 index 000000000..26a9992e8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.dex new file mode 100644 index 000000000..9fb976c1c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/DroidToJavaKey.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.class new file mode 100644 index 000000000..265cd7234 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.dex new file mode 100644 index 000000000..698c4a804 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount$RandomString.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.class new file mode 100644 index 000000000..9c07c4343 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.dex new file mode 100644 index 000000000..46ddd48e7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeAccount.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.class new file mode 100644 index 000000000..4964ff54d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.dex new file mode 100644 index 000000000..c97b9363c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FakeURLClassLoader.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.class new file mode 100644 index 000000000..b46d176e3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.dex new file mode 100644 index 000000000..e613e7576 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/FontChanger.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.class new file mode 100644 index 000000000..4b8069be7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.dex new file mode 100644 index 000000000..80bb49ab0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/InstallerTask.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.class new file mode 100644 index 000000000..e798249ce Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.dex new file mode 100644 index 000000000..16f165817 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssetInfo.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.class new file mode 100644 index 000000000..73746efcf Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.dex new file mode 100644 index 000000000..dad3a768e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JAssets.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class new file mode 100644 index 000000000..8ec8ab78c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.dex new file mode 100644 index 000000000..767b7d0d9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$OfflineVersion.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class new file mode 100644 index 000000000..a23be616e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.dex new file mode 100644 index 000000000..1620986ac Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList$Version.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.class new file mode 100644 index 000000000..f6d47c6ac Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.dex new file mode 100644 index 000000000..16d87a0c8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JMinecraftVersionList.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.class new file mode 100644 index 000000000..2f1389f21 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.dex new file mode 100644 index 000000000..266db1921 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/JVersion.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class new file mode 100644 index 000000000..0d6d479fb Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.dex new file mode 100644 index 000000000..16ac38abe Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LaunchClassLoaderAgruments.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class new file mode 100644 index 000000000..5b7638311 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.dex new file mode 100644 index 000000000..5a9f656d4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$LoggerOutputStream.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class new file mode 100644 index 000000000..a39efe0e9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.dex new file mode 100644 index 000000000..836e65ffc Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava$OnCharPrintListener.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.class new file mode 100644 index 000000000..29f04d411 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.dex new file mode 100644 index 000000000..270b33cb2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/LoggerJava.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class new file mode 100644 index 000000000..b1df76f23 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.dex new file mode 100644 index 000000000..4486fb1e0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class new file mode 100644 index 000000000..d693c3299 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.dex new file mode 100644 index 000000000..4a8b770e0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class new file mode 100644 index 000000000..edc9328df Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.dex new file mode 100644 index 000000000..acb2f10d8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class new file mode 100644 index 000000000..a5d38682a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.dex new file mode 100644 index 000000000..9e3a05fa7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class new file mode 100644 index 000000000..187e639e8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.dex new file mode 100644 index 000000000..e806204b5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class new file mode 100644 index 000000000..074d17362 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.dex new file mode 100644 index 000000000..d7a72c0b8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class new file mode 100644 index 000000000..6b2561072 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.dex new file mode 100644 index 000000000..062d4184a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000003.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class new file mode 100644 index 000000000..07a7eeb5b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.dex new file mode 100644 index 000000000..6fabef273 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class new file mode 100644 index 000000000..49b357ab9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.dex new file mode 100644 index 000000000..adb8af550 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class new file mode 100644 index 000000000..524ac2a1e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.dex new file mode 100644 index 000000000..07d56dbf1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class new file mode 100644 index 000000000..04eb8e2a9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.dex new file mode 100644 index 000000000..e583c802c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class new file mode 100644 index 000000000..2d256a3d2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.dex new file mode 100644 index 000000000..54cfaeffd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class new file mode 100644 index 000000000..41ed4a2aa Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.dex new file mode 100644 index 000000000..624b21493 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000013.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class new file mode 100644 index 000000000..af86a7cad Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.dex new file mode 100644 index 000000000..3767a8c28 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000014.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class new file mode 100644 index 000000000..3a5b17dec Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.dex new file mode 100644 index 000000000..59e748f46 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000015.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class new file mode 100644 index 000000000..5af14eb8d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.dex new file mode 100644 index 000000000..d4b0a0abf Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000016.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class new file mode 100644 index 000000000..b058b3ea7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.dex new file mode 100644 index 000000000..38d5756ad Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000017.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class new file mode 100644 index 000000000..599b3cbe9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.dex new file mode 100644 index 000000000..735785c12 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018$100000017.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class new file mode 100644 index 000000000..52b213cfe Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.dex new file mode 100644 index 000000000..a4ddad467 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000018.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class new file mode 100644 index 000000000..7326fb582 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.dex new file mode 100644 index 000000000..5fbd37fc8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000019.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class new file mode 100644 index 000000000..6ccdb7ef7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.dex new file mode 100644 index 000000000..bf384716c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021$100000020.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class new file mode 100644 index 000000000..9da937c8b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.dex new file mode 100644 index 000000000..2584e56b4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000021.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class new file mode 100644 index 000000000..892726f5c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.dex new file mode 100644 index 000000000..23153187e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019$100000018.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class new file mode 100644 index 000000000..070bd4a3a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.dex new file mode 100644 index 000000000..48babc98a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000019.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class new file mode 100644 index 000000000..688fdb167 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.dex new file mode 100644 index 000000000..da43b32d5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000020.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class new file mode 100644 index 000000000..620ee81c7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.dex new file mode 100644 index 000000000..7bbca9e05 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022$100000021.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class new file mode 100644 index 000000000..643798224 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.dex new file mode 100644 index 000000000..cb1860e4a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$100000022.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class new file mode 100644 index 000000000..6e45be28d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.dex new file mode 100644 index 000000000..3958dee4a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class new file mode 100644 index 000000000..29fbcae95 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.dex new file mode 100644 index 000000000..d18c46947 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000007.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class new file mode 100644 index 000000000..84474aa64 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.dex new file mode 100644 index 000000000..512498b24 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000008.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class new file mode 100644 index 000000000..60a7fa3c9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.dex new file mode 100644 index 000000000..511451f36 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000009.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class new file mode 100644 index 000000000..3387a8077 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.dex new file mode 100644 index 000000000..b25972ba9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000010.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class new file mode 100644 index 000000000..2e2070c42 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.dex new file mode 100644 index 000000000..ebe44458f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000011.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class new file mode 100644 index 000000000..7243b96e3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.dex new file mode 100644 index 000000000..d79d3a653 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000012.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class new file mode 100644 index 000000000..617d900ed Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.dex new file mode 100644 index 000000000..b0f28a350 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask$100000013.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class new file mode 100644 index 000000000..fe2d1cb55 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.dex new file mode 100644 index 000000000..1810c5f8f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$GameRunnerTask.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class new file mode 100644 index 000000000..97025b77c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.dex new file mode 100644 index 000000000..28347509c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity$ViewPagerAdapter.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.class new file mode 100644 index 000000000..cd6e3293f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.dex new file mode 100644 index 000000000..77e52fdbe Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCLauncherActivity.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.class new file mode 100644 index 000000000..0231e1903 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.dex new file mode 100644 index 000000000..3d298f61a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile$Builder.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.class new file mode 100644 index 000000000..e23e06ef0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.dex new file mode 100644 index 000000000..c468feacd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MCProfile.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class new file mode 100644 index 000000000..b65d5fb0b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.dex new file mode 100644 index 000000000..5bf112102 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class new file mode 100644 index 000000000..9d4d016b4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.dex new file mode 100644 index 000000000..7222685ef Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.class new file mode 100644 index 000000000..8bf3439d4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.dex new file mode 100644 index 000000000..6e1aef0ac Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.class new file mode 100644 index 000000000..bd7ddfbcc Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.dex new file mode 100644 index 000000000..ed4d2bce9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000003.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.class new file mode 100644 index 000000000..df66b4863 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.dex new file mode 100644 index 000000000..c22aefe3e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class new file mode 100644 index 000000000..0870584d9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.dex new file mode 100644 index 000000000..cc7f5a8ff Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.class new file mode 100644 index 000000000..4d48c5f12 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.dex new file mode 100644 index 000000000..28c923a19 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.class new file mode 100644 index 000000000..86a22c22a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.dex new file mode 100644 index 000000000..be5e2faea Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000007.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.class new file mode 100644 index 000000000..a01fefd10 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.dex new file mode 100644 index 000000000..864e076de Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000008.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.class new file mode 100644 index 000000000..3e816a3d5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.dex new file mode 100644 index 000000000..e4ef275c2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000009.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.class new file mode 100644 index 000000000..6423e0827 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.dex new file mode 100644 index 000000000..715b2042d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000010.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class new file mode 100644 index 000000000..a16f568b9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.dex new file mode 100644 index 000000000..3d2229043 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011$100000010.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.class new file mode 100644 index 000000000..fcb924c80 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.dex new file mode 100644 index 000000000..3f723c029 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000011.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class new file mode 100644 index 000000000..b4f6e8192 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.dex new file mode 100644 index 000000000..00d18410b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012$100000011.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.class new file mode 100644 index 000000000..9ef90823d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.dex new file mode 100644 index 000000000..e5a30bb70 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000012.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.class new file mode 100644 index 000000000..f6f0dc970 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.dex new file mode 100644 index 000000000..aea3ba1fd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000013.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.class new file mode 100644 index 000000000..7ee7e6d36 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.dex new file mode 100644 index 000000000..933815113 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000014.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class new file mode 100644 index 000000000..c83d8cb15 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.dex new file mode 100644 index 000000000..aaf9eb71b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000013.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class new file mode 100644 index 000000000..c4aa7718a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.dex new file mode 100644 index 000000000..b4b7a7771 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015$100000014.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.class new file mode 100644 index 000000000..caa2792d8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.dex new file mode 100644 index 000000000..bacae8be9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000015.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.class new file mode 100644 index 000000000..b1057cba0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.dex new file mode 100644 index 000000000..aaf0a76ca Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$100000016.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class new file mode 100644 index 000000000..0861b4a0e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.dex new file mode 100644 index 000000000..cc334e8d7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity$SingleTapConfirm.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.class new file mode 100644 index 000000000..b89d8cd77 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.dex new file mode 100644 index 000000000..35d06e7ac Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MainActivity.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.class new file mode 100644 index 000000000..8420f4a7d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.dex new file mode 100644 index 000000000..9124e328a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MinecraftGLView.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.class new file mode 100644 index 000000000..cd064b5d7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.dex new file mode 100644 index 000000000..7e818d3d6 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager$Listen.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.class new file mode 100644 index 000000000..c80b07816 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.dex new file mode 100644 index 000000000..79de94b62 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/MultidojManager.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.class new file mode 100644 index 000000000..69a2a830c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.dex new file mode 100644 index 000000000..e5c8ba42b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavApplication.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class new file mode 100644 index 000000000..80eedad35 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.dex new file mode 100644 index 000000000..0fca6edf2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class new file mode 100644 index 000000000..ab1b87513 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.dex new file mode 100644 index 000000000..e1a760254 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class new file mode 100644 index 000000000..83b142655 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.dex new file mode 100644 index 000000000..a9a87a119 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class new file mode 100644 index 000000000..0503a9776 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.dex new file mode 100644 index 000000000..eb024e9ad Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000003.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class new file mode 100644 index 000000000..212c8b353 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.dex new file mode 100644 index 000000000..52d0890ba Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class new file mode 100644 index 000000000..c7559d2e2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.dex new file mode 100644 index 000000000..5a7296465 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class new file mode 100644 index 000000000..06c61843f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.dex new file mode 100644 index 000000000..3088bc050 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class new file mode 100644 index 000000000..53dde295a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.dex new file mode 100644 index 000000000..9d89f5980 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class new file mode 100644 index 000000000..e363eb495 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.dex new file mode 100644 index 000000000..481703075 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class new file mode 100644 index 000000000..72ce1b97e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.dex new file mode 100644 index 000000000..4e0377eda Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class new file mode 100644 index 000000000..be8325496 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.dex new file mode 100644 index 000000000..b84bacbc4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000007.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class new file mode 100644 index 000000000..fa8e31ca3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.dex new file mode 100644 index 000000000..6b55f4ccc Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000008.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class new file mode 100644 index 000000000..2b1d764b8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.dex new file mode 100644 index 000000000..1fd282986 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000009.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class new file mode 100644 index 000000000..a5ca027c1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.dex new file mode 100644 index 000000000..324100852 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000010.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class new file mode 100644 index 000000000..9632e5c87 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.dex new file mode 100644 index 000000000..6062f0e5f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000011.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class new file mode 100644 index 000000000..d4c7f942c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.dex new file mode 100644 index 000000000..dae1764a4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$100000012.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class new file mode 100644 index 000000000..49f34bef5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.dex new file mode 100644 index 000000000..74e723d03 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask$100000003.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class new file mode 100644 index 000000000..2f9adfac3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.dex new file mode 100644 index 000000000..1bad18177 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity$InitTask.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.class new file mode 100644 index 000000000..7fc060e32 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.dex new file mode 100644 index 000000000..ed4e547c8 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavLoginActivity.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.class new file mode 100644 index 000000000..91d270cc4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.dex new file mode 100644 index 000000000..95887a4eb Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavProfile.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.class new file mode 100644 index 000000000..d63f2467a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.dex new file mode 100644 index 000000000..3ce7e7fe2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/PojavV2ActivityManager.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.class new file mode 100644 index 000000000..60d944981 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.dex new file mode 100644 index 000000000..92bbc68ff Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$anim.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.class new file mode 100644 index 000000000..865bd87a7 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.dex new file mode 100644 index 000000000..748c75c3e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$array.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.class new file mode 100644 index 000000000..52a67fa89 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.dex new file mode 100644 index 000000000..3b83e5c1c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$attr.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.class new file mode 100644 index 000000000..0d30e95a1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.dex new file mode 100644 index 000000000..77b50204e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$bool.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.class new file mode 100644 index 000000000..38e95a704 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.dex new file mode 100644 index 000000000..64cd587dd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$color.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.class new file mode 100644 index 000000000..a41e16972 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.dex new file mode 100644 index 000000000..d5c120af6 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$dimen.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.class new file mode 100644 index 000000000..419723e39 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.dex new file mode 100644 index 000000000..4fe7de96e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$drawable.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.class new file mode 100644 index 000000000..107239ade Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.dex new file mode 100644 index 000000000..b60cfd126 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$id.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.class new file mode 100644 index 000000000..bd8352d64 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.dex new file mode 100644 index 000000000..af6644801 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$integer.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.class new file mode 100644 index 000000000..57922275a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.dex new file mode 100644 index 000000000..ac5f1eabd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$layout.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.class new file mode 100644 index 000000000..d67810c36 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.dex new file mode 100644 index 000000000..fa141583c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$menu.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.class new file mode 100644 index 000000000..294569532 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.dex new file mode 100644 index 000000000..f2b4aed4a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$string.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.class new file mode 100644 index 000000000..290f29f7c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.dex new file mode 100644 index 000000000..b3a226070 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$style.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.class new file mode 100644 index 000000000..e659d6b18 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.dex new file mode 100644 index 000000000..eb7241051 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R$styleable.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.class new file mode 100644 index 000000000..066d1f229 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.dex new file mode 100644 index 000000000..47a1295cc Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/R.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class new file mode 100644 index 000000000..0a7b222b5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.dex new file mode 100644 index 000000000..5578656ef Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class new file mode 100644 index 000000000..dc61e4e57 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.dex new file mode 100644 index 000000000..0c47be397 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class new file mode 100644 index 000000000..bca252fe3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.dex new file mode 100644 index 000000000..934dfca0f Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation$OnPrintListener.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.class new file mode 100644 index 000000000..0ffc13657 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.dex new file mode 100644 index 000000000..fd4138eee Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/ShellProcessOperation.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.class new file mode 100644 index 000000000..0bd9ee76c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.dex new file mode 100644 index 000000000..61abfd7d2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.class new file mode 100644 index 000000000..327fb801c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.dex new file mode 100644 index 000000000..f043b06c4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.class new file mode 100644 index 000000000..5839ea2f5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.dex new file mode 100644 index 000000000..475f30f51 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.class new file mode 100644 index 000000000..e6d350c93 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.dex new file mode 100644 index 000000000..bf970b10a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004$100000003.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.class new file mode 100644 index 000000000..abdfd1154 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.dex new file mode 100644 index 000000000..6c76d1875 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000004.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.class new file mode 100644 index 000000000..21aa32ef9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.dex new file mode 100644 index 000000000..8255b88c4 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000005.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.class new file mode 100644 index 000000000..107410360 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.dex new file mode 100644 index 000000000..ab3da14d6 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$100000006.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.class new file mode 100644 index 000000000..eed0ad77a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.dex new file mode 100644 index 000000000..322990e27 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools$ZipTool.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.class new file mode 100644 index 000000000..a6c272fb0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.dex new file mode 100644 index 000000000..67e927f55 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/Tools.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.class new file mode 100644 index 000000000..d1956d399 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.dex new file mode 100644 index 000000000..26c5be059 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/UpdateAppActivity.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class new file mode 100644 index 000000000..7fbeb32ae Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.dex new file mode 100644 index 000000000..3bdd26bcd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class new file mode 100644 index 000000000..6d401509b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.dex new file mode 100644 index 000000000..34a4f76a6 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.class new file mode 100644 index 000000000..741c2d087 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.dex new file mode 100644 index 000000000..9bfda2c77 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation$100000002.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.class new file mode 100644 index 000000000..65c963dab Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.dex new file mode 100644 index 000000000..08776a652 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/WindowAnimation.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.class new file mode 100644 index 000000000..9e5742ef5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.dex new file mode 100644 index 000000000..75216a3d9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class new file mode 100644 index 000000000..64fb7ad8a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.dex new file mode 100644 index 000000000..03cdc3abe Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager$ExitTrappedListener.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.class new file mode 100644 index 000000000..ab34a644a Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.dex new file mode 100644 index 000000000..91e185798 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitManager.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.class new file mode 100644 index 000000000..0380c66b3 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.dex new file mode 100644 index 000000000..69d0a2b3e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/exit/ExitTrappedException.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.class new file mode 100644 index 000000000..4318c157b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.dex new file mode 100644 index 000000000..6a39c6d0b Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/libs/LibrariesManager.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class new file mode 100644 index 000000000..e9edd3268 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.dex new file mode 100644 index 000000000..ba376da5e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.class new file mode 100644 index 000000000..c41208110 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.dex new file mode 100644 index 000000000..9ee1afa2c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/CrashFragment.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class new file mode 100644 index 000000000..ba5143735 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.dex new file mode 100644 index 000000000..d0a38c495 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class new file mode 100644 index 000000000..121d5f2d6 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.dex new file mode 100644 index 000000000..ccd3b3de1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/mcfragments/LauncherFragment.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.class new file mode 100644 index 000000000..b5062e7de Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.dex new file mode 100644 index 000000000..c397d814d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/Optifine.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class new file mode 100644 index 000000000..851cd8b6e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.dex new file mode 100644 index 000000000..4cd7484e0 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion$VersionList.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.class new file mode 100644 index 000000000..ff6236149 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.dex new file mode 100644 index 000000000..f6607c059 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/optifine/OptifineVersion.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.class new file mode 100644 index 000000000..add0c86f2 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.dex new file mode 100644 index 000000000..c55ceca25 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/signer/JarSigner.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.class new file mode 100644 index 000000000..ed777f3a9 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.dex new file mode 100644 index 000000000..89b31bfd5 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/DownloadUtils.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.class new file mode 100644 index 000000000..92a4c2fcd Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.dex new file mode 100644 index 000000000..619de3fee Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.class new file mode 100644 index 000000000..f3aa4a68d Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.dex new file mode 100644 index 000000000..127d33b82 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/util/IoUtil.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class new file mode 100644 index 000000000..cbe38891e Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.dex new file mode 100644 index 000000000..8e6b0fe36 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary$MDownloads.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.class new file mode 100644 index 000000000..9aec5090c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.dex new file mode 100644 index 000000000..95312c1af Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/DependentLibrary.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.class new file mode 100644 index 000000000..98c98e0a1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.dex new file mode 100644 index 000000000..6ff7d696c Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftClientInfo.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class new file mode 100644 index 000000000..d9c1b6a00 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.dex new file mode 100644 index 000000000..7ec537465 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.class new file mode 100644 index 000000000..81fd51c81 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.dex new file mode 100644 index 000000000..97a45a043 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/value/MinecraftVersion.dex differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.class b/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.class new file mode 100644 index 000000000..46f96cf27 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.class differ diff --git a/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.dex b/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.dex new file mode 100644 index 000000000..9e36066b1 Binary files /dev/null and b/app/build/bin/classesrelease/net/kdt/pojavlaunch/views/MineButton.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.class b/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.class new file mode 100644 index 000000000..4b6b53170 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.dex b/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.dex new file mode 100644 index 000000000..61cae4d37 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/client/ClientBrandRetriever.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.class new file mode 100644 index 000000000..8103dc453 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.dex new file mode 100644 index 000000000..7170f9eaf Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/AlphaVanillaTweaker.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.class new file mode 100644 index 000000000..0d28d58f4 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.dex new file mode 100644 index 000000000..aec354ca9 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassNameTransformer.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.class new file mode 100644 index 000000000..2db22b8b4 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.dex new file mode 100644 index 000000000..d74a563f0 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IClassTransformer.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.class new file mode 100644 index 000000000..3397feba6 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.dex new file mode 100644 index 000000000..40e03ddbe Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/ITweaker.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.class new file mode 100644 index 000000000..79b97f03e Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.dex new file mode 100644 index 000000000..2426131b7 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/IndevVanillaTweaker.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.class new file mode 100644 index 000000000..b4c281a57 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.dex new file mode 100644 index 000000000..cbdb2c00c Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/Launch.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.class new file mode 100644 index 000000000..1f1146744 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.dex new file mode 100644 index 000000000..b4812665c Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LaunchClassLoader.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class new file mode 100644 index 000000000..54a7e9db7 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.dex new file mode 100644 index 000000000..78e5fb6ec Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper$AndroidLogger.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.class new file mode 100644 index 000000000..9a8c8e975 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.dex new file mode 100644 index 000000000..100bb260b Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/LogWrapper.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.class new file mode 100644 index 000000000..7c487c41b Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.dex new file mode 100644 index 000000000..87c88e58f Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/VanillaTweaker.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class new file mode 100644 index 000000000..090685f5f Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.dex new file mode 100644 index 000000000..aa0c10db7 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000000.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class new file mode 100644 index 000000000..8d7a9b269 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.dex new file mode 100644 index 000000000..a12149182 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$100000001.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class new file mode 100644 index 000000000..634f35bf7 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.dex new file mode 100644 index 000000000..f3b0e17df Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector$LauncherFake.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class new file mode 100644 index 000000000..247cd6ba2 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.dex new file mode 100644 index 000000000..d421feec3 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class new file mode 100644 index 000000000..e1e04b1b5 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.dex new file mode 100644 index 000000000..b637b3fef Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.dex differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class new file mode 100644 index 000000000..1d42d68e9 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.class differ diff --git a/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.dex b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.dex new file mode 100644 index 000000000..43c2005e4 Binary files /dev/null and b/app/build/bin/classesrelease/net/minecraft/launchwrapper/injector/VanillaTweakInjector.dex differ diff --git a/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.class b/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.class new file mode 100644 index 000000000..f4a2c68f1 Binary files /dev/null and b/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.class differ diff --git a/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.dex b/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.dex new file mode 100644 index 000000000..254238825 Binary files /dev/null and b/app/build/bin/classesrelease/net/zhuoweizhang/boardwalk/DalvikTweaks.dex differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.class b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.class new file mode 100644 index 000000000..c214b4446 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.class differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.dex b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.dex new file mode 100644 index 000000000..40aab83c9 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Base64.dex differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.class b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.class new file mode 100644 index 000000000..bb873983f Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.class differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.dex b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.dex new file mode 100644 index 000000000..c4eb40013 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/Hex.dex differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.class b/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.class new file mode 100644 index 000000000..f5574c7e8 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.class differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.dex b/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.dex new file mode 100644 index 000000000..28a583565 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/binary/StringUtils.dex differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.class b/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.class new file mode 100644 index 000000000..cc05ea85b Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.class differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.dex b/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.dex new file mode 100644 index 000000000..98b9f4575 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/digest/DigestUtils.dex differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.class b/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.class new file mode 100644 index 000000000..270b7cc67 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.class differ diff --git a/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.dex b/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.dex new file mode 100644 index 000000000..3ec467373 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/commons/codec/digest/MessageDigestAlgorithms.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.class b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.class new file mode 100644 index 000000000..ea489e3a9 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.dex new file mode 100644 index 000000000..877299554 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$CubicCurve.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.class b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.class new file mode 100644 index 000000000..c446977c1 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.dex new file mode 100644 index 000000000..62452dcde Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing$QuadCurve.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.class b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.class new file mode 100644 index 000000000..dd947d7df Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.dex new file mode 100644 index 000000000..aa6b9c127 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/gl/Crossing.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.class b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.class new file mode 100644 index 000000000..dc1b267fe Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.dex new file mode 100644 index 000000000..9e6df41a8 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/Messages.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.class b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.class new file mode 100644 index 000000000..2e4f579f9 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.dex new file mode 100644 index 000000000..2d94a80a5 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/internal/nls/MsgHelp.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.class b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.class new file mode 100644 index 000000000..cb3735306 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.dex new file mode 100644 index 000000000..02544fa1f Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/CursorFactory.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.class b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.class new file mode 100644 index 000000000..523a288f5 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.dex new file mode 100644 index 000000000..fc83e201b Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeCursor.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.class b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.class new file mode 100644 index 000000000..63bdfa6e1 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.dex b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.dex new file mode 100644 index 000000000..f155dc522 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/awt/wtk/NativeWindow.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.class b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.class new file mode 100644 index 000000000..8bb2b484c Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.dex b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.dex new file mode 100644 index 000000000..78bc8680e Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/Messages.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.class b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.class new file mode 100644 index 000000000..cb9b1be06 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.dex b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.dex new file mode 100644 index 000000000..c3d33ed96 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/beans/internal/nls/MsgHelp.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.class b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.class new file mode 100644 index 000000000..727b91683 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.dex b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.dex new file mode 100644 index 000000000..e0e67ef78 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp$100000000.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.class b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.class new file mode 100644 index 000000000..8d163cf95 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.dex b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.dex new file mode 100644 index 000000000..592e75033 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/MsgHelp.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.class b/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.class new file mode 100644 index 000000000..fd7fb374c Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.dex b/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.dex new file mode 100644 index 000000000..c00a34f99 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/luni/util/NotImplementedException.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.class b/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.class new file mode 100644 index 000000000..2de0721e9 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.dex b/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.dex new file mode 100644 index 000000000..64aa28e01 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/misc/HashCode.dex differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.class b/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.class new file mode 100644 index 000000000..7bcce84e3 Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.class differ diff --git a/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.dex b/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.dex new file mode 100644 index 000000000..d28f57dda Binary files /dev/null and b/app/build/bin/classesrelease/org/apache/harmony/misc/SystemUtils.dex differ diff --git a/app/build/bin/classesrelease/sun/applet/AppletAudioClip.class b/app/build/bin/classesrelease/sun/applet/AppletAudioClip.class new file mode 100644 index 000000000..2e97c9eb2 Binary files /dev/null and b/app/build/bin/classesrelease/sun/applet/AppletAudioClip.class differ diff --git a/app/build/bin/classesrelease/sun/applet/AppletAudioClip.dex b/app/build/bin/classesrelease/sun/applet/AppletAudioClip.dex new file mode 100644 index 000000000..03c07e58a Binary files /dev/null and b/app/build/bin/classesrelease/sun/applet/AppletAudioClip.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/FakeUnsafe.class b/app/build/bin/classesrelease/sun/misc/FakeUnsafe.class new file mode 100644 index 000000000..a75c78324 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/FakeUnsafe.class differ diff --git a/app/build/bin/classesrelease/sun/misc/FakeUnsafe.dex b/app/build/bin/classesrelease/sun/misc/FakeUnsafe.dex new file mode 100644 index 000000000..1dd7d702f Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/FakeUnsafe.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaIOAccess.class b/app/build/bin/classesrelease/sun/misc/JavaIOAccess.class new file mode 100644 index 000000000..524f62e9b Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaIOAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaIOAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaIOAccess.dex new file mode 100644 index 000000000..1ef967872 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaIOAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.class b/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.class new file mode 100644 index 000000000..72aea834b Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.dex new file mode 100644 index 000000000..c58729ac6 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaIOFileDescriptorAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.class b/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.class new file mode 100644 index 000000000..a4074fa56 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.dex new file mode 100644 index 000000000..50d5ef176 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNetHttpCookieAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.class b/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.class new file mode 100644 index 000000000..2c299a887 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.dex b/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.dex new file mode 100644 index 000000000..4b78034d7 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNioAccess$BufferPool.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNioAccess.class b/app/build/bin/classesrelease/sun/misc/JavaNioAccess.class new file mode 100644 index 000000000..b20726beb Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNioAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaNioAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaNioAccess.dex new file mode 100644 index 000000000..56276abc5 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaNioAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class new file mode 100644 index 000000000..2916006ba Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.dex b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.dex new file mode 100644 index 000000000..0929cf63d Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess$ProtectionDomainCache.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.class b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.class new file mode 100644 index 000000000..8a085470b Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.dex new file mode 100644 index 000000000..d9f7f0e22 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaSecurityProtectionDomainAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.class b/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.class new file mode 100644 index 000000000..aa3c97e12 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.dex new file mode 100644 index 000000000..f511149de Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaUtilJarAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.class b/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.class new file mode 100644 index 000000000..f53d1aece Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.class differ diff --git a/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.dex b/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.dex new file mode 100644 index 000000000..e573b24f3 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/JavaUtilZipAccess.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/SharedSecrets.class b/app/build/bin/classesrelease/sun/misc/SharedSecrets.class new file mode 100644 index 000000000..bd3fa0c53 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/SharedSecrets.class differ diff --git a/app/build/bin/classesrelease/sun/misc/SharedSecrets.dex b/app/build/bin/classesrelease/sun/misc/SharedSecrets.dex new file mode 100644 index 000000000..414b622f6 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/SharedSecrets.dex differ diff --git a/app/build/bin/classesrelease/sun/misc/Unsafe.class b/app/build/bin/classesrelease/sun/misc/Unsafe.class new file mode 100644 index 000000000..acfe8269c Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/Unsafe.class differ diff --git a/app/build/bin/classesrelease/sun/misc/Unsafe.dex b/app/build/bin/classesrelease/sun/misc/Unsafe.dex new file mode 100644 index 000000000..1794dc5b6 Binary files /dev/null and b/app/build/bin/classesrelease/sun/misc/Unsafe.dex differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.class b/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.class new file mode 100644 index 000000000..761fedc3d Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.class differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.dex b/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.dex new file mode 100644 index 000000000..f6be8c5fe Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetBooleanAction.dex differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.class b/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.class new file mode 100644 index 000000000..7fd129593 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.class differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.dex b/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.dex new file mode 100644 index 000000000..659bc9277 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetBooleanSecurityPropertyAction.dex differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.class b/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.class new file mode 100644 index 000000000..f5c3c3e15 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.class differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.dex b/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.dex new file mode 100644 index 000000000..aed8f45e8 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetIntegerAction.dex differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.class b/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.class new file mode 100644 index 000000000..59f434b58 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.class differ diff --git a/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.dex b/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.dex new file mode 100644 index 000000000..6fa4a488b Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/action/GetPropertyAction.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/PermissionFactory.class b/app/build/bin/classesrelease/sun/security/util/PermissionFactory.class new file mode 100644 index 000000000..710f586b5 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/PermissionFactory.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/PermissionFactory.dex b/app/build/bin/classesrelease/sun/security/util/PermissionFactory.dex new file mode 100644 index 000000000..7c3c4352a Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/PermissionFactory.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.class b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.class new file mode 100644 index 000000000..f1e806c3f Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.dex b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.dex new file mode 100644 index 000000000..7d0a16a7a Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT$100000000.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.class b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.class new file mode 100644 index 000000000..be7db01e2 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.dex b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.dex new file mode 100644 index 000000000..1555def45 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$AWT.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.class b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.class new file mode 100644 index 000000000..777f638a4 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.dex b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.dex new file mode 100644 index 000000000..8ca925eab Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermission.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class new file mode 100644 index 000000000..f5166cddf Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.dex b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.dex new file mode 100644 index 000000000..145f111b0 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants$FakeAWTPermissionFactory.dex differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants.class b/app/build/bin/classesrelease/sun/security/util/SecurityConstants.class new file mode 100644 index 000000000..fbb2e3a57 Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants.class differ diff --git a/app/build/bin/classesrelease/sun/security/util/SecurityConstants.dex b/app/build/bin/classesrelease/sun/security/util/SecurityConstants.dex new file mode 100644 index 000000000..a52884a6b Binary files /dev/null and b/app/build/bin/classesrelease/sun/security/util/SecurityConstants.dex differ diff --git a/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.class b/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.class new file mode 100644 index 000000000..52cb07552 Binary files /dev/null and b/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.class differ diff --git a/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.dex b/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.dex new file mode 100644 index 000000000..7399d73db Binary files /dev/null and b/app/build/bin/classesrelease/sun/util/CoreResourceBundleControl.dex differ diff --git a/app/build/bin/injected/AndroidManifest.xml b/app/build/bin/injected/AndroidManifest.xml new file mode 100644 index 000000000..11183ad91 --- /dev/null +++ b/app/build/bin/injected/AndroidManifest.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/build/bin/jardex/PointerCapture26Wrapper.jar.dex b/app/build/bin/jardex/PointerCapture26Wrapper.jar.dex new file mode 100644 index 000000000..373dfa4cc Binary files /dev/null and b/app/build/bin/jardex/PointerCapture26Wrapper.jar.dex differ diff --git a/app/build/bin/jardex/animal-sniffer-annotations-1.18.jar.dex b/app/build/bin/jardex/animal-sniffer-annotations-1.18.jar.dex new file mode 100644 index 000000000..a21571903 Binary files /dev/null and b/app/build/bin/jardex/animal-sniffer-annotations-1.18.jar.dex differ diff --git a/app/build/bin/jardex/asm-tree-5.0.3.jar.dex b/app/build/bin/jardex/asm-tree-5.0.3.jar.dex new file mode 100644 index 000000000..13ef86fc8 Binary files /dev/null and b/app/build/bin/jardex/asm-tree-5.0.3.jar.dex differ diff --git a/app/build/bin/jardex/boardwalk_asm.jar.dex b/app/build/bin/jardex/boardwalk_asm.jar.dex new file mode 100644 index 000000000..c9a68f716 Binary files /dev/null and b/app/build/bin/jardex/boardwalk_asm.jar.dex differ diff --git a/app/build/bin/jardex/boardwalk_jinput.jar.dex b/app/build/bin/jardex/boardwalk_jinput.jar.dex new file mode 100644 index 000000000..e86e1f1cd Binary files /dev/null and b/app/build/bin/jardex/boardwalk_jinput.jar.dex differ diff --git a/app/build/bin/jardex/boardwalk_lwjgl.jar.dex b/app/build/bin/jardex/boardwalk_lwjgl.jar.dex new file mode 100644 index 000000000..d6fd3851d Binary files /dev/null and b/app/build/bin/jardex/boardwalk_lwjgl.jar.dex differ diff --git a/app/build/bin/jardex/boardwalk_lzma.jar.dex b/app/build/bin/jardex/boardwalk_lzma.jar.dex new file mode 100644 index 000000000..6189b1238 Binary files /dev/null and b/app/build/bin/jardex/boardwalk_lzma.jar.dex differ diff --git a/app/build/bin/jardex/checker-compat-qual-2.5.5.jar.dex b/app/build/bin/jardex/checker-compat-qual-2.5.5.jar.dex new file mode 100644 index 000000000..f71fa2027 Binary files /dev/null and b/app/build/bin/jardex/checker-compat-qual-2.5.5.jar.dex differ diff --git a/app/build/bin/jardex/error_prone_annotations-2.3.4.jar.dex b/app/build/bin/jardex/error_prone_annotations-2.3.4.jar.dex new file mode 100644 index 000000000..d0c689bd7 Binary files /dev/null and b/app/build/bin/jardex/error_prone_annotations-2.3.4.jar.dex differ diff --git a/app/build/bin/jardex/failureaccess-1.0.1.jar.dex b/app/build/bin/jardex/failureaccess-1.0.1.jar.dex new file mode 100644 index 000000000..47e511f65 Binary files /dev/null and b/app/build/bin/jardex/failureaccess-1.0.1.jar.dex differ diff --git a/app/build/bin/jardex/gson-2.8.6.jar.dex b/app/build/bin/jardex/gson-2.8.6.jar.dex new file mode 100644 index 000000000..bac0c75bb Binary files /dev/null and b/app/build/bin/jardex/gson-2.8.6.jar.dex differ diff --git a/app/build/bin/jardex/guava-24.0-android.jar.dex b/app/build/bin/jardex/guava-24.0-android.jar.dex new file mode 100644 index 000000000..2805bee27 Binary files /dev/null and b/app/build/bin/jardex/guava-24.0-android.jar.dex differ diff --git a/app/build/bin/jardex/guava-28.2-android.jar.dex b/app/build/bin/jardex/guava-28.2-android.jar.dex new file mode 100644 index 000000000..627971098 Binary files /dev/null and b/app/build/bin/jardex/guava-28.2-android.jar.dex differ diff --git a/app/build/bin/jardex/j2objc-annotations-1.3.jar.dex b/app/build/bin/jardex/j2objc-annotations-1.3.jar.dex new file mode 100644 index 000000000..47d217ed0 Binary files /dev/null and b/app/build/bin/jardex/j2objc-annotations-1.3.jar.dex differ diff --git a/app/build/bin/jardex/jopt-simple-5.0.4.jar.dex b/app/build/bin/jardex/jopt-simple-5.0.4.jar.dex new file mode 100644 index 000000000..25c865f5f Binary files /dev/null and b/app/build/bin/jardex/jopt-simple-5.0.4.jar.dex differ diff --git a/app/build/bin/jardex/jsr305-3.0.2.jar.dex b/app/build/bin/jardex/jsr305-3.0.2.jar.dex new file mode 100644 index 000000000..186ecb8c7 Binary files /dev/null and b/app/build/bin/jardex/jsr305-3.0.2.jar.dex differ diff --git a/app/build/bin/jardex/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar.dex b/app/build/bin/jardex/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar.dex new file mode 100644 index 000000000..f15fcfa65 Binary files /dev/null and b/app/build/bin/jardex/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar.dex differ diff --git a/app/build/bin/jardex/support-annotations-23.1.1.jar.dex b/app/build/bin/jardex/support-annotations-23.1.1.jar.dex new file mode 100644 index 000000000..a81304564 Binary files /dev/null and b/app/build/bin/jardex/support-annotations-23.1.1.jar.dex differ diff --git a/app/build/bin/jardex/support-annotations-24.0.0.jar.dex b/app/build/bin/jardex/support-annotations-24.0.0.jar.dex new file mode 100644 index 000000000..02f75c25b Binary files /dev/null and b/app/build/bin/jardex/support-annotations-24.0.0.jar.dex differ diff --git a/app/build/bin/merged/AndroidManifest.xml b/app/build/bin/merged/AndroidManifest.xml new file mode 100644 index 000000000..f8966edfb --- /dev/null +++ b/app/build/bin/merged/AndroidManifest.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/bin/res/drawable-hdpi/ic_file.png b/app/build/bin/res/drawable-hdpi/ic_file.png new file mode 100644 index 000000000..8ba7b157a Binary files /dev/null and b/app/build/bin/res/drawable-hdpi/ic_file.png differ diff --git a/app/build/bin/res/drawable-hdpi/ic_folder.png b/app/build/bin/res/drawable-hdpi/ic_folder.png new file mode 100644 index 000000000..c8209b3b0 Binary files /dev/null and b/app/build/bin/res/drawable-hdpi/ic_folder.png differ diff --git a/app/build/bin/res/drawable-hdpi/ic_launcher.png b/app/build/bin/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 000000000..7a811b0a7 Binary files /dev/null and b/app/build/bin/res/drawable-hdpi/ic_launcher.png differ diff --git a/app/build/bin/res/drawable-mdpi/ic_file.png b/app/build/bin/res/drawable-mdpi/ic_file.png new file mode 100644 index 000000000..a093e973b Binary files /dev/null and b/app/build/bin/res/drawable-mdpi/ic_file.png differ diff --git a/app/build/bin/res/drawable-mdpi/ic_folder.png b/app/build/bin/res/drawable-mdpi/ic_folder.png new file mode 100644 index 000000000..7f9711798 Binary files /dev/null and b/app/build/bin/res/drawable-mdpi/ic_folder.png differ diff --git a/app/build/bin/res/drawable-mdpi/ic_launcher.png b/app/build/bin/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 000000000..647f1cfba Binary files /dev/null and b/app/build/bin/res/drawable-mdpi/ic_launcher.png differ diff --git a/app/build/bin/res/drawable-xhdpi/ic_file.png b/app/build/bin/res/drawable-xhdpi/ic_file.png new file mode 100644 index 000000000..d5ac9b63e Binary files /dev/null and b/app/build/bin/res/drawable-xhdpi/ic_file.png differ diff --git a/app/build/bin/res/drawable-xhdpi/ic_folder.png b/app/build/bin/res/drawable-xhdpi/ic_folder.png new file mode 100644 index 000000000..6da143935 Binary files /dev/null and b/app/build/bin/res/drawable-xhdpi/ic_folder.png differ diff --git a/app/build/bin/res/drawable-xhdpi/ic_launcher.png b/app/build/bin/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 000000000..7416d2fd8 Binary files /dev/null and b/app/build/bin/res/drawable-xhdpi/ic_launcher.png differ diff --git a/app/build/bin/res/drawable-xxhdpi/ic_file.png b/app/build/bin/res/drawable-xxhdpi/ic_file.png new file mode 100644 index 000000000..86b2aa097 Binary files /dev/null and b/app/build/bin/res/drawable-xxhdpi/ic_file.png differ diff --git a/app/build/bin/res/drawable-xxhdpi/ic_folder.png b/app/build/bin/res/drawable-xxhdpi/ic_folder.png new file mode 100644 index 000000000..5ea823a3b Binary files /dev/null and b/app/build/bin/res/drawable-xxhdpi/ic_folder.png differ diff --git a/app/build/bin/res/drawable-xxhdpi/ic_launcher.png b/app/build/bin/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..6606bbe21 Binary files /dev/null and b/app/build/bin/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/app/build/bin/res/drawable-xxxhdpi/ic_launcher.png b/app/build/bin/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..1ee82a8a2 Binary files /dev/null and b/app/build/bin/res/drawable-xxxhdpi/ic_launcher.png differ diff --git a/app/build/bin/res/drawable/bg_wool_dark.png b/app/build/bin/res/drawable/bg_wool_dark.png new file mode 100644 index 000000000..c1b81f01d Binary files /dev/null and b/app/build/bin/res/drawable/bg_wool_dark.png differ diff --git a/app/build/bin/res/drawable/ic_close.png b/app/build/bin/res/drawable/ic_close.png new file mode 100644 index 000000000..308a53f38 Binary files /dev/null and b/app/build/bin/res/drawable/ic_close.png differ diff --git a/app/build/bin/res/drawable/ic_minimize.png b/app/build/bin/res/drawable/ic_minimize.png new file mode 100644 index 000000000..05baa2a9f Binary files /dev/null and b/app/build/bin/res/drawable/ic_minimize.png differ diff --git a/app/build/bin/res/drawable/logo.png b/app/build/bin/res/drawable/logo.png new file mode 100644 index 000000000..0f20aff8a Binary files /dev/null and b/app/build/bin/res/drawable/logo.png differ diff --git a/app/build/bin/res/drawable/mcbtn_normal.png b/app/build/bin/res/drawable/mcbtn_normal.png new file mode 100644 index 000000000..e53a24046 Binary files /dev/null and b/app/build/bin/res/drawable/mcbtn_normal.png differ diff --git a/app/build/bin/res/drawable/mcbtn_pressed.png b/app/build/bin/res/drawable/mcbtn_pressed.png new file mode 100644 index 000000000..20aacbf8a Binary files /dev/null and b/app/build/bin/res/drawable/mcbtn_pressed.png differ diff --git a/app/build/bin/res/drawable/menu_hamburger.png b/app/build/bin/res/drawable/menu_hamburger.png new file mode 100644 index 000000000..90a94cc3e Binary files /dev/null and b/app/build/bin/res/drawable/menu_hamburger.png differ diff --git a/app/build/bin/res/drawable/mojang_logo.png b/app/build/bin/res/drawable/mojang_logo.png new file mode 100644 index 000000000..8cdd673c1 Binary files /dev/null and b/app/build/bin/res/drawable/mojang_logo.png differ diff --git a/app/build/bin/res/drawable/mouse_pointer.png b/app/build/bin/res/drawable/mouse_pointer.png new file mode 100644 index 000000000..a35657276 Binary files /dev/null and b/app/build/bin/res/drawable/mouse_pointer.png differ diff --git a/app/build/bin/resources.ap_ b/app/build/bin/resources.ap_ new file mode 100644 index 000000000..53ddbe189 Binary files /dev/null and b/app/build/bin/resources.ap_ differ diff --git a/app/build/gen/android/support/design/R.java b/app/build/gen/android/support/design/R.java new file mode 100644 index 000000000..25c72efde --- /dev/null +++ b/app/build/gen/android/support/design/R.java @@ -0,0 +1,9644 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package android.support.design; + +public final class R { + public static final class anim { + public static final int abc_fade_in=0x7f040000; + public static final int abc_fade_out=0x7f040001; + public static final int abc_grow_fade_in_from_bottom=0x7f040002; + public static final int abc_popup_enter=0x7f040003; + public static final int abc_popup_exit=0x7f040004; + public static final int abc_shrink_fade_out_from_bottom=0x7f040005; + public static final int abc_slide_in_bottom=0x7f040006; + public static final int abc_slide_in_top=0x7f040007; + public static final int abc_slide_out_bottom=0x7f040008; + public static final int abc_slide_out_top=0x7f040009; + public static final int design_appbar_state_list_animator=0x7f04000a; + public static final int design_bottom_sheet_slide_in=0x7f04000b; + public static final int design_bottom_sheet_slide_out=0x7f04000c; + public static final int design_fab_in=0x7f04000d; + public static final int design_fab_out=0x7f04000e; + public static final int design_snackbar_in=0x7f04000f; + public static final int design_snackbar_out=0x7f040010; + public static final int translate_left_side=0x7f040011; + public static final int translate_right_side=0x7f040012; + } + public static final class array { + public static final int mcl_options=0x7f0c0000; + } + public static final class attr { + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarDivider=0x7f01008e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarItemBackground=0x7f01008f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarPopupTheme=0x7f010088; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ */ + public static final int actionBarSize=0x7f01008d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarSplitStyle=0x7f01008a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarStyle=0x7f010089; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabBarStyle=0x7f010084; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabStyle=0x7f010083; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabTextStyle=0x7f010085; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTheme=0x7f01008b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarWidgetTheme=0x7f01008c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionButtonStyle=0x7f0100a9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionDropDownStyle=0x7f0100a5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionLayout=0x7f0100fa; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionMenuTextAppearance=0x7f010090; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int actionMenuTextColor=0x7f010091; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeBackground=0x7f010094; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseButtonStyle=0x7f010093; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseDrawable=0x7f010096; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCopyDrawable=0x7f010098; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCutDrawable=0x7f010097; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeFindDrawable=0x7f01009c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePasteDrawable=0x7f010099; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePopupWindowStyle=0x7f01009e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSelectAllDrawable=0x7f01009a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeShareDrawable=0x7f01009b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSplitBackground=0x7f010095; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeStyle=0x7f010092; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeWebSearchDrawable=0x7f01009d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowButtonStyle=0x7f010086; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowMenuStyle=0x7f010087; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionProviderClass=0x7f0100fc; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionViewClass=0x7f0100fb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int activityChooserViewStyle=0x7f0100b1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogButtonGroupStyle=0x7f0100d5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alertDialogCenterButtons=0x7f0100d6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogStyle=0x7f0100d4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogTheme=0x7f0100d7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int allowStacking=0x7f0100ea; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alpha=0x7f0100eb; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowHeadLength=0x7f0100f2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowShaftLength=0x7f0100f3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int autoCompleteTextViewStyle=0x7f0100dc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int background=0x7f01005a; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundSplit=0x7f01005c; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundStacked=0x7f01005b; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int backgroundTint=0x7f01012d; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int backgroundTintMode=0x7f01012e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int barLength=0x7f0100f4; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_hideable=0x7f01000a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_overlapTop=0x7f010033; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_peekHeight=0x7f010009; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_skipCollapsed=0x7f01000b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int borderWidth=0x7f010029; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int borderlessButtonStyle=0x7f0100ae; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetDialogTheme=0x7f010023; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetStyle=0x7f010024; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarButtonStyle=0x7f0100ab; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNegativeButtonStyle=0x7f0100da; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNeutralButtonStyle=0x7f0100db; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarPositiveButtonStyle=0x7f0100d9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarStyle=0x7f0100aa; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ */ + public static final int buttonGravity=0x7f010122; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonPanelSideLayout=0x7f01006f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyle=0x7f0100dd; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyleSmall=0x7f0100de; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int buttonTint=0x7f0100ec; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int buttonTintMode=0x7f0100ed; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkboxStyle=0x7f0100df; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkedTextViewStyle=0x7f0100e0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeIcon=0x7f010105; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeItemLayout=0x7f01006c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int collapseContentDescription=0x7f010124; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapseIcon=0x7f010123; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int collapsedTitleGravity=0x7f010018; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapsedTitleTextAppearance=0x7f010012; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int color=0x7f0100ee; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorAccent=0x7f0100cc; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorBackgroundFloating=0x7f0100d3; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorButtonNormal=0x7f0100d0; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlActivated=0x7f0100ce; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlHighlight=0x7f0100cf; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlNormal=0x7f0100cd; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimary=0x7f0100ca; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimaryDark=0x7f0100cb; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorSwitchThumbNormal=0x7f0100d1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int commitIcon=0x7f01010a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEnd=0x7f010065; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEndWithActions=0x7f010069; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetLeft=0x7f010066; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetRight=0x7f010067; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStart=0x7f010064; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStartWithNavigation=0x7f010068; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentScrim=0x7f010013; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int controlBackground=0x7f0100d2; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterEnabled=0x7f010049; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterMaxLength=0x7f01004a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterOverflowTextAppearance=0x7f01004c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterTextAppearance=0x7f01004b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int customNavigationLayout=0x7f01005d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int defaultQueryHint=0x7f010104; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dialogPreferredPadding=0x7f0100a3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dialogTheme=0x7f0100a2; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ */ + public static final int displayOptions=0x7f010053; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int divider=0x7f010059; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerHorizontal=0x7f0100b0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dividerPadding=0x7f0100f8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerVertical=0x7f0100af; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int drawableSize=0x7f0100f0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int drawerArrowStyle=0x7f01004e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dropDownListViewStyle=0x7f0100c2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dropdownListPreferredItemHeight=0x7f0100a6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextBackground=0x7f0100b7; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int editTextColor=0x7f0100b6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextStyle=0x7f0100e1; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int elevation=0x7f01006a; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int errorEnabled=0x7f010047; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int errorTextAppearance=0x7f010048; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandActivityOverflowButtonDrawable=0x7f01006e; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expanded=0x7f010004; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int expandedTitleGravity=0x7f010019; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMargin=0x7f01000c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginBottom=0x7f010010; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginEnd=0x7f01000f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginStart=0x7f01000d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginTop=0x7f01000e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandedTitleTextAppearance=0x7f010011; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ */ + public static final int fabSize=0x7f010027; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int foregroundInsidePadding=0x7f01002b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int gapBetweenBars=0x7f0100f1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int goIcon=0x7f010106; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int headerLayout=0x7f010031; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int height=0x7f01004f; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hideOnContentScroll=0x7f010063; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintAnimationEnabled=0x7f01004d; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintEnabled=0x7f010046; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int hintTextAppearance=0x7f010045; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeAsUpIndicator=0x7f0100a8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeLayout=0x7f01005e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int icon=0x7f010057; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int iconifiedByDefault=0x7f010102; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int imageButtonStyle=0x7f0100b8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int indeterminateProgressStyle=0x7f010060; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int initialActivityCount=0x7f01006d; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int insetForeground=0x7f010032; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int isLightTheme=0x7f010050; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemBackground=0x7f01002f; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemIconTint=0x7f01002d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemPadding=0x7f010062; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemTextAppearance=0x7f010030; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemTextColor=0x7f01002e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int keylines=0x7f01001d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout=0x7f010101; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layoutManager=0x7f010000; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_anchor=0x7f010020; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ */ + public static final int layout_anchorGravity=0x7f010022; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_behavior=0x7f01001f; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ */ + public static final int layout_collapseMode=0x7f01001b; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_collapseParallaxMultiplier=0x7f01001c; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_keyline=0x7f010021; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ */ + public static final int layout_scrollFlags=0x7f010007; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_scrollInterpolator=0x7f010008; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listChoiceBackgroundIndicator=0x7f0100c9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listDividerAlertDialog=0x7f0100a4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listItemLayout=0x7f010073; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listLayout=0x7f010070; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listMenuViewStyle=0x7f0100e9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listPopupWindowStyle=0x7f0100c3; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeight=0x7f0100bd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightLarge=0x7f0100bf; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightSmall=0x7f0100be; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingLeft=0x7f0100c0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingRight=0x7f0100c1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int logo=0x7f010058; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int logoDescription=0x7f010127; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxActionInlineWidth=0x7f010034; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxButtonHeight=0x7f010121; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int measureWithLargestChild=0x7f0100f6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int menu=0x7f01002c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int multiChoiceItemLayout=0x7f010071; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int navigationContentDescription=0x7f010126; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int navigationIcon=0x7f010125; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ */ + public static final int navigationMode=0x7f010052; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int overlapAnchor=0x7f0100ff; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingEnd=0x7f01012b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingStart=0x7f01012a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelBackground=0x7f0100c6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelMenuListTheme=0x7f0100c8; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int panelMenuListWidth=0x7f0100c7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupMenuStyle=0x7f0100b4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupTheme=0x7f01006b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupWindowStyle=0x7f0100b5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int preserveIconSpacing=0x7f0100fd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int pressedTranslationZ=0x7f010028; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int progressBarPadding=0x7f010061; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int progressBarStyle=0x7f01005f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int queryBackground=0x7f01010c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int queryHint=0x7f010103; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int radioButtonStyle=0x7f0100e2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyle=0x7f0100e3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleIndicator=0x7f0100e4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleSmall=0x7f0100e5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int reverseLayout=0x7f010002; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int rippleColor=0x7f010026; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimAnimationDuration=0x7f010017; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimVisibleHeightTrigger=0x7f010016; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchHintIcon=0x7f010108; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchIcon=0x7f010107; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchViewStyle=0x7f0100bc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int seekBarStyle=0x7f0100e6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackground=0x7f0100ac; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackgroundBorderless=0x7f0100ad; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ */ + public static final int showAsAction=0x7f0100f9; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ */ + public static final int showDividers=0x7f0100f7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int showText=0x7f010118; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int singleChoiceItemLayout=0x7f010072; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spanCount=0x7f010001; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spinBars=0x7f0100ef; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerDropDownItemStyle=0x7f0100a7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerStyle=0x7f0100e7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int splitTrack=0x7f010117; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int srcCompat=0x7f010074; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int stackFromEnd=0x7f010003; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_above_anchor=0x7f010100; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsed=0x7f010005; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsible=0x7f010006; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int statusBarBackground=0x7f01001e; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int statusBarScrim=0x7f010014; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subMenuArrow=0x7f0100fe; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int submitBackground=0x7f01010d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitle=0x7f010054; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextAppearance=0x7f01011a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitleTextColor=0x7f010129; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextStyle=0x7f010056; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int suggestionRowLayout=0x7f01010b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchMinWidth=0x7f010115; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchPadding=0x7f010116; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchStyle=0x7f0100e8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchTextAppearance=0x7f010114; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabBackground=0x7f010038; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabContentStart=0x7f010037; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ */ + public static final int tabGravity=0x7f01003a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorColor=0x7f010035; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorHeight=0x7f010036; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMaxWidth=0x7f01003c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMinWidth=0x7f01003b; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ */ + public static final int tabMode=0x7f010039; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPadding=0x7f010044; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingBottom=0x7f010043; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingEnd=0x7f010042; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingStart=0x7f010040; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingTop=0x7f010041; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabSelectedTextColor=0x7f01003f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabTextAppearance=0x7f01003d; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabTextColor=0x7f01003e; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + */ + public static final int textAllCaps=0x7f010078; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceLargePopupMenu=0x7f01009f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItem=0x7f0100c4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItemSmall=0x7f0100c5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearancePopupMenuHeader=0x7f0100a1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultSubtitle=0x7f0100ba; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultTitle=0x7f0100b9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSmallPopupMenu=0x7f0100a0; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorAlertDialogListItem=0x7f0100d8; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int textColorError=0x7f010025; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorSearchUrl=0x7f0100bb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int theme=0x7f01012c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thickness=0x7f0100f5; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTextPadding=0x7f010113; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTint=0x7f01010e; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int thumbTintMode=0x7f01010f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tickMark=0x7f010075; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tickMarkTint=0x7f010076; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int tickMarkTintMode=0x7f010077; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int title=0x7f010051; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleEnabled=0x7f01001a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargin=0x7f01011b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginBottom=0x7f01011f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginEnd=0x7f01011d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginStart=0x7f01011c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginTop=0x7f01011e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargins=0x7f010120; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextAppearance=0x7f010119; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleTextColor=0x7f010128; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextStyle=0x7f010055; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarId=0x7f010015; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarNavigationButtonStyle=0x7f0100b3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarStyle=0x7f0100b2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int track=0x7f010110; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int trackTint=0x7f010111; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int trackTintMode=0x7f010112; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int useCompatPadding=0x7f01002a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int voiceIcon=0x7f010109; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBar=0x7f010079; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBarOverlay=0x7f01007b; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionModeOverlay=0x7f01007c; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMajor=0x7f010080; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMinor=0x7f01007e; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMajor=0x7f01007d; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMinor=0x7f01007f; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMajor=0x7f010081; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMinor=0x7f010082; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowNoTitle=0x7f01007a; + } + public static final class bool { + public static final int abc_action_bar_embed_tabs=0x7f0b0000; + public static final int abc_allow_stacked_button_bar=0x7f0b0001; + public static final int abc_config_actionMenuItemAllCaps=0x7f0b0002; + public static final int abc_config_closeDialogWhenTouchOutside=0x7f0b0003; + public static final int abc_config_showMenuShortcutsWhenKeyboardPresent=0x7f0b0004; + } + public static final class color { + public static final int abc_background_cache_hint_selector_material_dark=0x7f090044; + public static final int abc_background_cache_hint_selector_material_light=0x7f090045; + public static final int abc_btn_colored_borderless_text_material=0x7f090046; + public static final int abc_color_highlight_material=0x7f090047; + public static final int abc_input_method_navigation_guard=0x7f09000a; + public static final int abc_primary_text_disable_only_material_dark=0x7f090048; + public static final int abc_primary_text_disable_only_material_light=0x7f090049; + public static final int abc_primary_text_material_dark=0x7f09004a; + public static final int abc_primary_text_material_light=0x7f09004b; + public static final int abc_search_url_text=0x7f09004c; + public static final int abc_search_url_text_normal=0x7f09000b; + public static final int abc_search_url_text_pressed=0x7f09000c; + public static final int abc_search_url_text_selected=0x7f09000d; + public static final int abc_secondary_text_material_dark=0x7f09004d; + public static final int abc_secondary_text_material_light=0x7f09004e; + public static final int abc_tint_btn_checkable=0x7f09004f; + public static final int abc_tint_default=0x7f090050; + public static final int abc_tint_edittext=0x7f090051; + public static final int abc_tint_seek_thumb=0x7f090052; + public static final int abc_tint_spinner=0x7f090053; + public static final int abc_tint_switch_thumb=0x7f090054; + public static final int abc_tint_switch_track=0x7f090055; + public static final int accent_material_dark=0x7f09000e; + public static final int accent_material_light=0x7f09000f; + public static final int background_floating_material_dark=0x7f090010; + public static final int background_floating_material_light=0x7f090011; + public static final int background_material_dark=0x7f090012; + public static final int background_material_light=0x7f090013; + public static final int bright_foreground_disabled_material_dark=0x7f090014; + public static final int bright_foreground_disabled_material_light=0x7f090015; + public static final int bright_foreground_inverse_material_dark=0x7f090016; + public static final int bright_foreground_inverse_material_light=0x7f090017; + public static final int bright_foreground_material_dark=0x7f090018; + public static final int bright_foreground_material_light=0x7f090019; + public static final int button_material_dark=0x7f09001a; + public static final int button_material_light=0x7f09001b; + public static final int design_fab_shadow_end_color=0x7f090000; + public static final int design_fab_shadow_mid_color=0x7f090001; + public static final int design_fab_shadow_start_color=0x7f090002; + public static final int design_fab_stroke_end_inner_color=0x7f090003; + public static final int design_fab_stroke_end_outer_color=0x7f090004; + public static final int design_fab_stroke_top_inner_color=0x7f090005; + public static final int design_fab_stroke_top_outer_color=0x7f090006; + public static final int design_snackbar_background_color=0x7f090007; + public static final int design_textinput_error_color_dark=0x7f090008; + public static final int design_textinput_error_color_light=0x7f090009; + public static final int dim_foreground_disabled_material_dark=0x7f09001c; + public static final int dim_foreground_disabled_material_light=0x7f09001d; + public static final int dim_foreground_material_dark=0x7f09001e; + public static final int dim_foreground_material_light=0x7f09001f; + public static final int foreground_material_dark=0x7f090020; + public static final int foreground_material_light=0x7f090021; + public static final int highlighted_text_material_dark=0x7f090022; + public static final int highlighted_text_material_light=0x7f090023; + public static final int hint_foreground_material_dark=0x7f090024; + public static final int hint_foreground_material_light=0x7f090025; + public static final int material_blue_grey_800=0x7f090026; + public static final int material_blue_grey_900=0x7f090027; + public static final int material_blue_grey_950=0x7f090028; + public static final int material_deep_teal_200=0x7f090029; + public static final int material_deep_teal_500=0x7f09002a; + public static final int material_grey_100=0x7f09002b; + public static final int material_grey_300=0x7f09002c; + public static final int material_grey_50=0x7f09002d; + public static final int material_grey_600=0x7f09002e; + public static final int material_grey_800=0x7f09002f; + public static final int material_grey_850=0x7f090030; + public static final int material_grey_900=0x7f090031; + public static final int primary_dark_material_dark=0x7f090032; + public static final int primary_dark_material_light=0x7f090033; + public static final int primary_material_dark=0x7f090034; + public static final int primary_material_light=0x7f090035; + public static final int primary_text_default_material_dark=0x7f090036; + public static final int primary_text_default_material_light=0x7f090037; + public static final int primary_text_disabled_material_dark=0x7f090038; + public static final int primary_text_disabled_material_light=0x7f090039; + public static final int ripple_material_dark=0x7f09003a; + public static final int ripple_material_light=0x7f09003b; + public static final int secondary_text_default_material_dark=0x7f09003c; + public static final int secondary_text_default_material_light=0x7f09003d; + public static final int secondary_text_disabled_material_dark=0x7f09003e; + public static final int secondary_text_disabled_material_light=0x7f09003f; + public static final int switch_thumb_disabled_material_dark=0x7f090040; + public static final int switch_thumb_disabled_material_light=0x7f090041; + public static final int switch_thumb_material_dark=0x7f090056; + public static final int switch_thumb_material_light=0x7f090057; + public static final int switch_thumb_normal_material_dark=0x7f090042; + public static final int switch_thumb_normal_material_light=0x7f090043; + } + public static final class dimen { + public static final int abc_action_bar_content_inset_material=0x7f05002c; + public static final int abc_action_bar_content_inset_with_nav=0x7f05002d; + public static final int abc_action_bar_default_height_material=0x7f050021; + public static final int abc_action_bar_default_padding_end_material=0x7f05002e; + public static final int abc_action_bar_default_padding_start_material=0x7f05002f; + public static final int abc_action_bar_icon_vertical_padding_material=0x7f050031; + public static final int abc_action_bar_overflow_padding_end_material=0x7f050032; + public static final int abc_action_bar_overflow_padding_start_material=0x7f050033; + public static final int abc_action_bar_progress_bar_size=0x7f050022; + public static final int abc_action_bar_stacked_max_height=0x7f050034; + public static final int abc_action_bar_stacked_tab_max_width=0x7f050035; + public static final int abc_action_bar_subtitle_bottom_margin_material=0x7f050036; + public static final int abc_action_bar_subtitle_top_margin_material=0x7f050037; + public static final int abc_action_button_min_height_material=0x7f050038; + public static final int abc_action_button_min_width_material=0x7f050039; + public static final int abc_action_button_min_width_overflow_material=0x7f05003a; + public static final int abc_alert_dialog_button_bar_height=0x7f050020; + public static final int abc_button_inset_horizontal_material=0x7f05003b; + public static final int abc_button_inset_vertical_material=0x7f05003c; + public static final int abc_button_padding_horizontal_material=0x7f05003d; + public static final int abc_button_padding_vertical_material=0x7f05003e; + public static final int abc_cascading_menus_min_smallest_width=0x7f05003f; + public static final int abc_config_prefDialogWidth=0x7f050025; + public static final int abc_control_corner_material=0x7f050040; + public static final int abc_control_inset_material=0x7f050041; + public static final int abc_control_padding_material=0x7f050042; + public static final int abc_dialog_fixed_height_major=0x7f050026; + public static final int abc_dialog_fixed_height_minor=0x7f050027; + public static final int abc_dialog_fixed_width_major=0x7f050028; + public static final int abc_dialog_fixed_width_minor=0x7f050029; + public static final int abc_dialog_list_padding_vertical_material=0x7f050043; + public static final int abc_dialog_min_width_major=0x7f05002a; + public static final int abc_dialog_min_width_minor=0x7f05002b; + public static final int abc_dialog_padding_material=0x7f050044; + public static final int abc_dialog_padding_top_material=0x7f050045; + public static final int abc_disabled_alpha_material_dark=0x7f050046; + public static final int abc_disabled_alpha_material_light=0x7f050047; + public static final int abc_dropdownitem_icon_width=0x7f050048; + public static final int abc_dropdownitem_text_padding_left=0x7f050049; + public static final int abc_dropdownitem_text_padding_right=0x7f05004a; + public static final int abc_edit_text_inset_bottom_material=0x7f05004b; + public static final int abc_edit_text_inset_horizontal_material=0x7f05004c; + public static final int abc_edit_text_inset_top_material=0x7f05004d; + public static final int abc_floating_window_z=0x7f05004e; + public static final int abc_list_item_padding_horizontal_material=0x7f05004f; + public static final int abc_panel_menu_list_width=0x7f050050; + public static final int abc_progress_bar_height_material=0x7f050051; + public static final int abc_search_view_preferred_height=0x7f050052; + public static final int abc_search_view_preferred_width=0x7f050053; + public static final int abc_seekbar_track_background_height_material=0x7f050054; + public static final int abc_seekbar_track_progress_height_material=0x7f050055; + public static final int abc_select_dialog_padding_start_material=0x7f050056; + public static final int abc_switch_padding=0x7f050030; + public static final int abc_text_size_body_1_material=0x7f050057; + public static final int abc_text_size_body_2_material=0x7f050058; + public static final int abc_text_size_button_material=0x7f050059; + public static final int abc_text_size_caption_material=0x7f05005a; + public static final int abc_text_size_display_1_material=0x7f05005b; + public static final int abc_text_size_display_2_material=0x7f05005c; + public static final int abc_text_size_display_3_material=0x7f05005d; + public static final int abc_text_size_display_4_material=0x7f05005e; + public static final int abc_text_size_headline_material=0x7f05005f; + public static final int abc_text_size_large_material=0x7f050060; + public static final int abc_text_size_medium_material=0x7f050061; + public static final int abc_text_size_menu_header_material=0x7f050062; + public static final int abc_text_size_menu_material=0x7f050063; + public static final int abc_text_size_small_material=0x7f050064; + public static final int abc_text_size_subhead_material=0x7f050065; + public static final int abc_text_size_subtitle_material_toolbar=0x7f050023; + public static final int abc_text_size_title_material=0x7f050066; + public static final int abc_text_size_title_material_toolbar=0x7f050024; + /** Default screen margins, per the Android Design guidelines. + */ + public static final int activity_horizontal_margin=0x7f05006f; + public static final int activity_vertical_margin=0x7f050070; + public static final int design_appbar_elevation=0x7f05000b; + public static final int design_bottom_sheet_modal_elevation=0x7f05000c; + public static final int design_bottom_sheet_modal_peek_height=0x7f05000d; + public static final int design_fab_border_width=0x7f05000e; + public static final int design_fab_elevation=0x7f05000f; + public static final int design_fab_image_size=0x7f050010; + public static final int design_fab_size_mini=0x7f050011; + public static final int design_fab_size_normal=0x7f050012; + public static final int design_fab_translation_z_pressed=0x7f050013; + public static final int design_navigation_elevation=0x7f050014; + public static final int design_navigation_icon_padding=0x7f050015; + public static final int design_navigation_icon_size=0x7f050016; + public static final int design_navigation_max_width=0x7f050003; + public static final int design_navigation_padding_bottom=0x7f050017; + public static final int design_navigation_separator_vertical_padding=0x7f050018; + public static final int design_snackbar_action_inline_max_width=0x7f050004; + public static final int design_snackbar_background_corner_radius=0x7f050005; + public static final int design_snackbar_elevation=0x7f050019; + public static final int design_snackbar_extra_spacing_horizontal=0x7f050006; + public static final int design_snackbar_max_width=0x7f050007; + public static final int design_snackbar_min_width=0x7f050008; + public static final int design_snackbar_padding_horizontal=0x7f05001a; + public static final int design_snackbar_padding_vertical=0x7f05001b; + public static final int design_snackbar_padding_vertical_2lines=0x7f050009; + public static final int design_snackbar_text_size=0x7f05001c; + public static final int design_tab_max_width=0x7f05001d; + public static final int design_tab_scrollable_min_width=0x7f05000a; + public static final int design_tab_text_size=0x7f05001e; + public static final int design_tab_text_size_2line=0x7f05001f; + public static final int disabled_alpha_material_dark=0x7f050067; + public static final int disabled_alpha_material_light=0x7f050068; + public static final int empty_icon_height=0x7f050079; + /** Main Activity components + */ + public static final int empty_icon_width=0x7f050078; + public static final int highlight_alpha_material_colored=0x7f050069; + public static final int highlight_alpha_material_dark=0x7f05006a; + public static final int highlight_alpha_material_light=0x7f05006b; + public static final int item_touch_helper_max_drag_scroll_per_frame=0x7f050000; + public static final int item_touch_helper_swipe_escape_max_velocity=0x7f050001; + public static final int item_touch_helper_swipe_escape_velocity=0x7f050002; + public static final int navigation_header_height=0x7f05007a; + public static final int navigation_item_height=0x7f05007b; + public static final int navigation_item_icon_size=0x7f05007c; + public static final int notification_large_icon_height=0x7f05006c; + public static final int notification_large_icon_width=0x7f05006d; + public static final int notification_subtext_size=0x7f05006e; + public static final int padding_extra_extra_large=0x7f050077; + public static final int padding_extra_large=0x7f050076; + public static final int padding_large=0x7f050075; + public static final int padding_medium=0x7f050074; + public static final int padding_small=0x7f050073; + /** Padding + */ + public static final int padding_tiny=0x7f050071; + public static final int padding_tiny_plus_one=0x7f050072; + } + public static final class drawable { + public static final int abc_ab_share_pack_mtrl_alpha=0x7f020000; + public static final int abc_action_bar_item_background_material=0x7f020001; + public static final int abc_btn_borderless_material=0x7f020002; + public static final int abc_btn_check_material=0x7f020003; + public static final int abc_btn_check_to_on_mtrl_000=0x7f020004; + public static final int abc_btn_check_to_on_mtrl_015=0x7f020005; + public static final int abc_btn_colored_material=0x7f020006; + public static final int abc_btn_default_mtrl_shape=0x7f020007; + public static final int abc_btn_radio_material=0x7f020008; + public static final int abc_btn_radio_to_on_mtrl_000=0x7f020009; + public static final int abc_btn_radio_to_on_mtrl_015=0x7f02000a; + public static final int abc_btn_switch_to_on_mtrl_00001=0x7f02000b; + public static final int abc_btn_switch_to_on_mtrl_00012=0x7f02000c; + public static final int abc_cab_background_internal_bg=0x7f02000d; + public static final int abc_cab_background_top_material=0x7f02000e; + public static final int abc_cab_background_top_mtrl_alpha=0x7f02000f; + public static final int abc_control_background_material=0x7f020010; + public static final int abc_dialog_material_background=0x7f020011; + public static final int abc_edit_text_material=0x7f020012; + public static final int abc_ic_ab_back_material=0x7f020013; + public static final int abc_ic_arrow_drop_right_black_24dp=0x7f020014; + public static final int abc_ic_clear_material=0x7f020015; + public static final int abc_ic_commit_search_api_mtrl_alpha=0x7f020016; + public static final int abc_ic_go_search_api_material=0x7f020017; + public static final int abc_ic_menu_copy_mtrl_am_alpha=0x7f020018; + public static final int abc_ic_menu_cut_mtrl_alpha=0x7f020019; + public static final int abc_ic_menu_overflow_material=0x7f02001a; + public static final int abc_ic_menu_paste_mtrl_am_alpha=0x7f02001b; + public static final int abc_ic_menu_selectall_mtrl_alpha=0x7f02001c; + public static final int abc_ic_menu_share_mtrl_alpha=0x7f02001d; + public static final int abc_ic_search_api_material=0x7f02001e; + public static final int abc_ic_star_black_16dp=0x7f02001f; + public static final int abc_ic_star_black_36dp=0x7f020020; + public static final int abc_ic_star_black_48dp=0x7f020021; + public static final int abc_ic_star_half_black_16dp=0x7f020022; + public static final int abc_ic_star_half_black_36dp=0x7f020023; + public static final int abc_ic_star_half_black_48dp=0x7f020024; + public static final int abc_ic_voice_search_api_material=0x7f020025; + public static final int abc_item_background_holo_dark=0x7f020026; + public static final int abc_item_background_holo_light=0x7f020027; + public static final int abc_list_divider_mtrl_alpha=0x7f020028; + public static final int abc_list_focused_holo=0x7f020029; + public static final int abc_list_longpressed_holo=0x7f02002a; + public static final int abc_list_pressed_holo_dark=0x7f02002b; + public static final int abc_list_pressed_holo_light=0x7f02002c; + public static final int abc_list_selector_background_transition_holo_dark=0x7f02002d; + public static final int abc_list_selector_background_transition_holo_light=0x7f02002e; + public static final int abc_list_selector_disabled_holo_dark=0x7f02002f; + public static final int abc_list_selector_disabled_holo_light=0x7f020030; + public static final int abc_list_selector_holo_dark=0x7f020031; + public static final int abc_list_selector_holo_light=0x7f020032; + public static final int abc_menu_hardkey_panel_mtrl_mult=0x7f020033; + public static final int abc_popup_background_mtrl_mult=0x7f020034; + public static final int abc_ratingbar_indicator_material=0x7f020035; + public static final int abc_ratingbar_material=0x7f020036; + public static final int abc_ratingbar_small_material=0x7f020037; + public static final int abc_scrubber_control_off_mtrl_alpha=0x7f020038; + public static final int abc_scrubber_control_to_pressed_mtrl_000=0x7f020039; + public static final int abc_scrubber_control_to_pressed_mtrl_005=0x7f02003a; + public static final int abc_scrubber_primary_mtrl_alpha=0x7f02003b; + public static final int abc_scrubber_track_mtrl_alpha=0x7f02003c; + public static final int abc_seekbar_thumb_material=0x7f02003d; + public static final int abc_seekbar_tick_mark_material=0x7f02003e; + public static final int abc_seekbar_track_material=0x7f02003f; + public static final int abc_spinner_mtrl_am_alpha=0x7f020040; + public static final int abc_spinner_textfield_background_material=0x7f020041; + public static final int abc_switch_thumb_material=0x7f020042; + public static final int abc_switch_track_mtrl_alpha=0x7f020043; + public static final int abc_tab_indicator_material=0x7f020044; + public static final int abc_tab_indicator_mtrl_alpha=0x7f020045; + public static final int abc_text_cursor_material=0x7f020046; + public static final int abc_textfield_activated_mtrl_alpha=0x7f020047; + public static final int abc_textfield_default_mtrl_alpha=0x7f020048; + public static final int abc_textfield_search_activated_mtrl_alpha=0x7f020049; + public static final int abc_textfield_search_default_mtrl_alpha=0x7f02004a; + public static final int abc_textfield_search_material=0x7f02004b; + public static final int bg_wool_dark=0x7f02004c; + public static final int bitmap_wool_dark=0x7f02004d; + public static final int border_edittext=0x7f02004e; + public static final int control_button=0x7f02004f; + public static final int control_button_normal=0x7f020050; + public static final int control_button_pressed=0x7f020051; + public static final int design_fab_background=0x7f020052; + public static final int design_snackbar_background=0x7f020053; + public static final int ic_close=0x7f020054; + public static final int ic_file=0x7f020055; + public static final int ic_folder=0x7f020056; + public static final int ic_launcher=0x7f020057; + public static final int ic_minimize=0x7f020058; + public static final int logo=0x7f020059; + public static final int mcbtn_normal=0x7f02005a; + public static final int mcbtn_pressed=0x7f02005b; + public static final int mcbutton=0x7f02005c; + public static final int menu_hamburger=0x7f02005d; + public static final int mojang_logo=0x7f02005e; + public static final int mouse_pointer=0x7f02005f; + public static final int notification_template_icon_bg=0x7f020060; + } + public static final class id { + public static final int action0=0x7f06009b; + public static final int action_bar=0x7f06005d; + public static final int action_bar_activity_content=0x7f060002; + public static final int action_bar_container=0x7f06005c; + public static final int action_bar_root=0x7f060058; + public static final int action_bar_spinner=0x7f060003; + public static final int action_bar_subtitle=0x7f06003d; + public static final int action_bar_title=0x7f06003c; + public static final int action_context_bar=0x7f06005e; + public static final int action_divider=0x7f06009f; + public static final int action_menu_divider=0x7f060004; + public static final int action_menu_presenter=0x7f060005; + public static final int action_mode_bar=0x7f06005a; + public static final int action_mode_bar_stub=0x7f060059; + public static final int action_mode_close_button=0x7f06003e; + public static final int activity_chooser_view_content=0x7f06003f; + public static final int add=0x7f06002e; + public static final int alertTitle=0x7f06004b; + public static final int always=0x7f060037; + public static final int auto=0x7f060021; + public static final int beginning=0x7f060035; + public static final int bottom=0x7f060010; + public static final int bottombar_author_logo=0x7f06006d; + public static final int bottombar_version_view=0x7f06006c; + public static final int buttonPanel=0x7f060046; + public static final int cancel_action=0x7f06009c; + public static final int center=0x7f060011; + public static final int center_horizontal=0x7f060012; + public static final int center_vertical=0x7f060013; + public static final int checkbox=0x7f060054; + public static final int chronometer=0x7f0600a2; + public static final int clip_horizontal=0x7f06001d; + public static final int clip_vertical=0x7f06001e; + public static final int collapseActionView=0x7f060038; + public static final int contentPanel=0x7f06004c; + public static final int content_frame=0x7f060090; + public static final int content_log_close_button=0x7f060097; + public static final int content_log_layout=0x7f060096; + public static final int content_log_scroll=0x7f060099; + public static final int content_log_toggle_scrolldown=0x7f060098; + public static final int control_debug=0x7f0600a8; + public static final int control_down=0x7f0600ae; + public static final int control_inventory=0x7f0600b6; + public static final int control_jump=0x7f0600b2; + public static final int control_keyboard=0x7f0600aa; + public static final int control_left=0x7f0600b0; + public static final int control_listplayers=0x7f0600ad; + public static final int control_mouse_toggle=0x7f0600b7; + public static final int control_primary=0x7f0600b3; + public static final int control_right=0x7f0600b1; + public static final int control_screenshot=0x7f0600ac; + public static final int control_secondary=0x7f0600b4; + public static final int control_shift=0x7f0600b5; + public static final int control_talk=0x7f0600a9; + public static final int control_thirdperson=0x7f0600ab; + public static final int control_up=0x7f0600af; + public static final int custom=0x7f060052; + public static final int customPanel=0x7f060051; + public static final int decor_content_parent=0x7f06005b; + public static final int default_activity_button=0x7f060042; + public static final int design_bottom_sheet=0x7f06006f; + public static final int design_menu_item_action_area=0x7f060076; + public static final int design_menu_item_action_area_stub=0x7f060075; + public static final int design_menu_item_text=0x7f060074; + public static final int design_navigation_view=0x7f060073; + public static final int disableHome=0x7f060028; + public static final int edit_query=0x7f06005f; + public static final int end=0x7f060014; + public static final int end_padder=0x7f0600a7; + public static final int enterAlways=0x7f06000b; + public static final int enterAlwaysCollapsed=0x7f06000c; + public static final int exitUntilCollapsed=0x7f06000d; + public static final int expand_activities_button=0x7f060040; + public static final int expanded_menu=0x7f060053; + public static final int fill=0x7f06001f; + public static final int fill_horizontal=0x7f060020; + public static final int fill_vertical=0x7f060015; + public static final int fixed=0x7f060024; + public static final int home=0x7f060006; + public static final int homeAsUp=0x7f060029; + public static final int icon=0x7f060044; + public static final int ifRoom=0x7f060039; + public static final int image=0x7f060041; + public static final int info=0x7f0600a6; + public static final int item_touch_helper_previous_elevation=0x7f060000; + public static final int lMTVVer=0x7f060082; + public static final int launcherAccEmail=0x7f060077; + public static final int launcherAccOffSwitch=0x7f06007a; + public static final int launcherAccPassword=0x7f060078; + public static final int launcherAccProgress=0x7f06007b; + public static final int launcherAccRememberSwitch=0x7f060079; + public static final int launcherAccUsername=0x7f06008b; + public static final int launcherMainExitbtns=0x7f060088; + public static final int launcherMainLeftLayout=0x7f060081; + public static final int launcherMainPlayButton=0x7f060084; + public static final int launcherMainRightLayout=0x7f060085; + public static final int launcherMainSelectVersion=0x7f060083; + public static final int launcherMainUsernameView=0x7f060086; + public static final int launcherMainVersionView=0x7f060087; + public static final int launchermainFragmentTabView=0x7f06007c; + public static final int launchermainTabLayout=0x7f06007d; + public static final int launchermainTabPager=0x7f06007e; + public static final int launcherupdateLogView=0x7f06008a; + public static final int launcherupdateProgressBar=0x7f060089; + public static final int left=0x7f060016; + public static final int line1=0x7f0600a0; + public static final int line3=0x7f0600a4; + public static final int listMode=0x7f060026; + public static final int list_item=0x7f060043; + public static final int lmaintabconsoleLogCrashTextView=0x7f06008d; + public static final int lmaintabconsoleLogTextView=0x7f06008c; + public static final int lmaintabnewsNewsView=0x7f06008e; + public static final int main_control_overlay=0x7f060095; + public static final int main_drawer_options=0x7f06008f; + public static final int main_game_render_view=0x7f060092; + public static final int main_log_behind_GL=0x7f060091; + public static final int main_mouse_pointer=0x7f060094; + public static final int main_navigation_view=0x7f06009a; + public static final int main_touchpad=0x7f060093; + public static final int media_actions=0x7f06009e; + public static final int middle=0x7f060036; + public static final int mini=0x7f060022; + public static final int multiply=0x7f06002f; + public static final int nav_forceclose=0x7f0600c0; + public static final int nav_more3=0x7f0600c3; + public static final int nav_viewcanvas=0x7f0600c2; + public static final int nav_viewlog=0x7f0600c1; + public static final int navigation_header_container=0x7f060072; + public static final int never=0x7f06003a; + public static final int none=0x7f06001a; + public static final int normal=0x7f060023; + public static final int parallax=0x7f06001b; + public static final int parentPanel=0x7f060048; + public static final int pin=0x7f06001c; + public static final int progressDownloadBar=0x7f06007f; + public static final int progressDownloadText=0x7f060080; + public static final int progress_circular=0x7f060007; + public static final int progress_horizontal=0x7f060008; + public static final int radio=0x7f060056; + public static final int right=0x7f060017; + public static final int screen=0x7f060030; + public static final int scroll=0x7f06000e; + public static final int scrollIndicatorDown=0x7f060050; + public static final int scrollIndicatorUp=0x7f06004d; + public static final int scrollView=0x7f06004e; + public static final int scrollable=0x7f060025; + public static final int search_badge=0x7f060061; + public static final int search_bar=0x7f060060; + public static final int search_button=0x7f060062; + public static final int search_close_btn=0x7f060067; + public static final int search_edit_frame=0x7f060063; + public static final int search_go_btn=0x7f060069; + public static final int search_mag_icon=0x7f060064; + public static final int search_plate=0x7f060065; + public static final int search_src_text=0x7f060066; + public static final int search_voice_btn=0x7f06006a; + public static final int select_dialog_listview=0x7f06006b; + public static final int shortcut=0x7f060055; + public static final int showCustom=0x7f06002a; + public static final int showHome=0x7f06002b; + public static final int showTitle=0x7f06002c; + public static final int snackbar_action=0x7f060071; + public static final int snackbar_text=0x7f060070; + public static final int snap=0x7f06000f; + public static final int spacer=0x7f060047; + public static final int split_action_bar=0x7f060009; + public static final int src_atop=0x7f060031; + public static final int src_in=0x7f060032; + public static final int src_over=0x7f060033; + public static final int start=0x7f060018; + public static final int startscreenLinearLayout1=0x7f0600b8; + public static final int startscreenProgress=0x7f0600b9; + public static final int status_bar_latest_event_content=0x7f06009d; + public static final int submenuarrow=0x7f060057; + public static final int submit_area=0x7f060068; + public static final int tabMode=0x7f060027; + public static final int text=0x7f0600a5; + public static final int text2=0x7f0600a3; + public static final int textSpacerNoButtons=0x7f06004f; + public static final int time=0x7f0600a1; + public static final int title=0x7f060045; + public static final int title_template=0x7f06004a; + public static final int top=0x7f060019; + public static final int topPanel=0x7f060049; + public static final int topbar_earth_icon=0x7f0600ba; + public static final int topbar_help_text=0x7f0600bc; + public static final int topbar_language_text=0x7f0600bb; + public static final int topbar_logo=0x7f0600bd; + public static final int topbar_navmenu_icon=0x7f0600be; + public static final int topbar_undertop_view=0x7f0600bf; + public static final int touch_outside=0x7f06006e; + public static final int up=0x7f06000a; + public static final int useLogo=0x7f06002d; + public static final int view_offset_helper=0x7f060001; + public static final int vso_clone=0x7f0600c4; + public static final int vso_edit=0x7f0600c5; + public static final int vso_remove=0x7f0600c6; + public static final int withText=0x7f06003b; + public static final int wrap_content=0x7f060034; + } + public static final class integer { + public static final int abc_config_activityDefaultDur=0x7f080002; + public static final int abc_config_activityShortDur=0x7f080003; + public static final int bottom_sheet_slide_duration=0x7f080001; + public static final int cancel_button_image_alpha=0x7f080004; + public static final int design_snackbar_text_max_lines=0x7f080000; + public static final int status_bar_notification_info_maxnum=0x7f080005; + } + public static final class layout { + public static final int abc_action_bar_title_item=0x7f030000; + public static final int abc_action_bar_up_container=0x7f030001; + public static final int abc_action_bar_view_list_nav_layout=0x7f030002; + public static final int abc_action_menu_item_layout=0x7f030003; + public static final int abc_action_menu_layout=0x7f030004; + public static final int abc_action_mode_bar=0x7f030005; + public static final int abc_action_mode_close_item_material=0x7f030006; + public static final int abc_activity_chooser_view=0x7f030007; + public static final int abc_activity_chooser_view_list_item=0x7f030008; + public static final int abc_alert_dialog_button_bar_material=0x7f030009; + public static final int abc_alert_dialog_material=0x7f03000a; + public static final int abc_dialog_title_material=0x7f03000b; + public static final int abc_expanded_menu_layout=0x7f03000c; + public static final int abc_list_menu_item_checkbox=0x7f03000d; + public static final int abc_list_menu_item_icon=0x7f03000e; + public static final int abc_list_menu_item_layout=0x7f03000f; + public static final int abc_list_menu_item_radio=0x7f030010; + public static final int abc_popup_menu_header_item_layout=0x7f030011; + public static final int abc_popup_menu_item_layout=0x7f030012; + public static final int abc_screen_content_include=0x7f030013; + public static final int abc_screen_simple=0x7f030014; + public static final int abc_screen_simple_overlay_action_mode=0x7f030015; + public static final int abc_screen_toolbar=0x7f030016; + public static final int abc_search_dropdown_item_icons_2line=0x7f030017; + public static final int abc_search_view=0x7f030018; + public static final int abc_select_dialog_material=0x7f030019; + public static final int bottom_bar=0x7f03001a; + public static final int design_bottom_sheet_dialog=0x7f03001b; + public static final int design_layout_snackbar=0x7f03001c; + public static final int design_layout_snackbar_include=0x7f03001d; + public static final int design_layout_tab_icon=0x7f03001e; + public static final int design_layout_tab_text=0x7f03001f; + public static final int design_menu_item_action_area=0x7f030020; + public static final int design_navigation_item=0x7f030021; + public static final int design_navigation_item_header=0x7f030022; + public static final int design_navigation_item_separator=0x7f030023; + public static final int design_navigation_item_subheader=0x7f030024; + public static final int design_navigation_menu=0x7f030025; + public static final int design_navigation_menu_item=0x7f030026; + public static final int launcher_login=0x7f030027; + public static final int launcher_main=0x7f030028; + public static final int launcher_update=0x7f030029; + public static final int launcher_user=0x7f03002a; + public static final int lmaintab_consolelog=0x7f03002b; + public static final int lmaintab_crashlog=0x7f03002c; + public static final int lmaintab_news=0x7f03002d; + public static final int main=0x7f03002e; + public static final int notification_media_action=0x7f03002f; + public static final int notification_media_cancel_action=0x7f030030; + public static final int notification_template_big_media=0x7f030031; + public static final int notification_template_big_media_narrow=0x7f030032; + public static final int notification_template_lines=0x7f030033; + public static final int notification_template_media=0x7f030034; + public static final int notification_template_part_chronometer=0x7f030035; + public static final int notification_template_part_time=0x7f030036; + public static final int overlay=0x7f030037; + public static final int select_dialog_item_material=0x7f030038; + public static final int select_dialog_multichoice_material=0x7f030039; + public static final int select_dialog_singlechoice_material=0x7f03003a; + public static final int start_screen=0x7f03003b; + public static final int support_simple_spinner_dropdown_item=0x7f03003c; + public static final int top_bar=0x7f03003d; + } + public static final class menu { + public static final int menu_runopt=0x7f0d0000; + public static final int menu_versionopt=0x7f0d0001; + } + public static final class string { + public static final int abc_action_bar_home_description=0x7f0a0003; + public static final int abc_action_bar_home_description_format=0x7f0a0004; + public static final int abc_action_bar_home_subtitle_description_format=0x7f0a0005; + public static final int abc_action_bar_up_description=0x7f0a0006; + public static final int abc_action_menu_overflow_description=0x7f0a0007; + public static final int abc_action_mode_done=0x7f0a0008; + public static final int abc_activity_chooser_view_see_all=0x7f0a0009; + public static final int abc_activitychooserview_choose_application=0x7f0a000a; + public static final int abc_capital_off=0x7f0a000b; + public static final int abc_capital_on=0x7f0a000c; + public static final int abc_font_family_body_1_material=0x7f0a0017; + public static final int abc_font_family_body_2_material=0x7f0a0018; + public static final int abc_font_family_button_material=0x7f0a0019; + public static final int abc_font_family_caption_material=0x7f0a001a; + public static final int abc_font_family_display_1_material=0x7f0a001b; + public static final int abc_font_family_display_2_material=0x7f0a001c; + public static final int abc_font_family_display_3_material=0x7f0a001d; + public static final int abc_font_family_display_4_material=0x7f0a001e; + public static final int abc_font_family_headline_material=0x7f0a001f; + public static final int abc_font_family_menu_material=0x7f0a0020; + public static final int abc_font_family_subhead_material=0x7f0a0021; + public static final int abc_font_family_title_material=0x7f0a0022; + public static final int abc_search_hint=0x7f0a000d; + public static final int abc_searchview_description_clear=0x7f0a000e; + public static final int abc_searchview_description_query=0x7f0a000f; + public static final int abc_searchview_description_search=0x7f0a0010; + public static final int abc_searchview_description_submit=0x7f0a0011; + public static final int abc_searchview_description_voice=0x7f0a0012; + public static final int abc_shareactionprovider_share_with=0x7f0a0013; + public static final int abc_shareactionprovider_share_with_application=0x7f0a0014; + public static final int abc_toolbar_collapse_description=0x7f0a0015; + /** Action bar part + */ + public static final int actionbar_help=0x7f0a0025; + /** App name part + */ + public static final int app_name=0x7f0a0023; + public static final int app_short_name=0x7f0a0024; + public static final int appbar_scrolling_view_behavior=0x7f0a0000; + public static final int bottom_sheet_behavior=0x7f0a0001; + public static final int character_counter_pattern=0x7f0a0002; + public static final int control_chat=0x7f0a0061; + public static final int control_debug=0x7f0a0062; + public static final int control_down=0x7f0a006c; + /** MainActivity: Menu advanced controls + */ + public static final int control_forceclose=0x7f0a0072; + public static final int control_inventory=0x7f0a0068; + public static final int control_jump=0x7f0a006d; + /** MainActivity: Control buttons + */ + public static final int control_keyboard=0x7f0a0060; + public static final int control_left=0x7f0a006a; + public static final int control_listplayers=0x7f0a006f; + public static final int control_more2=0x7f0a0074; + public static final int control_more3=0x7f0a0075; + public static final int control_more4=0x7f0a0076; + public static final int control_mouseoff=0x7f0a0070; + public static final int control_mouseon=0x7f0a0071; + public static final int control_primary=0x7f0a0065; + public static final int control_right=0x7f0a006b; + public static final int control_screenshot=0x7f0a0063; + public static final int control_secondary=0x7f0a0066; + public static final int control_shift=0x7f0a0067; + public static final int control_thirdperson=0x7f0a006e; + public static final int control_up=0x7f0a0069; + public static final int control_viewout=0x7f0a0073; + public static final int controls=0x7f0a0064; + /** Error messages + */ + public static final int error_checklog=0x7f0a003e; + public static final int error_convert_client=0x7f0a0043; + public static final int error_convert_lib=0x7f0a0042; + public static final int error_load_version=0x7f0a0041; + public static final int error_no_version=0x7f0a0040; + public static final int error_show_less=0x7f0a0045; + public static final int error_show_more=0x7f0a0044; + public static final int error_title=0x7f0a003f; + /** Hint + */ + public static final int hint_select_account=0x7f0a0036; + /** Languages list part + */ + public static final int language_name=0x7f0a0026; + /** Logging output + */ + public static final int log_title=0x7f0a0027; + public static final int login_error_empty_username=0x7f0a0032; + public static final int login_error_exist_username=0x7f0a0034; + public static final int login_error_short_username=0x7f0a0033; + public static final int login_offline_alert_skip=0x7f0a0031; + public static final int login_offline_switch=0x7f0a002f; + public static final int login_offline_warning_1=0x7f0a0030; + public static final int login_online_create_account=0x7f0a002e; + public static final int login_online_login_label=0x7f0a002d; + public static final int login_online_password_hint=0x7f0a002a; + public static final int login_online_password_question=0x7f0a002b; + public static final int login_online_remember=0x7f0a002c; + /** Login strings + */ + public static final int login_online_username_hint=0x7f0a0028; + public static final int login_online_username_question=0x7f0a0029; + public static final int login_select_account=0x7f0a0035; + public static final int mcl_launch_cleancache=0x7f0a004c; + public static final int mcl_launch_convert_client=0x7f0a0051; + public static final int mcl_launch_convert_lib=0x7f0a0050; + public static final int mcl_launch_download_assets=0x7f0a0053; + public static final int mcl_launch_download_client=0x7f0a004f; + public static final int mcl_launch_download_lib=0x7f0a004e; + public static final int mcl_launch_downloading=0x7f0a004d; + public static final int mcl_launch_patch_client=0x7f0a0052; + public static final int mcl_option_about=0x7f0a0057; + public static final int mcl_option_checkupdate=0x7f0a0056; + public static final int mcl_option_modmgr=0x7f0a0055; + public static final int mcl_options=0x7f0a0054; + public static final int mcl_tab_console=0x7f0a0049; + public static final int mcl_tab_crash=0x7f0a004a; + /** + Exit + Exit + + MCLauncherActivity: Tabs + */ + public static final int mcl_tab_news=0x7f0a0048; + public static final int mcl_version_clone=0x7f0a0058; + public static final int mcl_version_edit=0x7f0a0059; + /** MCLauncherActivity: Strings + */ + public static final int mcl_version_msg=0x7f0a004b; + public static final int mcl_version_remove=0x7f0a005a; + public static final int mcn_exit_call=0x7f0a005c; + public static final int mcn_exit_confirm=0x7f0a005f; + public static final int mcn_exit_crash=0x7f0a005d; + public static final int mcn_exit_errcrash=0x7f0a005e; + /** + +%1$s BETA (Minecraft Java launcher for Android), version " + PathTools.usingVerName + "\n" + + " - by Khanh Duy Tran (based from \"Boardwalk\" app)\n" + + //"© 2019 Khanh Duy Tran\n" + + "Using libraries:\n" + + " • LWJGL " + org.lwjgl.Sys.getVersion() + "\n" + + //" • Boardwalk memory manager (not used now).\n" + + " • gl4es: OpenGL for OpenGL ES devices by lunixbochs and ptitSeb.\n" + + " • dx: tool to convert.\n" + + " • Java AWT Implementation includes:\n" + + " - Boardwalk's makeshift.\n" + + " - Apache Harmony AWT Framework.\n" + + " - OpenJDK 7 codes implementation.\n" + + " - Developer code implement (copy text, open browser,...)\n" + + "\n" + + "* Notes:\n" + + " - This app is currently BETA, it will not be stable.\n" + + //"* This app will unstable on Android 7.0 or higher devices.\n" + + " - This app only use LWJGL2 and don't have a JRE8 desugar, so doesn't support 1.13 or higher versions.\n" + + " - This app is not affiliated with Minecraft, Mojang or Microsoft.\n") + + + MainActivity: strings + */ + public static final int mcn_exit_title=0x7f0a005b; + public static final int status_bar_notification_info_overflow=0x7f0a0016; + public static final int toast_login_error=0x7f0a0047; + /** Toast messages + */ + public static final int toast_permission_denied=0x7f0a0046; + /** Update part (unused now) + */ + public static final int update_console=0x7f0a0077; + public static final int warning_action_exit=0x7f0a003c; + public static final int warning_action_install=0x7f0a003a; + public static final int warning_action_tryanyway=0x7f0a003b; + public static final int warning_msg=0x7f0a0038; + public static final int warning_noshowagain=0x7f0a0039; + public static final int warning_remove_account=0x7f0a003d; + /** Warning + */ + public static final int warning_title=0x7f0a0037; + } + public static final class style { + public static final int AlertDialog_AppCompat=0x7f0700a4; + public static final int AlertDialog_AppCompat_Light=0x7f0700a5; + public static final int AlertTheme=0x7f070167; + public static final int Animation_AppCompat_Dialog=0x7f0700a6; + public static final int Animation_AppCompat_DropDownUp=0x7f0700a7; + public static final int Animation_Design_BottomSheetDialog=0x7f070002; + public static final int AppTheme=0x7f070165; + public static final int Base_AlertDialog_AppCompat=0x7f0700a8; + public static final int Base_AlertDialog_AppCompat_Light=0x7f0700a9; + public static final int Base_Animation_AppCompat_Dialog=0x7f0700aa; + public static final int Base_Animation_AppCompat_DropDownUp=0x7f0700ab; + public static final int Base_DialogWindowTitle_AppCompat=0x7f0700ac; + public static final int Base_DialogWindowTitleBackground_AppCompat=0x7f0700ad; + public static final int Base_TextAppearance_AppCompat=0x7f070052; + public static final int Base_TextAppearance_AppCompat_Body1=0x7f070053; + public static final int Base_TextAppearance_AppCompat_Body2=0x7f070054; + public static final int Base_TextAppearance_AppCompat_Button=0x7f07003c; + public static final int Base_TextAppearance_AppCompat_Caption=0x7f070055; + public static final int Base_TextAppearance_AppCompat_Display1=0x7f070056; + public static final int Base_TextAppearance_AppCompat_Display2=0x7f070057; + public static final int Base_TextAppearance_AppCompat_Display3=0x7f070058; + public static final int Base_TextAppearance_AppCompat_Display4=0x7f070059; + public static final int Base_TextAppearance_AppCompat_Headline=0x7f07005a; + public static final int Base_TextAppearance_AppCompat_Inverse=0x7f070025; + public static final int Base_TextAppearance_AppCompat_Large=0x7f07005b; + public static final int Base_TextAppearance_AppCompat_Large_Inverse=0x7f070026; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f07005c; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f07005d; + public static final int Base_TextAppearance_AppCompat_Medium=0x7f07005e; + public static final int Base_TextAppearance_AppCompat_Medium_Inverse=0x7f070027; + public static final int Base_TextAppearance_AppCompat_Menu=0x7f07005f; + public static final int Base_TextAppearance_AppCompat_SearchResult=0x7f0700ae; + public static final int Base_TextAppearance_AppCompat_SearchResult_Subtitle=0x7f070060; + public static final int Base_TextAppearance_AppCompat_SearchResult_Title=0x7f070061; + public static final int Base_TextAppearance_AppCompat_Small=0x7f070062; + public static final int Base_TextAppearance_AppCompat_Small_Inverse=0x7f070028; + public static final int Base_TextAppearance_AppCompat_Subhead=0x7f070063; + public static final int Base_TextAppearance_AppCompat_Subhead_Inverse=0x7f070029; + public static final int Base_TextAppearance_AppCompat_Title=0x7f070064; + public static final int Base_TextAppearance_AppCompat_Title_Inverse=0x7f07002a; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f07009d; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f070065; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f070066; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f070067; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f070068; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f070069; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f07006a; + public static final int Base_TextAppearance_AppCompat_Widget_Button=0x7f07006b; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Inverse=0x7f07009e; + public static final int Base_TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700af; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f07006c; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f07006d; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f07006e; + public static final int Base_TextAppearance_AppCompat_Widget_Switch=0x7f07006f; + public static final int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070070; + public static final int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f0700b0; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070071; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070072; + public static final int Base_Theme_AppCompat=0x7f070073; + public static final int Base_Theme_AppCompat_CompactMenu=0x7f0700b1; + public static final int Base_Theme_AppCompat_Dialog=0x7f07002b; + public static final int Base_Theme_AppCompat_Dialog_Alert=0x7f0700b2; + public static final int Base_Theme_AppCompat_Dialog_FixedSize=0x7f0700b3; + public static final int Base_Theme_AppCompat_Dialog_MinWidth=0x7f0700b4; + public static final int Base_Theme_AppCompat_DialogWhenLarge=0x7f07001b; + public static final int Base_Theme_AppCompat_Light=0x7f070074; + public static final int Base_Theme_AppCompat_Light_DarkActionBar=0x7f0700b5; + public static final int Base_Theme_AppCompat_Light_Dialog=0x7f07002c; + public static final int Base_Theme_AppCompat_Light_Dialog_Alert=0x7f0700b6; + public static final int Base_Theme_AppCompat_Light_Dialog_FixedSize=0x7f0700b7; + public static final int Base_Theme_AppCompat_Light_Dialog_MinWidth=0x7f0700b8; + public static final int Base_Theme_AppCompat_Light_DialogWhenLarge=0x7f07001c; + public static final int Base_ThemeOverlay_AppCompat=0x7f0700b9; + public static final int Base_ThemeOverlay_AppCompat_ActionBar=0x7f0700ba; + public static final int Base_ThemeOverlay_AppCompat_Dark=0x7f0700bb; + public static final int Base_ThemeOverlay_AppCompat_Dark_ActionBar=0x7f0700bc; + public static final int Base_ThemeOverlay_AppCompat_Dialog=0x7f07002d; + public static final int Base_ThemeOverlay_AppCompat_Dialog_Alert=0x7f0700bd; + public static final int Base_ThemeOverlay_AppCompat_Light=0x7f0700be; + public static final int Base_V11_Theme_AppCompat_Dialog=0x7f07002e; + public static final int Base_V11_Theme_AppCompat_Light_Dialog=0x7f07002f; + public static final int Base_V11_ThemeOverlay_AppCompat_Dialog=0x7f070030; + public static final int Base_V12_Widget_AppCompat_AutoCompleteTextView=0x7f070038; + public static final int Base_V12_Widget_AppCompat_EditText=0x7f070039; + public static final int Base_V21_Theme_AppCompat=0x7f070075; + public static final int Base_V21_Theme_AppCompat_Dialog=0x7f070076; + public static final int Base_V21_Theme_AppCompat_Light=0x7f070077; + public static final int Base_V21_Theme_AppCompat_Light_Dialog=0x7f070078; + public static final int Base_V21_ThemeOverlay_AppCompat_Dialog=0x7f070079; + public static final int Base_V22_Theme_AppCompat=0x7f07009b; + public static final int Base_V22_Theme_AppCompat_Light=0x7f07009c; + public static final int Base_V23_Theme_AppCompat=0x7f07009f; + public static final int Base_V23_Theme_AppCompat_Light=0x7f0700a0; + public static final int Base_V7_Theme_AppCompat=0x7f0700bf; + public static final int Base_V7_Theme_AppCompat_Dialog=0x7f0700c0; + public static final int Base_V7_Theme_AppCompat_Light=0x7f0700c1; + public static final int Base_V7_Theme_AppCompat_Light_Dialog=0x7f0700c2; + public static final int Base_V7_ThemeOverlay_AppCompat_Dialog=0x7f0700c3; + public static final int Base_V7_Widget_AppCompat_AutoCompleteTextView=0x7f0700c4; + public static final int Base_V7_Widget_AppCompat_EditText=0x7f0700c5; + public static final int Base_Widget_AppCompat_ActionBar=0x7f0700c6; + public static final int Base_Widget_AppCompat_ActionBar_Solid=0x7f0700c7; + public static final int Base_Widget_AppCompat_ActionBar_TabBar=0x7f0700c8; + public static final int Base_Widget_AppCompat_ActionBar_TabText=0x7f07007a; + public static final int Base_Widget_AppCompat_ActionBar_TabView=0x7f07007b; + public static final int Base_Widget_AppCompat_ActionButton=0x7f07007c; + public static final int Base_Widget_AppCompat_ActionButton_CloseMode=0x7f07007d; + public static final int Base_Widget_AppCompat_ActionButton_Overflow=0x7f07007e; + public static final int Base_Widget_AppCompat_ActionMode=0x7f0700c9; + public static final int Base_Widget_AppCompat_ActivityChooserView=0x7f0700ca; + public static final int Base_Widget_AppCompat_AutoCompleteTextView=0x7f07003a; + public static final int Base_Widget_AppCompat_Button=0x7f07007f; + public static final int Base_Widget_AppCompat_Button_Borderless=0x7f070080; + public static final int Base_Widget_AppCompat_Button_Borderless_Colored=0x7f070081; + public static final int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f0700cb; + public static final int Base_Widget_AppCompat_Button_Colored=0x7f0700a1; + public static final int Base_Widget_AppCompat_Button_Small=0x7f070082; + public static final int Base_Widget_AppCompat_ButtonBar=0x7f070083; + public static final int Base_Widget_AppCompat_ButtonBar_AlertDialog=0x7f0700cc; + public static final int Base_Widget_AppCompat_CompoundButton_CheckBox=0x7f070084; + public static final int Base_Widget_AppCompat_CompoundButton_RadioButton=0x7f070085; + public static final int Base_Widget_AppCompat_CompoundButton_Switch=0x7f0700cd; + public static final int Base_Widget_AppCompat_DrawerArrowToggle=0x7f07001a; + public static final int Base_Widget_AppCompat_DrawerArrowToggle_Common=0x7f0700ce; + public static final int Base_Widget_AppCompat_DropDownItem_Spinner=0x7f070086; + public static final int Base_Widget_AppCompat_EditText=0x7f07003b; + public static final int Base_Widget_AppCompat_ImageButton=0x7f070087; + public static final int Base_Widget_AppCompat_Light_ActionBar=0x7f0700cf; + public static final int Base_Widget_AppCompat_Light_ActionBar_Solid=0x7f0700d0; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabBar=0x7f0700d1; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText=0x7f070088; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f070089; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabView=0x7f07008a; + public static final int Base_Widget_AppCompat_Light_PopupMenu=0x7f07008b; + public static final int Base_Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07008c; + public static final int Base_Widget_AppCompat_ListMenuView=0x7f0700d2; + public static final int Base_Widget_AppCompat_ListPopupWindow=0x7f07008d; + public static final int Base_Widget_AppCompat_ListView=0x7f07008e; + public static final int Base_Widget_AppCompat_ListView_DropDown=0x7f07008f; + public static final int Base_Widget_AppCompat_ListView_Menu=0x7f070090; + public static final int Base_Widget_AppCompat_PopupMenu=0x7f070091; + public static final int Base_Widget_AppCompat_PopupMenu_Overflow=0x7f070092; + public static final int Base_Widget_AppCompat_PopupWindow=0x7f0700d3; + public static final int Base_Widget_AppCompat_ProgressBar=0x7f070031; + public static final int Base_Widget_AppCompat_ProgressBar_Horizontal=0x7f070032; + public static final int Base_Widget_AppCompat_RatingBar=0x7f070093; + public static final int Base_Widget_AppCompat_RatingBar_Indicator=0x7f0700a2; + public static final int Base_Widget_AppCompat_RatingBar_Small=0x7f0700a3; + public static final int Base_Widget_AppCompat_SearchView=0x7f0700d4; + public static final int Base_Widget_AppCompat_SearchView_ActionBar=0x7f0700d5; + public static final int Base_Widget_AppCompat_SeekBar=0x7f070094; + public static final int Base_Widget_AppCompat_SeekBar_Discrete=0x7f0700d6; + public static final int Base_Widget_AppCompat_Spinner=0x7f070095; + public static final int Base_Widget_AppCompat_Spinner_Underlined=0x7f07001d; + public static final int Base_Widget_AppCompat_TextView_SpinnerItem=0x7f070096; + public static final int Base_Widget_AppCompat_Toolbar=0x7f0700d7; + public static final int Base_Widget_AppCompat_Toolbar_Button_Navigation=0x7f070097; + public static final int Base_Widget_Design_AppBarLayout=0x7f070003; + public static final int Base_Widget_Design_TabLayout=0x7f070004; + public static final int MenuDialog=0x7f070168; + public static final int MenuDialogAnimation=0x7f070169; + public static final int Platform_AppCompat=0x7f070033; + public static final int Platform_AppCompat_Light=0x7f070034; + public static final int Platform_ThemeOverlay_AppCompat=0x7f070098; + public static final int Platform_ThemeOverlay_AppCompat_Dark=0x7f070099; + public static final int Platform_ThemeOverlay_AppCompat_Light=0x7f07009a; + public static final int Platform_V11_AppCompat=0x7f070035; + public static final int Platform_V11_AppCompat_Light=0x7f070036; + public static final int Platform_V14_AppCompat=0x7f07003d; + public static final int Platform_V14_AppCompat_Light=0x7f07003e; + public static final int Platform_Widget_AppCompat_Spinner=0x7f070037; + public static final int RtlOverlay_DialogWindowTitle_AppCompat=0x7f070044; + public static final int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem=0x7f070045; + public static final int RtlOverlay_Widget_AppCompat_DialogTitle_Icon=0x7f070046; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem=0x7f070047; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup=0x7f070048; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text=0x7f070049; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown=0x7f07004a; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1=0x7f07004b; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2=0x7f07004c; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Query=0x7f07004d; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Text=0x7f07004e; + public static final int RtlOverlay_Widget_AppCompat_SearchView_MagIcon=0x7f07004f; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton=0x7f070050; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow=0x7f070051; + public static final int RunTheme=0x7f070166; + public static final int TextAppearance_AppCompat=0x7f0700d8; + public static final int TextAppearance_AppCompat_Body1=0x7f0700d9; + public static final int TextAppearance_AppCompat_Body2=0x7f0700da; + public static final int TextAppearance_AppCompat_Button=0x7f0700db; + public static final int TextAppearance_AppCompat_Caption=0x7f0700dc; + public static final int TextAppearance_AppCompat_Display1=0x7f0700dd; + public static final int TextAppearance_AppCompat_Display2=0x7f0700de; + public static final int TextAppearance_AppCompat_Display3=0x7f0700df; + public static final int TextAppearance_AppCompat_Display4=0x7f0700e0; + public static final int TextAppearance_AppCompat_Headline=0x7f0700e1; + public static final int TextAppearance_AppCompat_Inverse=0x7f0700e2; + public static final int TextAppearance_AppCompat_Large=0x7f0700e3; + public static final int TextAppearance_AppCompat_Large_Inverse=0x7f0700e4; + public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle=0x7f0700e5; + public static final int TextAppearance_AppCompat_Light_SearchResult_Title=0x7f0700e6; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f0700e7; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f0700e8; + public static final int TextAppearance_AppCompat_Medium=0x7f0700e9; + public static final int TextAppearance_AppCompat_Medium_Inverse=0x7f0700ea; + public static final int TextAppearance_AppCompat_Menu=0x7f0700eb; + public static final int TextAppearance_AppCompat_SearchResult_Subtitle=0x7f0700ec; + public static final int TextAppearance_AppCompat_SearchResult_Title=0x7f0700ed; + public static final int TextAppearance_AppCompat_Small=0x7f0700ee; + public static final int TextAppearance_AppCompat_Small_Inverse=0x7f0700ef; + public static final int TextAppearance_AppCompat_Subhead=0x7f0700f0; + public static final int TextAppearance_AppCompat_Subhead_Inverse=0x7f0700f1; + public static final int TextAppearance_AppCompat_Title=0x7f0700f2; + public static final int TextAppearance_AppCompat_Title_Inverse=0x7f0700f3; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f0700f4; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f0700f5; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f0700f6; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f0700f7; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f0700f8; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f0700f9; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse=0x7f0700fa; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f0700fb; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse=0x7f0700fc; + public static final int TextAppearance_AppCompat_Widget_Button=0x7f0700fd; + public static final int TextAppearance_AppCompat_Widget_Button_Inverse=0x7f0700fe; + public static final int TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700ff; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f070100; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f070101; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f070102; + public static final int TextAppearance_AppCompat_Widget_Switch=0x7f070103; + public static final int TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070104; + public static final int TextAppearance_Design_CollapsingToolbar_Expanded=0x7f070005; + public static final int TextAppearance_Design_Counter=0x7f070006; + public static final int TextAppearance_Design_Counter_Overflow=0x7f070007; + public static final int TextAppearance_Design_Error=0x7f070008; + public static final int TextAppearance_Design_Hint=0x7f070009; + public static final int TextAppearance_Design_Snackbar_Message=0x7f07000a; + public static final int TextAppearance_Design_Tab=0x7f07000b; + public static final int TextAppearance_StatusBar_EventContent=0x7f07003f; + public static final int TextAppearance_StatusBar_EventContent_Info=0x7f070040; + public static final int TextAppearance_StatusBar_EventContent_Line2=0x7f070041; + public static final int TextAppearance_StatusBar_EventContent_Time=0x7f070042; + public static final int TextAppearance_StatusBar_EventContent_Title=0x7f070043; + public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f070105; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070106; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070107; + public static final int Theme_AppCompat=0x7f070108; + public static final int Theme_AppCompat_CompactMenu=0x7f070109; + public static final int Theme_AppCompat_DayNight=0x7f07001e; + public static final int Theme_AppCompat_DayNight_DarkActionBar=0x7f07001f; + public static final int Theme_AppCompat_DayNight_Dialog=0x7f070020; + public static final int Theme_AppCompat_DayNight_Dialog_Alert=0x7f070021; + public static final int Theme_AppCompat_DayNight_Dialog_MinWidth=0x7f070022; + public static final int Theme_AppCompat_DayNight_DialogWhenLarge=0x7f070023; + public static final int Theme_AppCompat_DayNight_NoActionBar=0x7f070024; + public static final int Theme_AppCompat_Dialog=0x7f07010a; + public static final int Theme_AppCompat_Dialog_Alert=0x7f07010b; + public static final int Theme_AppCompat_Dialog_MinWidth=0x7f07010c; + public static final int Theme_AppCompat_DialogWhenLarge=0x7f07010d; + public static final int Theme_AppCompat_Light=0x7f07010e; + public static final int Theme_AppCompat_Light_DarkActionBar=0x7f07010f; + public static final int Theme_AppCompat_Light_Dialog=0x7f070110; + public static final int Theme_AppCompat_Light_Dialog_Alert=0x7f070111; + public static final int Theme_AppCompat_Light_Dialog_MinWidth=0x7f070112; + public static final int Theme_AppCompat_Light_DialogWhenLarge=0x7f070113; + public static final int Theme_AppCompat_Light_NoActionBar=0x7f070114; + public static final int Theme_AppCompat_NoActionBar=0x7f070115; + public static final int Theme_Design=0x7f07000c; + public static final int Theme_Design_BottomSheetDialog=0x7f07000d; + public static final int Theme_Design_Light=0x7f07000e; + public static final int Theme_Design_Light_BottomSheetDialog=0x7f07000f; + public static final int Theme_Design_Light_NoActionBar=0x7f070010; + public static final int Theme_Design_NoActionBar=0x7f070011; + public static final int ThemeOverlay_AppCompat=0x7f070116; + public static final int ThemeOverlay_AppCompat_ActionBar=0x7f070117; + public static final int ThemeOverlay_AppCompat_Dark=0x7f070118; + public static final int ThemeOverlay_AppCompat_Dark_ActionBar=0x7f070119; + public static final int ThemeOverlay_AppCompat_Dialog=0x7f07011a; + public static final int ThemeOverlay_AppCompat_Dialog_Alert=0x7f07011b; + public static final int ThemeOverlay_AppCompat_Light=0x7f07011c; + public static final int Widget_AppCompat_ActionBar=0x7f07011d; + public static final int Widget_AppCompat_ActionBar_Solid=0x7f07011e; + public static final int Widget_AppCompat_ActionBar_TabBar=0x7f07011f; + public static final int Widget_AppCompat_ActionBar_TabText=0x7f070120; + public static final int Widget_AppCompat_ActionBar_TabView=0x7f070121; + public static final int Widget_AppCompat_ActionButton=0x7f070122; + public static final int Widget_AppCompat_ActionButton_CloseMode=0x7f070123; + public static final int Widget_AppCompat_ActionButton_Overflow=0x7f070124; + public static final int Widget_AppCompat_ActionMode=0x7f070125; + public static final int Widget_AppCompat_ActivityChooserView=0x7f070126; + public static final int Widget_AppCompat_AutoCompleteTextView=0x7f070127; + public static final int Widget_AppCompat_Button=0x7f070128; + public static final int Widget_AppCompat_Button_Borderless=0x7f070129; + public static final int Widget_AppCompat_Button_Borderless_Colored=0x7f07012a; + public static final int Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f07012b; + public static final int Widget_AppCompat_Button_Colored=0x7f07012c; + public static final int Widget_AppCompat_Button_Small=0x7f07012d; + public static final int Widget_AppCompat_ButtonBar=0x7f07012e; + public static final int Widget_AppCompat_ButtonBar_AlertDialog=0x7f07012f; + public static final int Widget_AppCompat_CompoundButton_CheckBox=0x7f070130; + public static final int Widget_AppCompat_CompoundButton_RadioButton=0x7f070131; + public static final int Widget_AppCompat_CompoundButton_Switch=0x7f070132; + public static final int Widget_AppCompat_DrawerArrowToggle=0x7f070133; + public static final int Widget_AppCompat_DropDownItem_Spinner=0x7f070134; + public static final int Widget_AppCompat_EditText=0x7f070135; + public static final int Widget_AppCompat_ImageButton=0x7f070136; + public static final int Widget_AppCompat_Light_ActionBar=0x7f070137; + public static final int Widget_AppCompat_Light_ActionBar_Solid=0x7f070138; + public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse=0x7f070139; + public static final int Widget_AppCompat_Light_ActionBar_TabBar=0x7f07013a; + public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse=0x7f07013b; + public static final int Widget_AppCompat_Light_ActionBar_TabText=0x7f07013c; + public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f07013d; + public static final int Widget_AppCompat_Light_ActionBar_TabView=0x7f07013e; + public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse=0x7f07013f; + public static final int Widget_AppCompat_Light_ActionButton=0x7f070140; + public static final int Widget_AppCompat_Light_ActionButton_CloseMode=0x7f070141; + public static final int Widget_AppCompat_Light_ActionButton_Overflow=0x7f070142; + public static final int Widget_AppCompat_Light_ActionMode_Inverse=0x7f070143; + public static final int Widget_AppCompat_Light_ActivityChooserView=0x7f070144; + public static final int Widget_AppCompat_Light_AutoCompleteTextView=0x7f070145; + public static final int Widget_AppCompat_Light_DropDownItem_Spinner=0x7f070146; + public static final int Widget_AppCompat_Light_ListPopupWindow=0x7f070147; + public static final int Widget_AppCompat_Light_ListView_DropDown=0x7f070148; + public static final int Widget_AppCompat_Light_PopupMenu=0x7f070149; + public static final int Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07014a; + public static final int Widget_AppCompat_Light_SearchView=0x7f07014b; + public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar=0x7f07014c; + public static final int Widget_AppCompat_ListMenuView=0x7f07014d; + public static final int Widget_AppCompat_ListPopupWindow=0x7f07014e; + public static final int Widget_AppCompat_ListView=0x7f07014f; + public static final int Widget_AppCompat_ListView_DropDown=0x7f070150; + public static final int Widget_AppCompat_ListView_Menu=0x7f070151; + public static final int Widget_AppCompat_PopupMenu=0x7f070152; + public static final int Widget_AppCompat_PopupMenu_Overflow=0x7f070153; + public static final int Widget_AppCompat_PopupWindow=0x7f070154; + public static final int Widget_AppCompat_ProgressBar=0x7f070155; + public static final int Widget_AppCompat_ProgressBar_Horizontal=0x7f070156; + public static final int Widget_AppCompat_RatingBar=0x7f070157; + public static final int Widget_AppCompat_RatingBar_Indicator=0x7f070158; + public static final int Widget_AppCompat_RatingBar_Small=0x7f070159; + public static final int Widget_AppCompat_SearchView=0x7f07015a; + public static final int Widget_AppCompat_SearchView_ActionBar=0x7f07015b; + public static final int Widget_AppCompat_SeekBar=0x7f07015c; + public static final int Widget_AppCompat_SeekBar_Discrete=0x7f07015d; + public static final int Widget_AppCompat_Spinner=0x7f07015e; + public static final int Widget_AppCompat_Spinner_DropDown=0x7f07015f; + public static final int Widget_AppCompat_Spinner_DropDown_ActionBar=0x7f070160; + public static final int Widget_AppCompat_Spinner_Underlined=0x7f070161; + public static final int Widget_AppCompat_TextView_SpinnerItem=0x7f070162; + public static final int Widget_AppCompat_Toolbar=0x7f070163; + public static final int Widget_AppCompat_Toolbar_Button_Navigation=0x7f070164; + public static final int Widget_Design_AppBarLayout=0x7f070001; + public static final int Widget_Design_BottomSheet_Modal=0x7f070012; + public static final int Widget_Design_CollapsingToolbar=0x7f070013; + public static final int Widget_Design_CoordinatorLayout=0x7f070014; + public static final int Widget_Design_FloatingActionButton=0x7f070015; + public static final int Widget_Design_NavigationView=0x7f070016; + public static final int Widget_Design_ScrimInsetsFrameLayout=0x7f070017; + public static final int Widget_Design_Snackbar=0x7f070018; + public static final int Widget_Design_TabLayout=0x7f070000; + public static final int Widget_Design_TextInputLayout=0x7f070019; + } + public static final class styleable { + /** Attributes that can be used with a ActionBar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #ActionBar_background net.kdt.pojavlaunch:background}
{@link #ActionBar_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionBar_backgroundStacked net.kdt.pojavlaunch:backgroundStacked}
{@link #ActionBar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #ActionBar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #ActionBar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #ActionBar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #ActionBar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #ActionBar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #ActionBar_customNavigationLayout net.kdt.pojavlaunch:customNavigationLayout}
{@link #ActionBar_displayOptions net.kdt.pojavlaunch:displayOptions}
{@link #ActionBar_divider net.kdt.pojavlaunch:divider}
{@link #ActionBar_elevation net.kdt.pojavlaunch:elevation}
{@link #ActionBar_height net.kdt.pojavlaunch:height}
{@link #ActionBar_hideOnContentScroll net.kdt.pojavlaunch:hideOnContentScroll}
{@link #ActionBar_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #ActionBar_homeLayout net.kdt.pojavlaunch:homeLayout}
{@link #ActionBar_icon net.kdt.pojavlaunch:icon}
{@link #ActionBar_indeterminateProgressStyle net.kdt.pojavlaunch:indeterminateProgressStyle}
{@link #ActionBar_itemPadding net.kdt.pojavlaunch:itemPadding}
{@link #ActionBar_logo net.kdt.pojavlaunch:logo}
{@link #ActionBar_navigationMode net.kdt.pojavlaunch:navigationMode}
{@link #ActionBar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #ActionBar_progressBarPadding net.kdt.pojavlaunch:progressBarPadding}
{@link #ActionBar_progressBarStyle net.kdt.pojavlaunch:progressBarStyle}
{@link #ActionBar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #ActionBar_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionBar_title net.kdt.pojavlaunch:title}
{@link #ActionBar_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionBar_background + @see #ActionBar_backgroundSplit + @see #ActionBar_backgroundStacked + @see #ActionBar_contentInsetEnd + @see #ActionBar_contentInsetEndWithActions + @see #ActionBar_contentInsetLeft + @see #ActionBar_contentInsetRight + @see #ActionBar_contentInsetStart + @see #ActionBar_contentInsetStartWithNavigation + @see #ActionBar_customNavigationLayout + @see #ActionBar_displayOptions + @see #ActionBar_divider + @see #ActionBar_elevation + @see #ActionBar_height + @see #ActionBar_hideOnContentScroll + @see #ActionBar_homeAsUpIndicator + @see #ActionBar_homeLayout + @see #ActionBar_icon + @see #ActionBar_indeterminateProgressStyle + @see #ActionBar_itemPadding + @see #ActionBar_logo + @see #ActionBar_navigationMode + @see #ActionBar_popupTheme + @see #ActionBar_progressBarPadding + @see #ActionBar_progressBarStyle + @see #ActionBar_subtitle + @see #ActionBar_subtitleTextStyle + @see #ActionBar_title + @see #ActionBar_titleTextStyle + */ + public static final int[] ActionBar = { + 0x7f01004f, 0x7f010051, 0x7f010052, 0x7f010053, + 0x7f010054, 0x7f010055, 0x7f010056, 0x7f010057, + 0x7f010058, 0x7f010059, 0x7f01005a, 0x7f01005b, + 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f, + 0x7f010060, 0x7f010061, 0x7f010062, 0x7f010063, + 0x7f010064, 0x7f010065, 0x7f010066, 0x7f010067, + 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b, + 0x7f0100a8 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionBar_background = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionBar_backgroundSplit = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundStacked} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundStacked + */ + public static final int ActionBar_backgroundStacked = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int ActionBar_contentInsetEnd = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int ActionBar_contentInsetEndWithActions = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int ActionBar_contentInsetLeft = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int ActionBar_contentInsetRight = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int ActionBar_contentInsetStart = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int ActionBar_contentInsetStartWithNavigation = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#customNavigationLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:customNavigationLayout + */ + public static final int ActionBar_customNavigationLayout = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#displayOptions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ @attr name net.kdt.pojavlaunch:displayOptions + */ + public static final int ActionBar_displayOptions = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int ActionBar_divider = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int ActionBar_elevation = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionBar_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hideOnContentScroll} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hideOnContentScroll + */ + public static final int ActionBar_hideOnContentScroll = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int ActionBar_homeAsUpIndicator = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeLayout + */ + public static final int ActionBar_homeLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#icon} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:icon + */ + public static final int ActionBar_icon = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#indeterminateProgressStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:indeterminateProgressStyle + */ + public static final int ActionBar_indeterminateProgressStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemPadding + */ + public static final int ActionBar_itemPadding = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int ActionBar_logo = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationMode} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ @attr name net.kdt.pojavlaunch:navigationMode + */ + public static final int ActionBar_navigationMode = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int ActionBar_popupTheme = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:progressBarPadding + */ + public static final int ActionBar_progressBarPadding = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:progressBarStyle + */ + public static final int ActionBar_progressBarStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int ActionBar_subtitle = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionBar_subtitleTextStyle = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int ActionBar_title = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionBar_titleTextStyle = 5; + /** Attributes that can be used with a ActionBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionBarLayout_android_layout_gravity android:layout_gravity}
+ @see #ActionBarLayout_android_layout_gravity + */ + public static final int[] ActionBarLayout = { + 0x010100b3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #ActionBarLayout} array. + @attr name android:layout_gravity + */ + public static final int ActionBarLayout_android_layout_gravity = 0; + /** Attributes that can be used with a ActionMenuItemView. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionMenuItemView_android_minWidth android:minWidth}
+ @see #ActionMenuItemView_android_minWidth + */ + public static final int[] ActionMenuItemView = { + 0x0101013f + }; + /** +

This symbol is the offset where the {@link android.R.attr#minWidth} + attribute's value can be found in the {@link #ActionMenuItemView} array. + @attr name android:minWidth + */ + public static final int ActionMenuItemView_android_minWidth = 0; + /** Attributes that can be used with a ActionMenuView. + */ + public static final int[] ActionMenuView = { + + }; + /** Attributes that can be used with a ActionMode. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #ActionMode_background net.kdt.pojavlaunch:background}
{@link #ActionMode_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionMode_closeItemLayout net.kdt.pojavlaunch:closeItemLayout}
{@link #ActionMode_height net.kdt.pojavlaunch:height}
{@link #ActionMode_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionMode_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionMode_background + @see #ActionMode_backgroundSplit + @see #ActionMode_closeItemLayout + @see #ActionMode_height + @see #ActionMode_subtitleTextStyle + @see #ActionMode_titleTextStyle + */ + public static final int[] ActionMode = { + 0x7f01004f, 0x7f010055, 0x7f010056, 0x7f01005a, + 0x7f01005c, 0x7f01006c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionMode_background = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionMode} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionMode_backgroundSplit = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeItemLayout} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeItemLayout + */ + public static final int ActionMode_closeItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionMode_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionMode_subtitleTextStyle = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionMode_titleTextStyle = 1; + /** Attributes that can be used with a ActivityChooserView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ActivityChooserView_expandActivityOverflowButtonDrawable net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable}
{@link #ActivityChooserView_initialActivityCount net.kdt.pojavlaunch:initialActivityCount}
+ @see #ActivityChooserView_expandActivityOverflowButtonDrawable + @see #ActivityChooserView_initialActivityCount + */ + public static final int[] ActivityChooserView = { + 0x7f01006d, 0x7f01006e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandActivityOverflowButtonDrawable} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable + */ + public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#initialActivityCount} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:initialActivityCount + */ + public static final int ActivityChooserView_initialActivityCount = 0; + /** Attributes that can be used with a AlertDialog. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #AlertDialog_android_layout android:layout}
{@link #AlertDialog_buttonPanelSideLayout net.kdt.pojavlaunch:buttonPanelSideLayout}
{@link #AlertDialog_listItemLayout net.kdt.pojavlaunch:listItemLayout}
{@link #AlertDialog_listLayout net.kdt.pojavlaunch:listLayout}
{@link #AlertDialog_multiChoiceItemLayout net.kdt.pojavlaunch:multiChoiceItemLayout}
{@link #AlertDialog_singleChoiceItemLayout net.kdt.pojavlaunch:singleChoiceItemLayout}
+ @see #AlertDialog_android_layout + @see #AlertDialog_buttonPanelSideLayout + @see #AlertDialog_listItemLayout + @see #AlertDialog_listLayout + @see #AlertDialog_multiChoiceItemLayout + @see #AlertDialog_singleChoiceItemLayout + */ + public static final int[] AlertDialog = { + 0x010100f2, 0x7f01006f, 0x7f010070, 0x7f010071, + 0x7f010072, 0x7f010073 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #AlertDialog} array. + @attr name android:layout + */ + public static final int AlertDialog_android_layout = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonPanelSideLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonPanelSideLayout + */ + public static final int AlertDialog_buttonPanelSideLayout = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listItemLayout + */ + public static final int AlertDialog_listItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listLayout + */ + public static final int AlertDialog_listLayout = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#multiChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:multiChoiceItemLayout + */ + public static final int AlertDialog_multiChoiceItemLayout = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#singleChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:singleChoiceItemLayout + */ + public static final int AlertDialog_singleChoiceItemLayout = 4; + /** Attributes that can be used with a AppBarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #AppBarLayout_android_background android:background}
{@link #AppBarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #AppBarLayout_expanded net.kdt.pojavlaunch:expanded}
+ @see #AppBarLayout_android_background + @see #AppBarLayout_elevation + @see #AppBarLayout_expanded + */ + public static final int[] AppBarLayout = { + 0x010100d4, 0x7f010004, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #AppBarLayout} array. + @attr name android:background + */ + public static final int AppBarLayout_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int AppBarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expanded} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expanded + */ + public static final int AppBarLayout_expanded = 1; + /** Attributes that can be used with a AppBarLayoutStates. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayoutStates_state_collapsed net.kdt.pojavlaunch:state_collapsed}
{@link #AppBarLayoutStates_state_collapsible net.kdt.pojavlaunch:state_collapsible}
+ @see #AppBarLayoutStates_state_collapsed + @see #AppBarLayoutStates_state_collapsible + */ + public static final int[] AppBarLayoutStates = { + 0x7f010005, 0x7f010006 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsed} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsed + */ + public static final int AppBarLayoutStates_state_collapsed = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsible} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsible + */ + public static final int AppBarLayoutStates_state_collapsible = 1; + /** Attributes that can be used with a AppBarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayout_Layout_layout_scrollFlags net.kdt.pojavlaunch:layout_scrollFlags}
{@link #AppBarLayout_Layout_layout_scrollInterpolator net.kdt.pojavlaunch:layout_scrollInterpolator}
+ @see #AppBarLayout_Layout_layout_scrollFlags + @see #AppBarLayout_Layout_layout_scrollInterpolator + */ + public static final int[] AppBarLayout_Layout = { + 0x7f010007, 0x7f010008 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollFlags} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ @attr name net.kdt.pojavlaunch:layout_scrollFlags + */ + public static final int AppBarLayout_Layout_layout_scrollFlags = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollInterpolator} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_scrollInterpolator + */ + public static final int AppBarLayout_Layout_layout_scrollInterpolator = 1; + /** Attributes that can be used with a AppCompatImageView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatImageView_android_src android:src}
{@link #AppCompatImageView_srcCompat net.kdt.pojavlaunch:srcCompat}
+ @see #AppCompatImageView_android_src + @see #AppCompatImageView_srcCompat + */ + public static final int[] AppCompatImageView = { + 0x01010119, 0x7f010074 + }; + /** +

This symbol is the offset where the {@link android.R.attr#src} + attribute's value can be found in the {@link #AppCompatImageView} array. + @attr name android:src + */ + public static final int AppCompatImageView_android_src = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#srcCompat} + attribute's value can be found in the {@link #AppCompatImageView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:srcCompat + */ + public static final int AppCompatImageView_srcCompat = 1; + /** Attributes that can be used with a AppCompatSeekBar. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #AppCompatSeekBar_android_thumb android:thumb}
{@link #AppCompatSeekBar_tickMark net.kdt.pojavlaunch:tickMark}
{@link #AppCompatSeekBar_tickMarkTint net.kdt.pojavlaunch:tickMarkTint}
{@link #AppCompatSeekBar_tickMarkTintMode net.kdt.pojavlaunch:tickMarkTintMode}
+ @see #AppCompatSeekBar_android_thumb + @see #AppCompatSeekBar_tickMark + @see #AppCompatSeekBar_tickMarkTint + @see #AppCompatSeekBar_tickMarkTintMode + */ + public static final int[] AppCompatSeekBar = { + 0x01010142, 0x7f010075, 0x7f010076, 0x7f010077 + }; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + @attr name android:thumb + */ + public static final int AppCompatSeekBar_android_thumb = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMark} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tickMark + */ + public static final int AppCompatSeekBar_tickMark = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTint} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tickMarkTint + */ + public static final int AppCompatSeekBar_tickMarkTint = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTintMode} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:tickMarkTintMode + */ + public static final int AppCompatSeekBar_tickMarkTintMode = 3; + /** Attributes that can be used with a AppCompatTextView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatTextView_android_textAppearance android:textAppearance}
{@link #AppCompatTextView_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #AppCompatTextView_android_textAppearance + @see #AppCompatTextView_textAllCaps + */ + public static final int[] AppCompatTextView = { + 0x01010034, 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textAppearance} + attribute's value can be found in the {@link #AppCompatTextView} array. + @attr name android:textAppearance + */ + public static final int AppCompatTextView_android_textAppearance = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #AppCompatTextView} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int AppCompatTextView_textAllCaps = 1; + /** Attributes that can be used with a AppCompatTheme. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #AppCompatTheme_actionBarDivider net.kdt.pojavlaunch:actionBarDivider}
{@link #AppCompatTheme_actionBarItemBackground net.kdt.pojavlaunch:actionBarItemBackground}
{@link #AppCompatTheme_actionBarPopupTheme net.kdt.pojavlaunch:actionBarPopupTheme}
{@link #AppCompatTheme_actionBarSize net.kdt.pojavlaunch:actionBarSize}
{@link #AppCompatTheme_actionBarSplitStyle net.kdt.pojavlaunch:actionBarSplitStyle}
{@link #AppCompatTheme_actionBarStyle net.kdt.pojavlaunch:actionBarStyle}
{@link #AppCompatTheme_actionBarTabBarStyle net.kdt.pojavlaunch:actionBarTabBarStyle}
{@link #AppCompatTheme_actionBarTabStyle net.kdt.pojavlaunch:actionBarTabStyle}
{@link #AppCompatTheme_actionBarTabTextStyle net.kdt.pojavlaunch:actionBarTabTextStyle}
{@link #AppCompatTheme_actionBarTheme net.kdt.pojavlaunch:actionBarTheme}
{@link #AppCompatTheme_actionBarWidgetTheme net.kdt.pojavlaunch:actionBarWidgetTheme}
{@link #AppCompatTheme_actionButtonStyle net.kdt.pojavlaunch:actionButtonStyle}
{@link #AppCompatTheme_actionDropDownStyle net.kdt.pojavlaunch:actionDropDownStyle}
{@link #AppCompatTheme_actionMenuTextAppearance net.kdt.pojavlaunch:actionMenuTextAppearance}
{@link #AppCompatTheme_actionMenuTextColor net.kdt.pojavlaunch:actionMenuTextColor}
{@link #AppCompatTheme_actionModeBackground net.kdt.pojavlaunch:actionModeBackground}
{@link #AppCompatTheme_actionModeCloseButtonStyle net.kdt.pojavlaunch:actionModeCloseButtonStyle}
{@link #AppCompatTheme_actionModeCloseDrawable net.kdt.pojavlaunch:actionModeCloseDrawable}
{@link #AppCompatTheme_actionModeCopyDrawable net.kdt.pojavlaunch:actionModeCopyDrawable}
{@link #AppCompatTheme_actionModeCutDrawable net.kdt.pojavlaunch:actionModeCutDrawable}
{@link #AppCompatTheme_actionModeFindDrawable net.kdt.pojavlaunch:actionModeFindDrawable}
{@link #AppCompatTheme_actionModePasteDrawable net.kdt.pojavlaunch:actionModePasteDrawable}
{@link #AppCompatTheme_actionModePopupWindowStyle net.kdt.pojavlaunch:actionModePopupWindowStyle}
{@link #AppCompatTheme_actionModeSelectAllDrawable net.kdt.pojavlaunch:actionModeSelectAllDrawable}
{@link #AppCompatTheme_actionModeShareDrawable net.kdt.pojavlaunch:actionModeShareDrawable}
{@link #AppCompatTheme_actionModeSplitBackground net.kdt.pojavlaunch:actionModeSplitBackground}
{@link #AppCompatTheme_actionModeStyle net.kdt.pojavlaunch:actionModeStyle}
{@link #AppCompatTheme_actionModeWebSearchDrawable net.kdt.pojavlaunch:actionModeWebSearchDrawable}
{@link #AppCompatTheme_actionOverflowButtonStyle net.kdt.pojavlaunch:actionOverflowButtonStyle}
{@link #AppCompatTheme_actionOverflowMenuStyle net.kdt.pojavlaunch:actionOverflowMenuStyle}
{@link #AppCompatTheme_activityChooserViewStyle net.kdt.pojavlaunch:activityChooserViewStyle}
{@link #AppCompatTheme_alertDialogButtonGroupStyle net.kdt.pojavlaunch:alertDialogButtonGroupStyle}
{@link #AppCompatTheme_alertDialogCenterButtons net.kdt.pojavlaunch:alertDialogCenterButtons}
{@link #AppCompatTheme_alertDialogStyle net.kdt.pojavlaunch:alertDialogStyle}
{@link #AppCompatTheme_alertDialogTheme net.kdt.pojavlaunch:alertDialogTheme}
{@link #AppCompatTheme_android_windowAnimationStyle android:windowAnimationStyle}
{@link #AppCompatTheme_android_windowIsFloating android:windowIsFloating}
{@link #AppCompatTheme_autoCompleteTextViewStyle net.kdt.pojavlaunch:autoCompleteTextViewStyle}
{@link #AppCompatTheme_borderlessButtonStyle net.kdt.pojavlaunch:borderlessButtonStyle}
{@link #AppCompatTheme_buttonBarButtonStyle net.kdt.pojavlaunch:buttonBarButtonStyle}
{@link #AppCompatTheme_buttonBarNegativeButtonStyle net.kdt.pojavlaunch:buttonBarNegativeButtonStyle}
{@link #AppCompatTheme_buttonBarNeutralButtonStyle net.kdt.pojavlaunch:buttonBarNeutralButtonStyle}
{@link #AppCompatTheme_buttonBarPositiveButtonStyle net.kdt.pojavlaunch:buttonBarPositiveButtonStyle}
{@link #AppCompatTheme_buttonBarStyle net.kdt.pojavlaunch:buttonBarStyle}
{@link #AppCompatTheme_buttonStyle net.kdt.pojavlaunch:buttonStyle}
{@link #AppCompatTheme_buttonStyleSmall net.kdt.pojavlaunch:buttonStyleSmall}
{@link #AppCompatTheme_checkboxStyle net.kdt.pojavlaunch:checkboxStyle}
{@link #AppCompatTheme_checkedTextViewStyle net.kdt.pojavlaunch:checkedTextViewStyle}
{@link #AppCompatTheme_colorAccent net.kdt.pojavlaunch:colorAccent}
{@link #AppCompatTheme_colorBackgroundFloating net.kdt.pojavlaunch:colorBackgroundFloating}
{@link #AppCompatTheme_colorButtonNormal net.kdt.pojavlaunch:colorButtonNormal}
{@link #AppCompatTheme_colorControlActivated net.kdt.pojavlaunch:colorControlActivated}
{@link #AppCompatTheme_colorControlHighlight net.kdt.pojavlaunch:colorControlHighlight}
{@link #AppCompatTheme_colorControlNormal net.kdt.pojavlaunch:colorControlNormal}
{@link #AppCompatTheme_colorPrimary net.kdt.pojavlaunch:colorPrimary}
{@link #AppCompatTheme_colorPrimaryDark net.kdt.pojavlaunch:colorPrimaryDark}
{@link #AppCompatTheme_colorSwitchThumbNormal net.kdt.pojavlaunch:colorSwitchThumbNormal}
{@link #AppCompatTheme_controlBackground net.kdt.pojavlaunch:controlBackground}
{@link #AppCompatTheme_dialogPreferredPadding net.kdt.pojavlaunch:dialogPreferredPadding}
{@link #AppCompatTheme_dialogTheme net.kdt.pojavlaunch:dialogTheme}
{@link #AppCompatTheme_dividerHorizontal net.kdt.pojavlaunch:dividerHorizontal}
{@link #AppCompatTheme_dividerVertical net.kdt.pojavlaunch:dividerVertical}
{@link #AppCompatTheme_dropDownListViewStyle net.kdt.pojavlaunch:dropDownListViewStyle}
{@link #AppCompatTheme_dropdownListPreferredItemHeight net.kdt.pojavlaunch:dropdownListPreferredItemHeight}
{@link #AppCompatTheme_editTextBackground net.kdt.pojavlaunch:editTextBackground}
{@link #AppCompatTheme_editTextColor net.kdt.pojavlaunch:editTextColor}
{@link #AppCompatTheme_editTextStyle net.kdt.pojavlaunch:editTextStyle}
{@link #AppCompatTheme_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #AppCompatTheme_imageButtonStyle net.kdt.pojavlaunch:imageButtonStyle}
{@link #AppCompatTheme_listChoiceBackgroundIndicator net.kdt.pojavlaunch:listChoiceBackgroundIndicator}
{@link #AppCompatTheme_listDividerAlertDialog net.kdt.pojavlaunch:listDividerAlertDialog}
{@link #AppCompatTheme_listMenuViewStyle net.kdt.pojavlaunch:listMenuViewStyle}
{@link #AppCompatTheme_listPopupWindowStyle net.kdt.pojavlaunch:listPopupWindowStyle}
{@link #AppCompatTheme_listPreferredItemHeight net.kdt.pojavlaunch:listPreferredItemHeight}
{@link #AppCompatTheme_listPreferredItemHeightLarge net.kdt.pojavlaunch:listPreferredItemHeightLarge}
{@link #AppCompatTheme_listPreferredItemHeightSmall net.kdt.pojavlaunch:listPreferredItemHeightSmall}
{@link #AppCompatTheme_listPreferredItemPaddingLeft net.kdt.pojavlaunch:listPreferredItemPaddingLeft}
{@link #AppCompatTheme_listPreferredItemPaddingRight net.kdt.pojavlaunch:listPreferredItemPaddingRight}
{@link #AppCompatTheme_panelBackground net.kdt.pojavlaunch:panelBackground}
{@link #AppCompatTheme_panelMenuListTheme net.kdt.pojavlaunch:panelMenuListTheme}
{@link #AppCompatTheme_panelMenuListWidth net.kdt.pojavlaunch:panelMenuListWidth}
{@link #AppCompatTheme_popupMenuStyle net.kdt.pojavlaunch:popupMenuStyle}
{@link #AppCompatTheme_popupWindowStyle net.kdt.pojavlaunch:popupWindowStyle}
{@link #AppCompatTheme_radioButtonStyle net.kdt.pojavlaunch:radioButtonStyle}
{@link #AppCompatTheme_ratingBarStyle net.kdt.pojavlaunch:ratingBarStyle}
{@link #AppCompatTheme_ratingBarStyleIndicator net.kdt.pojavlaunch:ratingBarStyleIndicator}
{@link #AppCompatTheme_ratingBarStyleSmall net.kdt.pojavlaunch:ratingBarStyleSmall}
{@link #AppCompatTheme_searchViewStyle net.kdt.pojavlaunch:searchViewStyle}
{@link #AppCompatTheme_seekBarStyle net.kdt.pojavlaunch:seekBarStyle}
{@link #AppCompatTheme_selectableItemBackground net.kdt.pojavlaunch:selectableItemBackground}
{@link #AppCompatTheme_selectableItemBackgroundBorderless net.kdt.pojavlaunch:selectableItemBackgroundBorderless}
{@link #AppCompatTheme_spinnerDropDownItemStyle net.kdt.pojavlaunch:spinnerDropDownItemStyle}
{@link #AppCompatTheme_spinnerStyle net.kdt.pojavlaunch:spinnerStyle}
{@link #AppCompatTheme_switchStyle net.kdt.pojavlaunch:switchStyle}
{@link #AppCompatTheme_textAppearanceLargePopupMenu net.kdt.pojavlaunch:textAppearanceLargePopupMenu}
{@link #AppCompatTheme_textAppearanceListItem net.kdt.pojavlaunch:textAppearanceListItem}
{@link #AppCompatTheme_textAppearanceListItemSmall net.kdt.pojavlaunch:textAppearanceListItemSmall}
{@link #AppCompatTheme_textAppearancePopupMenuHeader net.kdt.pojavlaunch:textAppearancePopupMenuHeader}
{@link #AppCompatTheme_textAppearanceSearchResultSubtitle net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle}
{@link #AppCompatTheme_textAppearanceSearchResultTitle net.kdt.pojavlaunch:textAppearanceSearchResultTitle}
{@link #AppCompatTheme_textAppearanceSmallPopupMenu net.kdt.pojavlaunch:textAppearanceSmallPopupMenu}
{@link #AppCompatTheme_textColorAlertDialogListItem net.kdt.pojavlaunch:textColorAlertDialogListItem}
{@link #AppCompatTheme_textColorSearchUrl net.kdt.pojavlaunch:textColorSearchUrl}
{@link #AppCompatTheme_toolbarNavigationButtonStyle net.kdt.pojavlaunch:toolbarNavigationButtonStyle}
{@link #AppCompatTheme_toolbarStyle net.kdt.pojavlaunch:toolbarStyle}
{@link #AppCompatTheme_windowActionBar net.kdt.pojavlaunch:windowActionBar}
{@link #AppCompatTheme_windowActionBarOverlay net.kdt.pojavlaunch:windowActionBarOverlay}
{@link #AppCompatTheme_windowActionModeOverlay net.kdt.pojavlaunch:windowActionModeOverlay}
{@link #AppCompatTheme_windowFixedHeightMajor net.kdt.pojavlaunch:windowFixedHeightMajor}
{@link #AppCompatTheme_windowFixedHeightMinor net.kdt.pojavlaunch:windowFixedHeightMinor}
{@link #AppCompatTheme_windowFixedWidthMajor net.kdt.pojavlaunch:windowFixedWidthMajor}
{@link #AppCompatTheme_windowFixedWidthMinor net.kdt.pojavlaunch:windowFixedWidthMinor}
{@link #AppCompatTheme_windowMinWidthMajor net.kdt.pojavlaunch:windowMinWidthMajor}
{@link #AppCompatTheme_windowMinWidthMinor net.kdt.pojavlaunch:windowMinWidthMinor}
{@link #AppCompatTheme_windowNoTitle net.kdt.pojavlaunch:windowNoTitle}
+ @see #AppCompatTheme_actionBarDivider + @see #AppCompatTheme_actionBarItemBackground + @see #AppCompatTheme_actionBarPopupTheme + @see #AppCompatTheme_actionBarSize + @see #AppCompatTheme_actionBarSplitStyle + @see #AppCompatTheme_actionBarStyle + @see #AppCompatTheme_actionBarTabBarStyle + @see #AppCompatTheme_actionBarTabStyle + @see #AppCompatTheme_actionBarTabTextStyle + @see #AppCompatTheme_actionBarTheme + @see #AppCompatTheme_actionBarWidgetTheme + @see #AppCompatTheme_actionButtonStyle + @see #AppCompatTheme_actionDropDownStyle + @see #AppCompatTheme_actionMenuTextAppearance + @see #AppCompatTheme_actionMenuTextColor + @see #AppCompatTheme_actionModeBackground + @see #AppCompatTheme_actionModeCloseButtonStyle + @see #AppCompatTheme_actionModeCloseDrawable + @see #AppCompatTheme_actionModeCopyDrawable + @see #AppCompatTheme_actionModeCutDrawable + @see #AppCompatTheme_actionModeFindDrawable + @see #AppCompatTheme_actionModePasteDrawable + @see #AppCompatTheme_actionModePopupWindowStyle + @see #AppCompatTheme_actionModeSelectAllDrawable + @see #AppCompatTheme_actionModeShareDrawable + @see #AppCompatTheme_actionModeSplitBackground + @see #AppCompatTheme_actionModeStyle + @see #AppCompatTheme_actionModeWebSearchDrawable + @see #AppCompatTheme_actionOverflowButtonStyle + @see #AppCompatTheme_actionOverflowMenuStyle + @see #AppCompatTheme_activityChooserViewStyle + @see #AppCompatTheme_alertDialogButtonGroupStyle + @see #AppCompatTheme_alertDialogCenterButtons + @see #AppCompatTheme_alertDialogStyle + @see #AppCompatTheme_alertDialogTheme + @see #AppCompatTheme_android_windowAnimationStyle + @see #AppCompatTheme_android_windowIsFloating + @see #AppCompatTheme_autoCompleteTextViewStyle + @see #AppCompatTheme_borderlessButtonStyle + @see #AppCompatTheme_buttonBarButtonStyle + @see #AppCompatTheme_buttonBarNegativeButtonStyle + @see #AppCompatTheme_buttonBarNeutralButtonStyle + @see #AppCompatTheme_buttonBarPositiveButtonStyle + @see #AppCompatTheme_buttonBarStyle + @see #AppCompatTheme_buttonStyle + @see #AppCompatTheme_buttonStyleSmall + @see #AppCompatTheme_checkboxStyle + @see #AppCompatTheme_checkedTextViewStyle + @see #AppCompatTheme_colorAccent + @see #AppCompatTheme_colorBackgroundFloating + @see #AppCompatTheme_colorButtonNormal + @see #AppCompatTheme_colorControlActivated + @see #AppCompatTheme_colorControlHighlight + @see #AppCompatTheme_colorControlNormal + @see #AppCompatTheme_colorPrimary + @see #AppCompatTheme_colorPrimaryDark + @see #AppCompatTheme_colorSwitchThumbNormal + @see #AppCompatTheme_controlBackground + @see #AppCompatTheme_dialogPreferredPadding + @see #AppCompatTheme_dialogTheme + @see #AppCompatTheme_dividerHorizontal + @see #AppCompatTheme_dividerVertical + @see #AppCompatTheme_dropDownListViewStyle + @see #AppCompatTheme_dropdownListPreferredItemHeight + @see #AppCompatTheme_editTextBackground + @see #AppCompatTheme_editTextColor + @see #AppCompatTheme_editTextStyle + @see #AppCompatTheme_homeAsUpIndicator + @see #AppCompatTheme_imageButtonStyle + @see #AppCompatTheme_listChoiceBackgroundIndicator + @see #AppCompatTheme_listDividerAlertDialog + @see #AppCompatTheme_listMenuViewStyle + @see #AppCompatTheme_listPopupWindowStyle + @see #AppCompatTheme_listPreferredItemHeight + @see #AppCompatTheme_listPreferredItemHeightLarge + @see #AppCompatTheme_listPreferredItemHeightSmall + @see #AppCompatTheme_listPreferredItemPaddingLeft + @see #AppCompatTheme_listPreferredItemPaddingRight + @see #AppCompatTheme_panelBackground + @see #AppCompatTheme_panelMenuListTheme + @see #AppCompatTheme_panelMenuListWidth + @see #AppCompatTheme_popupMenuStyle + @see #AppCompatTheme_popupWindowStyle + @see #AppCompatTheme_radioButtonStyle + @see #AppCompatTheme_ratingBarStyle + @see #AppCompatTheme_ratingBarStyleIndicator + @see #AppCompatTheme_ratingBarStyleSmall + @see #AppCompatTheme_searchViewStyle + @see #AppCompatTheme_seekBarStyle + @see #AppCompatTheme_selectableItemBackground + @see #AppCompatTheme_selectableItemBackgroundBorderless + @see #AppCompatTheme_spinnerDropDownItemStyle + @see #AppCompatTheme_spinnerStyle + @see #AppCompatTheme_switchStyle + @see #AppCompatTheme_textAppearanceLargePopupMenu + @see #AppCompatTheme_textAppearanceListItem + @see #AppCompatTheme_textAppearanceListItemSmall + @see #AppCompatTheme_textAppearancePopupMenuHeader + @see #AppCompatTheme_textAppearanceSearchResultSubtitle + @see #AppCompatTheme_textAppearanceSearchResultTitle + @see #AppCompatTheme_textAppearanceSmallPopupMenu + @see #AppCompatTheme_textColorAlertDialogListItem + @see #AppCompatTheme_textColorSearchUrl + @see #AppCompatTheme_toolbarNavigationButtonStyle + @see #AppCompatTheme_toolbarStyle + @see #AppCompatTheme_windowActionBar + @see #AppCompatTheme_windowActionBarOverlay + @see #AppCompatTheme_windowActionModeOverlay + @see #AppCompatTheme_windowFixedHeightMajor + @see #AppCompatTheme_windowFixedHeightMinor + @see #AppCompatTheme_windowFixedWidthMajor + @see #AppCompatTheme_windowFixedWidthMinor + @see #AppCompatTheme_windowMinWidthMajor + @see #AppCompatTheme_windowMinWidthMinor + @see #AppCompatTheme_windowNoTitle + */ + public static final int[] AppCompatTheme = { + 0x01010057, 0x010100ae, 0x7f010079, 0x7f01007a, + 0x7f01007b, 0x7f01007c, 0x7f01007d, 0x7f01007e, + 0x7f01007f, 0x7f010080, 0x7f010081, 0x7f010082, + 0x7f010083, 0x7f010084, 0x7f010085, 0x7f010086, + 0x7f010087, 0x7f010088, 0x7f010089, 0x7f01008a, + 0x7f01008b, 0x7f01008c, 0x7f01008d, 0x7f01008e, + 0x7f01008f, 0x7f010090, 0x7f010091, 0x7f010092, + 0x7f010093, 0x7f010094, 0x7f010095, 0x7f010096, + 0x7f010097, 0x7f010098, 0x7f010099, 0x7f01009a, + 0x7f01009b, 0x7f01009c, 0x7f01009d, 0x7f01009e, + 0x7f01009f, 0x7f0100a0, 0x7f0100a1, 0x7f0100a2, + 0x7f0100a3, 0x7f0100a4, 0x7f0100a5, 0x7f0100a6, + 0x7f0100a7, 0x7f0100a8, 0x7f0100a9, 0x7f0100aa, + 0x7f0100ab, 0x7f0100ac, 0x7f0100ad, 0x7f0100ae, + 0x7f0100af, 0x7f0100b0, 0x7f0100b1, 0x7f0100b2, + 0x7f0100b3, 0x7f0100b4, 0x7f0100b5, 0x7f0100b6, + 0x7f0100b7, 0x7f0100b8, 0x7f0100b9, 0x7f0100ba, + 0x7f0100bb, 0x7f0100bc, 0x7f0100bd, 0x7f0100be, + 0x7f0100bf, 0x7f0100c0, 0x7f0100c1, 0x7f0100c2, + 0x7f0100c3, 0x7f0100c4, 0x7f0100c5, 0x7f0100c6, + 0x7f0100c7, 0x7f0100c8, 0x7f0100c9, 0x7f0100ca, + 0x7f0100cb, 0x7f0100cc, 0x7f0100cd, 0x7f0100ce, + 0x7f0100cf, 0x7f0100d0, 0x7f0100d1, 0x7f0100d2, + 0x7f0100d3, 0x7f0100d4, 0x7f0100d5, 0x7f0100d6, + 0x7f0100d7, 0x7f0100d8, 0x7f0100d9, 0x7f0100da, + 0x7f0100db, 0x7f0100dc, 0x7f0100dd, 0x7f0100de, + 0x7f0100df, 0x7f0100e0, 0x7f0100e1, 0x7f0100e2, + 0x7f0100e3, 0x7f0100e4, 0x7f0100e5, 0x7f0100e6, + 0x7f0100e7, 0x7f0100e8, 0x7f0100e9 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarDivider} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarDivider + */ + public static final int AppCompatTheme_actionBarDivider = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarItemBackground + */ + public static final int AppCompatTheme_actionBarItemBackground = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarPopupTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarPopupTheme + */ + public static final int AppCompatTheme_actionBarPopupTheme = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSize} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ @attr name net.kdt.pojavlaunch:actionBarSize + */ + public static final int AppCompatTheme_actionBarSize = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSplitStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarSplitStyle + */ + public static final int AppCompatTheme_actionBarSplitStyle = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarStyle + */ + public static final int AppCompatTheme_actionBarStyle = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabBarStyle + */ + public static final int AppCompatTheme_actionBarTabBarStyle = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabStyle + */ + public static final int AppCompatTheme_actionBarTabStyle = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabTextStyle + */ + public static final int AppCompatTheme_actionBarTabTextStyle = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTheme + */ + public static final int AppCompatTheme_actionBarTheme = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarWidgetTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarWidgetTheme + */ + public static final int AppCompatTheme_actionBarWidgetTheme = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionButtonStyle + */ + public static final int AppCompatTheme_actionButtonStyle = 50; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionDropDownStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionDropDownStyle + */ + public static final int AppCompatTheme_actionDropDownStyle = 46; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextAppearance} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionMenuTextAppearance + */ + public static final int AppCompatTheme_actionMenuTextAppearance = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:actionMenuTextColor + */ + public static final int AppCompatTheme_actionMenuTextColor = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeBackground + */ + public static final int AppCompatTheme_actionModeBackground = 29; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseButtonStyle + */ + public static final int AppCompatTheme_actionModeCloseButtonStyle = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseDrawable + */ + public static final int AppCompatTheme_actionModeCloseDrawable = 31; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCopyDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCopyDrawable + */ + public static final int AppCompatTheme_actionModeCopyDrawable = 33; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCutDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCutDrawable + */ + public static final int AppCompatTheme_actionModeCutDrawable = 32; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeFindDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeFindDrawable + */ + public static final int AppCompatTheme_actionModeFindDrawable = 37; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePasteDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePasteDrawable + */ + public static final int AppCompatTheme_actionModePasteDrawable = 34; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePopupWindowStyle + */ + public static final int AppCompatTheme_actionModePopupWindowStyle = 39; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSelectAllDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSelectAllDrawable + */ + public static final int AppCompatTheme_actionModeSelectAllDrawable = 35; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeShareDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeShareDrawable + */ + public static final int AppCompatTheme_actionModeShareDrawable = 36; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSplitBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSplitBackground + */ + public static final int AppCompatTheme_actionModeSplitBackground = 30; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeStyle + */ + public static final int AppCompatTheme_actionModeStyle = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeWebSearchDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeWebSearchDrawable + */ + public static final int AppCompatTheme_actionModeWebSearchDrawable = 38; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowButtonStyle + */ + public static final int AppCompatTheme_actionOverflowButtonStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowMenuStyle + */ + public static final int AppCompatTheme_actionOverflowMenuStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#activityChooserViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:activityChooserViewStyle + */ + public static final int AppCompatTheme_activityChooserViewStyle = 58; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogButtonGroupStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogButtonGroupStyle + */ + public static final int AppCompatTheme_alertDialogButtonGroupStyle = 94; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogCenterButtons} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alertDialogCenterButtons + */ + public static final int AppCompatTheme_alertDialogCenterButtons = 95; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogStyle + */ + public static final int AppCompatTheme_alertDialogStyle = 93; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogTheme + */ + public static final int AppCompatTheme_alertDialogTheme = 96; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowAnimationStyle + */ + public static final int AppCompatTheme_android_windowAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#windowIsFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowIsFloating + */ + public static final int AppCompatTheme_android_windowIsFloating = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#autoCompleteTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:autoCompleteTextViewStyle + */ + public static final int AppCompatTheme_autoCompleteTextViewStyle = 101; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderlessButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:borderlessButtonStyle + */ + public static final int AppCompatTheme_borderlessButtonStyle = 55; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarButtonStyle + */ + public static final int AppCompatTheme_buttonBarButtonStyle = 52; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNegativeButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNegativeButtonStyle + */ + public static final int AppCompatTheme_buttonBarNegativeButtonStyle = 99; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNeutralButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNeutralButtonStyle + */ + public static final int AppCompatTheme_buttonBarNeutralButtonStyle = 100; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarPositiveButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarPositiveButtonStyle + */ + public static final int AppCompatTheme_buttonBarPositiveButtonStyle = 98; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarStyle + */ + public static final int AppCompatTheme_buttonBarStyle = 51; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyle + */ + public static final int AppCompatTheme_buttonStyle = 102; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyleSmall + */ + public static final int AppCompatTheme_buttonStyleSmall = 103; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkboxStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkboxStyle + */ + public static final int AppCompatTheme_checkboxStyle = 104; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkedTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkedTextViewStyle + */ + public static final int AppCompatTheme_checkedTextViewStyle = 105; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorAccent} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorAccent + */ + public static final int AppCompatTheme_colorAccent = 85; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorBackgroundFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorBackgroundFloating + */ + public static final int AppCompatTheme_colorBackgroundFloating = 92; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorButtonNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorButtonNormal + */ + public static final int AppCompatTheme_colorButtonNormal = 89; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlActivated} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlActivated + */ + public static final int AppCompatTheme_colorControlActivated = 87; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlHighlight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlHighlight + */ + public static final int AppCompatTheme_colorControlHighlight = 88; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlNormal + */ + public static final int AppCompatTheme_colorControlNormal = 86; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimary} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimary + */ + public static final int AppCompatTheme_colorPrimary = 83; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimaryDark} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimaryDark + */ + public static final int AppCompatTheme_colorPrimaryDark = 84; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorSwitchThumbNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorSwitchThumbNormal + */ + public static final int AppCompatTheme_colorSwitchThumbNormal = 90; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#controlBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:controlBackground + */ + public static final int AppCompatTheme_controlBackground = 91; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogPreferredPadding} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dialogPreferredPadding + */ + public static final int AppCompatTheme_dialogPreferredPadding = 44; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dialogTheme + */ + public static final int AppCompatTheme_dialogTheme = 43; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerHorizontal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerHorizontal + */ + public static final int AppCompatTheme_dividerHorizontal = 57; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerVertical} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerVertical + */ + public static final int AppCompatTheme_dividerVertical = 56; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropDownListViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dropDownListViewStyle + */ + public static final int AppCompatTheme_dropDownListViewStyle = 75; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropdownListPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dropdownListPreferredItemHeight + */ + public static final int AppCompatTheme_dropdownListPreferredItemHeight = 47; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextBackground + */ + public static final int AppCompatTheme_editTextBackground = 64; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:editTextColor + */ + public static final int AppCompatTheme_editTextColor = 63; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextStyle + */ + public static final int AppCompatTheme_editTextStyle = 106; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int AppCompatTheme_homeAsUpIndicator = 49; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#imageButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:imageButtonStyle + */ + public static final int AppCompatTheme_imageButtonStyle = 65; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listChoiceBackgroundIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listChoiceBackgroundIndicator + */ + public static final int AppCompatTheme_listChoiceBackgroundIndicator = 82; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listDividerAlertDialog} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listDividerAlertDialog + */ + public static final int AppCompatTheme_listDividerAlertDialog = 45; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listMenuViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listMenuViewStyle + */ + public static final int AppCompatTheme_listMenuViewStyle = 114; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listPopupWindowStyle + */ + public static final int AppCompatTheme_listPopupWindowStyle = 76; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeight + */ + public static final int AppCompatTheme_listPreferredItemHeight = 70; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightLarge} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightLarge + */ + public static final int AppCompatTheme_listPreferredItemHeightLarge = 72; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightSmall + */ + public static final int AppCompatTheme_listPreferredItemHeightSmall = 71; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingLeft} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingLeft + */ + public static final int AppCompatTheme_listPreferredItemPaddingLeft = 73; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingRight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingRight + */ + public static final int AppCompatTheme_listPreferredItemPaddingRight = 74; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelBackground + */ + public static final int AppCompatTheme_panelBackground = 79; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelMenuListTheme + */ + public static final int AppCompatTheme_panelMenuListTheme = 81; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListWidth} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:panelMenuListWidth + */ + public static final int AppCompatTheme_panelMenuListWidth = 80; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupMenuStyle + */ + public static final int AppCompatTheme_popupMenuStyle = 61; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupWindowStyle + */ + public static final int AppCompatTheme_popupWindowStyle = 62; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#radioButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:radioButtonStyle + */ + public static final int AppCompatTheme_radioButtonStyle = 107; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyle + */ + public static final int AppCompatTheme_ratingBarStyle = 108; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleIndicator + */ + public static final int AppCompatTheme_ratingBarStyleIndicator = 109; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleSmall + */ + public static final int AppCompatTheme_ratingBarStyleSmall = 110; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchViewStyle + */ + public static final int AppCompatTheme_searchViewStyle = 69; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#seekBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:seekBarStyle + */ + public static final int AppCompatTheme_seekBarStyle = 111; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackground + */ + public static final int AppCompatTheme_selectableItemBackground = 53; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackgroundBorderless} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackgroundBorderless + */ + public static final int AppCompatTheme_selectableItemBackgroundBorderless = 54; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerDropDownItemStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerDropDownItemStyle + */ + public static final int AppCompatTheme_spinnerDropDownItemStyle = 48; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerStyle + */ + public static final int AppCompatTheme_spinnerStyle = 112; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchStyle + */ + public static final int AppCompatTheme_switchStyle = 113; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceLargePopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceLargePopupMenu + */ + public static final int AppCompatTheme_textAppearanceLargePopupMenu = 40; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItem + */ + public static final int AppCompatTheme_textAppearanceListItem = 77; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItemSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItemSmall + */ + public static final int AppCompatTheme_textAppearanceListItemSmall = 78; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearancePopupMenuHeader} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearancePopupMenuHeader + */ + public static final int AppCompatTheme_textAppearancePopupMenuHeader = 42; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultSubtitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultTitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultTitle = 66; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSmallPopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSmallPopupMenu + */ + public static final int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorAlertDialogListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorAlertDialogListItem + */ + public static final int AppCompatTheme_textColorAlertDialogListItem = 97; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorSearchUrl} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorSearchUrl + */ + public static final int AppCompatTheme_textColorSearchUrl = 68; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarNavigationButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarNavigationButtonStyle + */ + public static final int AppCompatTheme_toolbarNavigationButtonStyle = 60; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarStyle + */ + public static final int AppCompatTheme_toolbarStyle = 59; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBar} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBar + */ + public static final int AppCompatTheme_windowActionBar = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBarOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBarOverlay + */ + public static final int AppCompatTheme_windowActionBarOverlay = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionModeOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionModeOverlay + */ + public static final int AppCompatTheme_windowActionModeOverlay = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMajor + */ + public static final int AppCompatTheme_windowFixedHeightMajor = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMinor + */ + public static final int AppCompatTheme_windowFixedHeightMinor = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMajor + */ + public static final int AppCompatTheme_windowFixedWidthMajor = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMinor + */ + public static final int AppCompatTheme_windowFixedWidthMinor = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMajor + */ + public static final int AppCompatTheme_windowMinWidthMajor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMinor + */ + public static final int AppCompatTheme_windowMinWidthMinor = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowNoTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowNoTitle + */ + public static final int AppCompatTheme_windowNoTitle = 3; + /** Attributes that can be used with a BottomSheetBehavior_Layout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #BottomSheetBehavior_Layout_behavior_hideable net.kdt.pojavlaunch:behavior_hideable}
{@link #BottomSheetBehavior_Layout_behavior_peekHeight net.kdt.pojavlaunch:behavior_peekHeight}
{@link #BottomSheetBehavior_Layout_behavior_skipCollapsed net.kdt.pojavlaunch:behavior_skipCollapsed}
+ @see #BottomSheetBehavior_Layout_behavior_hideable + @see #BottomSheetBehavior_Layout_behavior_peekHeight + @see #BottomSheetBehavior_Layout_behavior_skipCollapsed + */ + public static final int[] BottomSheetBehavior_Layout = { + 0x7f010009, 0x7f01000a, 0x7f01000b + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_hideable} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_hideable + */ + public static final int BottomSheetBehavior_Layout_behavior_hideable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_peekHeight} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_peekHeight + */ + public static final int BottomSheetBehavior_Layout_behavior_peekHeight = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_skipCollapsed} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_skipCollapsed + */ + public static final int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2; + /** Attributes that can be used with a ButtonBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ButtonBarLayout_allowStacking net.kdt.pojavlaunch:allowStacking}
+ @see #ButtonBarLayout_allowStacking + */ + public static final int[] ButtonBarLayout = { + 0x7f0100ea + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#allowStacking} + attribute's value can be found in the {@link #ButtonBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:allowStacking + */ + public static final int ButtonBarLayout_allowStacking = 0; + /** Attributes that can be used with a CollapsingToolbarLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_collapsedTitleGravity net.kdt.pojavlaunch:collapsedTitleGravity}
{@link #CollapsingToolbarLayout_collapsedTitleTextAppearance net.kdt.pojavlaunch:collapsedTitleTextAppearance}
{@link #CollapsingToolbarLayout_contentScrim net.kdt.pojavlaunch:contentScrim}
{@link #CollapsingToolbarLayout_expandedTitleGravity net.kdt.pojavlaunch:expandedTitleGravity}
{@link #CollapsingToolbarLayout_expandedTitleMargin net.kdt.pojavlaunch:expandedTitleMargin}
{@link #CollapsingToolbarLayout_expandedTitleMarginBottom net.kdt.pojavlaunch:expandedTitleMarginBottom}
{@link #CollapsingToolbarLayout_expandedTitleMarginEnd net.kdt.pojavlaunch:expandedTitleMarginEnd}
{@link #CollapsingToolbarLayout_expandedTitleMarginStart net.kdt.pojavlaunch:expandedTitleMarginStart}
{@link #CollapsingToolbarLayout_expandedTitleMarginTop net.kdt.pojavlaunch:expandedTitleMarginTop}
{@link #CollapsingToolbarLayout_expandedTitleTextAppearance net.kdt.pojavlaunch:expandedTitleTextAppearance}
{@link #CollapsingToolbarLayout_scrimAnimationDuration net.kdt.pojavlaunch:scrimAnimationDuration}
{@link #CollapsingToolbarLayout_scrimVisibleHeightTrigger net.kdt.pojavlaunch:scrimVisibleHeightTrigger}
{@link #CollapsingToolbarLayout_statusBarScrim net.kdt.pojavlaunch:statusBarScrim}
{@link #CollapsingToolbarLayout_title net.kdt.pojavlaunch:title}
{@link #CollapsingToolbarLayout_titleEnabled net.kdt.pojavlaunch:titleEnabled}
{@link #CollapsingToolbarLayout_toolbarId net.kdt.pojavlaunch:toolbarId}
+ @see #CollapsingToolbarLayout_collapsedTitleGravity + @see #CollapsingToolbarLayout_collapsedTitleTextAppearance + @see #CollapsingToolbarLayout_contentScrim + @see #CollapsingToolbarLayout_expandedTitleGravity + @see #CollapsingToolbarLayout_expandedTitleMargin + @see #CollapsingToolbarLayout_expandedTitleMarginBottom + @see #CollapsingToolbarLayout_expandedTitleMarginEnd + @see #CollapsingToolbarLayout_expandedTitleMarginStart + @see #CollapsingToolbarLayout_expandedTitleMarginTop + @see #CollapsingToolbarLayout_expandedTitleTextAppearance + @see #CollapsingToolbarLayout_scrimAnimationDuration + @see #CollapsingToolbarLayout_scrimVisibleHeightTrigger + @see #CollapsingToolbarLayout_statusBarScrim + @see #CollapsingToolbarLayout_title + @see #CollapsingToolbarLayout_titleEnabled + @see #CollapsingToolbarLayout_toolbarId + */ + public static final int[] CollapsingToolbarLayout = { + 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, + 0x7f010010, 0x7f010011, 0x7f010012, 0x7f010013, + 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, + 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f010051 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:collapsedTitleGravity + */ + public static final int CollapsingToolbarLayout_collapsedTitleGravity = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapsedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_collapsedTitleTextAppearance = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentScrim + */ + public static final int CollapsingToolbarLayout_contentScrim = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:expandedTitleGravity + */ + public static final int CollapsingToolbarLayout_expandedTitleGravity = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMargin} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMargin + */ + public static final int CollapsingToolbarLayout_expandedTitleMargin = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginBottom} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginBottom + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginBottom = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginEnd} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginEnd + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginStart} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginStart + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginStart = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginTop} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginTop + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginTop = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_expandedTitleTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimAnimationDuration} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimAnimationDuration + */ + public static final int CollapsingToolbarLayout_scrimAnimationDuration = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimVisibleHeightTrigger} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimVisibleHeightTrigger + */ + public static final int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:statusBarScrim + */ + public static final int CollapsingToolbarLayout_statusBarScrim = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int CollapsingToolbarLayout_title = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleEnabled} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleEnabled + */ + public static final int CollapsingToolbarLayout_titleEnabled = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarId} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarId + */ + public static final int CollapsingToolbarLayout_toolbarId = 9; + /** Attributes that can be used with a CollapsingToolbarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_Layout_layout_collapseMode net.kdt.pojavlaunch:layout_collapseMode}
{@link #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier net.kdt.pojavlaunch:layout_collapseParallaxMultiplier}
+ @see #CollapsingToolbarLayout_Layout_layout_collapseMode + @see #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier + */ + public static final int[] CollapsingToolbarLayout_Layout = { + 0x7f01001b, 0x7f01001c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseMode} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ @attr name net.kdt.pojavlaunch:layout_collapseMode + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseMode = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseParallaxMultiplier} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_collapseParallaxMultiplier + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1; + /** Attributes that can be used with a ColorStateListItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ColorStateListItem_alpha net.kdt.pojavlaunch:alpha}
{@link #ColorStateListItem_android_alpha android:alpha}
{@link #ColorStateListItem_android_color android:color}
+ @see #ColorStateListItem_alpha + @see #ColorStateListItem_android_alpha + @see #ColorStateListItem_android_color + */ + public static final int[] ColorStateListItem = { + 0x010101a5, 0x0101031f, 0x7f0100eb + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alpha + */ + public static final int ColorStateListItem_alpha = 2; + /** +

This symbol is the offset where the {@link android.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:alpha + */ + public static final int ColorStateListItem_android_alpha = 1; + /** +

This symbol is the offset where the {@link android.R.attr#color} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:color + */ + public static final int ColorStateListItem_android_color = 0; + /** Attributes that can be used with a CompoundButton. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #CompoundButton_android_button android:button}
{@link #CompoundButton_buttonTint net.kdt.pojavlaunch:buttonTint}
{@link #CompoundButton_buttonTintMode net.kdt.pojavlaunch:buttonTintMode}
+ @see #CompoundButton_android_button + @see #CompoundButton_buttonTint + @see #CompoundButton_buttonTintMode + */ + public static final int[] CompoundButton = { + 0x01010107, 0x7f0100ec, 0x7f0100ed + }; + /** +

This symbol is the offset where the {@link android.R.attr#button} + attribute's value can be found in the {@link #CompoundButton} array. + @attr name android:button + */ + public static final int CompoundButton_android_button = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTint} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:buttonTint + */ + public static final int CompoundButton_buttonTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTintMode} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:buttonTintMode + */ + public static final int CompoundButton_buttonTintMode = 2; + /** Attributes that can be used with a CoordinatorLayout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CoordinatorLayout_keylines net.kdt.pojavlaunch:keylines}
{@link #CoordinatorLayout_statusBarBackground net.kdt.pojavlaunch:statusBarBackground}
+ @see #CoordinatorLayout_keylines + @see #CoordinatorLayout_statusBarBackground + */ + public static final int[] CoordinatorLayout = { + 0x7f01001d, 0x7f01001e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#keylines} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:keylines + */ + public static final int CoordinatorLayout_keylines = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarBackground} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:statusBarBackground + */ + public static final int CoordinatorLayout_statusBarBackground = 1; + /** Attributes that can be used with a CoordinatorLayout_Layout. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #CoordinatorLayout_Layout_android_layout_gravity android:layout_gravity}
{@link #CoordinatorLayout_Layout_layout_anchor net.kdt.pojavlaunch:layout_anchor}
{@link #CoordinatorLayout_Layout_layout_anchorGravity net.kdt.pojavlaunch:layout_anchorGravity}
{@link #CoordinatorLayout_Layout_layout_behavior net.kdt.pojavlaunch:layout_behavior}
{@link #CoordinatorLayout_Layout_layout_keyline net.kdt.pojavlaunch:layout_keyline}
+ @see #CoordinatorLayout_Layout_android_layout_gravity + @see #CoordinatorLayout_Layout_layout_anchor + @see #CoordinatorLayout_Layout_layout_anchorGravity + @see #CoordinatorLayout_Layout_layout_behavior + @see #CoordinatorLayout_Layout_layout_keyline + */ + public static final int[] CoordinatorLayout_Layout = { + 0x010100b3, 0x7f01001f, 0x7f010020, 0x7f010021, + 0x7f010022 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + @attr name android:layout_gravity + */ + public static final int CoordinatorLayout_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchor} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_anchor + */ + public static final int CoordinatorLayout_Layout_layout_anchor = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchorGravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:layout_anchorGravity + */ + public static final int CoordinatorLayout_Layout_layout_anchorGravity = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_behavior} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_behavior + */ + public static final int CoordinatorLayout_Layout_layout_behavior = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_keyline} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_keyline + */ + public static final int CoordinatorLayout_Layout_layout_keyline = 3; + /** Attributes that can be used with a DesignTheme. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #DesignTheme_bottomSheetDialogTheme net.kdt.pojavlaunch:bottomSheetDialogTheme}
{@link #DesignTheme_bottomSheetStyle net.kdt.pojavlaunch:bottomSheetStyle}
{@link #DesignTheme_textColorError net.kdt.pojavlaunch:textColorError}
+ @see #DesignTheme_bottomSheetDialogTheme + @see #DesignTheme_bottomSheetStyle + @see #DesignTheme_textColorError + */ + public static final int[] DesignTheme = { + 0x7f010023, 0x7f010024, 0x7f010025 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetDialogTheme} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetDialogTheme + */ + public static final int DesignTheme_bottomSheetDialogTheme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetStyle} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetStyle + */ + public static final int DesignTheme_bottomSheetStyle = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorError} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:textColorError + */ + public static final int DesignTheme_textColorError = 2; + /** Attributes that can be used with a DrawerArrowToggle. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #DrawerArrowToggle_arrowHeadLength net.kdt.pojavlaunch:arrowHeadLength}
{@link #DrawerArrowToggle_arrowShaftLength net.kdt.pojavlaunch:arrowShaftLength}
{@link #DrawerArrowToggle_barLength net.kdt.pojavlaunch:barLength}
{@link #DrawerArrowToggle_color net.kdt.pojavlaunch:color}
{@link #DrawerArrowToggle_drawableSize net.kdt.pojavlaunch:drawableSize}
{@link #DrawerArrowToggle_gapBetweenBars net.kdt.pojavlaunch:gapBetweenBars}
{@link #DrawerArrowToggle_spinBars net.kdt.pojavlaunch:spinBars}
{@link #DrawerArrowToggle_thickness net.kdt.pojavlaunch:thickness}
+ @see #DrawerArrowToggle_arrowHeadLength + @see #DrawerArrowToggle_arrowShaftLength + @see #DrawerArrowToggle_barLength + @see #DrawerArrowToggle_color + @see #DrawerArrowToggle_drawableSize + @see #DrawerArrowToggle_gapBetweenBars + @see #DrawerArrowToggle_spinBars + @see #DrawerArrowToggle_thickness + */ + public static final int[] DrawerArrowToggle = { + 0x7f0100ee, 0x7f0100ef, 0x7f0100f0, 0x7f0100f1, + 0x7f0100f2, 0x7f0100f3, 0x7f0100f4, 0x7f0100f5 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowHeadLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowHeadLength + */ + public static final int DrawerArrowToggle_arrowHeadLength = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowShaftLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowShaftLength + */ + public static final int DrawerArrowToggle_arrowShaftLength = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#barLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:barLength + */ + public static final int DrawerArrowToggle_barLength = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#color} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:color + */ + public static final int DrawerArrowToggle_color = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#drawableSize} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:drawableSize + */ + public static final int DrawerArrowToggle_drawableSize = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#gapBetweenBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:gapBetweenBars + */ + public static final int DrawerArrowToggle_gapBetweenBars = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spinBars + */ + public static final int DrawerArrowToggle_spinBars = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thickness} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thickness + */ + public static final int DrawerArrowToggle_thickness = 7; + /** Attributes that can be used with a FloatingActionButton. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #FloatingActionButton_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #FloatingActionButton_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
{@link #FloatingActionButton_borderWidth net.kdt.pojavlaunch:borderWidth}
{@link #FloatingActionButton_elevation net.kdt.pojavlaunch:elevation}
{@link #FloatingActionButton_fabSize net.kdt.pojavlaunch:fabSize}
{@link #FloatingActionButton_pressedTranslationZ net.kdt.pojavlaunch:pressedTranslationZ}
{@link #FloatingActionButton_rippleColor net.kdt.pojavlaunch:rippleColor}
{@link #FloatingActionButton_useCompatPadding net.kdt.pojavlaunch:useCompatPadding}
+ @see #FloatingActionButton_backgroundTint + @see #FloatingActionButton_backgroundTintMode + @see #FloatingActionButton_borderWidth + @see #FloatingActionButton_elevation + @see #FloatingActionButton_fabSize + @see #FloatingActionButton_pressedTranslationZ + @see #FloatingActionButton_rippleColor + @see #FloatingActionButton_useCompatPadding + */ + public static final int[] FloatingActionButton = { + 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, + 0x7f01002a, 0x7f01006a, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int FloatingActionButton_backgroundTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int FloatingActionButton_backgroundTintMode = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderWidth} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:borderWidth + */ + public static final int FloatingActionButton_borderWidth = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int FloatingActionButton_elevation = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#fabSize} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ @attr name net.kdt.pojavlaunch:fabSize + */ + public static final int FloatingActionButton_fabSize = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#pressedTranslationZ} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:pressedTranslationZ + */ + public static final int FloatingActionButton_pressedTranslationZ = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#rippleColor} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:rippleColor + */ + public static final int FloatingActionButton_rippleColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#useCompatPadding} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:useCompatPadding + */ + public static final int FloatingActionButton_useCompatPadding = 4; + /** Attributes that can be used with a ForegroundLinearLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ForegroundLinearLayout_android_foreground android:foreground}
{@link #ForegroundLinearLayout_android_foregroundGravity android:foregroundGravity}
{@link #ForegroundLinearLayout_foregroundInsidePadding net.kdt.pojavlaunch:foregroundInsidePadding}
+ @see #ForegroundLinearLayout_android_foreground + @see #ForegroundLinearLayout_android_foregroundGravity + @see #ForegroundLinearLayout_foregroundInsidePadding + */ + public static final int[] ForegroundLinearLayout = { + 0x01010109, 0x01010200, 0x7f01002b + }; + /** +

This symbol is the offset where the {@link android.R.attr#foreground} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foreground + */ + public static final int ForegroundLinearLayout_android_foreground = 0; + /** +

This symbol is the offset where the {@link android.R.attr#foregroundGravity} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foregroundGravity + */ + public static final int ForegroundLinearLayout_android_foregroundGravity = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#foregroundInsidePadding} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:foregroundInsidePadding + */ + public static final int ForegroundLinearLayout_foregroundInsidePadding = 2; + /** Attributes that can be used with a LinearLayoutCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_android_baselineAligned android:baselineAligned}
{@link #LinearLayoutCompat_android_baselineAlignedChildIndex android:baselineAlignedChildIndex}
{@link #LinearLayoutCompat_android_gravity android:gravity}
{@link #LinearLayoutCompat_android_orientation android:orientation}
{@link #LinearLayoutCompat_android_weightSum android:weightSum}
{@link #LinearLayoutCompat_divider net.kdt.pojavlaunch:divider}
{@link #LinearLayoutCompat_dividerPadding net.kdt.pojavlaunch:dividerPadding}
{@link #LinearLayoutCompat_measureWithLargestChild net.kdt.pojavlaunch:measureWithLargestChild}
{@link #LinearLayoutCompat_showDividers net.kdt.pojavlaunch:showDividers}
+ @see #LinearLayoutCompat_android_baselineAligned + @see #LinearLayoutCompat_android_baselineAlignedChildIndex + @see #LinearLayoutCompat_android_gravity + @see #LinearLayoutCompat_android_orientation + @see #LinearLayoutCompat_android_weightSum + @see #LinearLayoutCompat_divider + @see #LinearLayoutCompat_dividerPadding + @see #LinearLayoutCompat_measureWithLargestChild + @see #LinearLayoutCompat_showDividers + */ + public static final int[] LinearLayoutCompat = { + 0x010100af, 0x010100c4, 0x01010126, 0x01010127, + 0x01010128, 0x7f010059, 0x7f0100f6, 0x7f0100f7, + 0x7f0100f8 + }; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAligned} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAligned + */ + public static final int LinearLayoutCompat_android_baselineAligned = 2; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAlignedChildIndex} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAlignedChildIndex + */ + public static final int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:gravity + */ + public static final int LinearLayoutCompat_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:orientation + */ + public static final int LinearLayoutCompat_android_orientation = 1; + /** +

This symbol is the offset where the {@link android.R.attr#weightSum} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:weightSum + */ + public static final int LinearLayoutCompat_android_weightSum = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int LinearLayoutCompat_divider = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerPadding} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dividerPadding + */ + public static final int LinearLayoutCompat_dividerPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#measureWithLargestChild} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:measureWithLargestChild + */ + public static final int LinearLayoutCompat_measureWithLargestChild = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showDividers} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ @attr name net.kdt.pojavlaunch:showDividers + */ + public static final int LinearLayoutCompat_showDividers = 7; + /** Attributes that can be used with a LinearLayoutCompat_Layout. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_Layout_android_layout_gravity android:layout_gravity}
{@link #LinearLayoutCompat_Layout_android_layout_height android:layout_height}
{@link #LinearLayoutCompat_Layout_android_layout_weight android:layout_weight}
{@link #LinearLayoutCompat_Layout_android_layout_width android:layout_width}
+ @see #LinearLayoutCompat_Layout_android_layout_gravity + @see #LinearLayoutCompat_Layout_android_layout_height + @see #LinearLayoutCompat_Layout_android_layout_weight + @see #LinearLayoutCompat_Layout_android_layout_width + */ + public static final int[] LinearLayoutCompat_Layout = { + 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_gravity + */ + public static final int LinearLayoutCompat_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout_height} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_height + */ + public static final int LinearLayoutCompat_Layout_android_layout_height = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout_weight} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_weight + */ + public static final int LinearLayoutCompat_Layout_android_layout_weight = 3; + /** +

This symbol is the offset where the {@link android.R.attr#layout_width} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_width + */ + public static final int LinearLayoutCompat_Layout_android_layout_width = 1; + /** Attributes that can be used with a ListPopupWindow. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ListPopupWindow_android_dropDownHorizontalOffset android:dropDownHorizontalOffset}
{@link #ListPopupWindow_android_dropDownVerticalOffset android:dropDownVerticalOffset}
+ @see #ListPopupWindow_android_dropDownHorizontalOffset + @see #ListPopupWindow_android_dropDownVerticalOffset + */ + public static final int[] ListPopupWindow = { + 0x010102ac, 0x010102ad + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownHorizontalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownHorizontalOffset + */ + public static final int ListPopupWindow_android_dropDownHorizontalOffset = 0; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownVerticalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownVerticalOffset + */ + public static final int ListPopupWindow_android_dropDownVerticalOffset = 1; + /** Attributes that can be used with a MenuGroup. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #MenuGroup_android_checkableBehavior android:checkableBehavior}
{@link #MenuGroup_android_enabled android:enabled}
{@link #MenuGroup_android_id android:id}
{@link #MenuGroup_android_menuCategory android:menuCategory}
{@link #MenuGroup_android_orderInCategory android:orderInCategory}
{@link #MenuGroup_android_visible android:visible}
+ @see #MenuGroup_android_checkableBehavior + @see #MenuGroup_android_enabled + @see #MenuGroup_android_id + @see #MenuGroup_android_menuCategory + @see #MenuGroup_android_orderInCategory + @see #MenuGroup_android_visible + */ + public static final int[] MenuGroup = { + 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, + 0x010101df, 0x010101e0 + }; + /** +

This symbol is the offset where the {@link android.R.attr#checkableBehavior} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:checkableBehavior + */ + public static final int MenuGroup_android_checkableBehavior = 5; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:enabled + */ + public static final int MenuGroup_android_enabled = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:id + */ + public static final int MenuGroup_android_id = 1; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:menuCategory + */ + public static final int MenuGroup_android_menuCategory = 3; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:orderInCategory + */ + public static final int MenuGroup_android_orderInCategory = 4; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:visible + */ + public static final int MenuGroup_android_visible = 2; + /** Attributes that can be used with a MenuItem. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #MenuItem_actionLayout net.kdt.pojavlaunch:actionLayout}
{@link #MenuItem_actionProviderClass net.kdt.pojavlaunch:actionProviderClass}
{@link #MenuItem_actionViewClass net.kdt.pojavlaunch:actionViewClass}
{@link #MenuItem_android_alphabeticShortcut android:alphabeticShortcut}
{@link #MenuItem_android_checkable android:checkable}
{@link #MenuItem_android_checked android:checked}
{@link #MenuItem_android_enabled android:enabled}
{@link #MenuItem_android_icon android:icon}
{@link #MenuItem_android_id android:id}
{@link #MenuItem_android_menuCategory android:menuCategory}
{@link #MenuItem_android_numericShortcut android:numericShortcut}
{@link #MenuItem_android_onClick android:onClick}
{@link #MenuItem_android_orderInCategory android:orderInCategory}
{@link #MenuItem_android_title android:title}
{@link #MenuItem_android_titleCondensed android:titleCondensed}
{@link #MenuItem_android_visible android:visible}
{@link #MenuItem_showAsAction net.kdt.pojavlaunch:showAsAction}
+ @see #MenuItem_actionLayout + @see #MenuItem_actionProviderClass + @see #MenuItem_actionViewClass + @see #MenuItem_android_alphabeticShortcut + @see #MenuItem_android_checkable + @see #MenuItem_android_checked + @see #MenuItem_android_enabled + @see #MenuItem_android_icon + @see #MenuItem_android_id + @see #MenuItem_android_menuCategory + @see #MenuItem_android_numericShortcut + @see #MenuItem_android_onClick + @see #MenuItem_android_orderInCategory + @see #MenuItem_android_title + @see #MenuItem_android_titleCondensed + @see #MenuItem_android_visible + @see #MenuItem_showAsAction + */ + public static final int[] MenuItem = { + 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, + 0x01010194, 0x010101de, 0x010101df, 0x010101e1, + 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, + 0x0101026f, 0x7f0100f9, 0x7f0100fa, 0x7f0100fb, + 0x7f0100fc + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionLayout} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionLayout + */ + public static final int MenuItem_actionLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionProviderClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionProviderClass + */ + public static final int MenuItem_actionProviderClass = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionViewClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionViewClass + */ + public static final int MenuItem_actionViewClass = 15; + /** +

This symbol is the offset where the {@link android.R.attr#alphabeticShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:alphabeticShortcut + */ + public static final int MenuItem_android_alphabeticShortcut = 9; + /** +

This symbol is the offset where the {@link android.R.attr#checkable} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checkable + */ + public static final int MenuItem_android_checkable = 11; + /** +

This symbol is the offset where the {@link android.R.attr#checked} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checked + */ + public static final int MenuItem_android_checked = 3; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:enabled + */ + public static final int MenuItem_android_enabled = 1; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:icon + */ + public static final int MenuItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:id + */ + public static final int MenuItem_android_id = 2; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:menuCategory + */ + public static final int MenuItem_android_menuCategory = 5; + /** +

This symbol is the offset where the {@link android.R.attr#numericShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:numericShortcut + */ + public static final int MenuItem_android_numericShortcut = 10; + /** +

This symbol is the offset where the {@link android.R.attr#onClick} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:onClick + */ + public static final int MenuItem_android_onClick = 12; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:orderInCategory + */ + public static final int MenuItem_android_orderInCategory = 6; + /** +

This symbol is the offset where the {@link android.R.attr#title} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:title + */ + public static final int MenuItem_android_title = 7; + /** +

This symbol is the offset where the {@link android.R.attr#titleCondensed} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:titleCondensed + */ + public static final int MenuItem_android_titleCondensed = 8; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:visible + */ + public static final int MenuItem_android_visible = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showAsAction} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ @attr name net.kdt.pojavlaunch:showAsAction + */ + public static final int MenuItem_showAsAction = 13; + /** Attributes that can be used with a MenuView. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #MenuView_android_headerBackground android:headerBackground}
{@link #MenuView_android_horizontalDivider android:horizontalDivider}
{@link #MenuView_android_itemBackground android:itemBackground}
{@link #MenuView_android_itemIconDisabledAlpha android:itemIconDisabledAlpha}
{@link #MenuView_android_itemTextAppearance android:itemTextAppearance}
{@link #MenuView_android_verticalDivider android:verticalDivider}
{@link #MenuView_android_windowAnimationStyle android:windowAnimationStyle}
{@link #MenuView_preserveIconSpacing net.kdt.pojavlaunch:preserveIconSpacing}
{@link #MenuView_subMenuArrow net.kdt.pojavlaunch:subMenuArrow}
+ @see #MenuView_android_headerBackground + @see #MenuView_android_horizontalDivider + @see #MenuView_android_itemBackground + @see #MenuView_android_itemIconDisabledAlpha + @see #MenuView_android_itemTextAppearance + @see #MenuView_android_verticalDivider + @see #MenuView_android_windowAnimationStyle + @see #MenuView_preserveIconSpacing + @see #MenuView_subMenuArrow + */ + public static final int[] MenuView = { + 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, + 0x0101012f, 0x01010130, 0x01010131, 0x7f0100fd, + 0x7f0100fe + }; + /** +

This symbol is the offset where the {@link android.R.attr#headerBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:headerBackground + */ + public static final int MenuView_android_headerBackground = 4; + /** +

This symbol is the offset where the {@link android.R.attr#horizontalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:horizontalDivider + */ + public static final int MenuView_android_horizontalDivider = 2; + /** +

This symbol is the offset where the {@link android.R.attr#itemBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemBackground + */ + public static final int MenuView_android_itemBackground = 5; + /** +

This symbol is the offset where the {@link android.R.attr#itemIconDisabledAlpha} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemIconDisabledAlpha + */ + public static final int MenuView_android_itemIconDisabledAlpha = 6; + /** +

This symbol is the offset where the {@link android.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemTextAppearance + */ + public static final int MenuView_android_itemTextAppearance = 1; + /** +

This symbol is the offset where the {@link android.R.attr#verticalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:verticalDivider + */ + public static final int MenuView_android_verticalDivider = 3; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:windowAnimationStyle + */ + public static final int MenuView_android_windowAnimationStyle = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#preserveIconSpacing} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:preserveIconSpacing + */ + public static final int MenuView_preserveIconSpacing = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subMenuArrow} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subMenuArrow + */ + public static final int MenuView_subMenuArrow = 8; + /** Attributes that can be used with a NavigationView. +

Includes the following attributes:

+ + + + + + + + + + + + + + +
AttributeDescription
{@link #NavigationView_android_background android:background}
{@link #NavigationView_android_fitsSystemWindows android:fitsSystemWindows}
{@link #NavigationView_android_maxWidth android:maxWidth}
{@link #NavigationView_elevation net.kdt.pojavlaunch:elevation}
{@link #NavigationView_headerLayout net.kdt.pojavlaunch:headerLayout}
{@link #NavigationView_itemBackground net.kdt.pojavlaunch:itemBackground}
{@link #NavigationView_itemIconTint net.kdt.pojavlaunch:itemIconTint}
{@link #NavigationView_itemTextAppearance net.kdt.pojavlaunch:itemTextAppearance}
{@link #NavigationView_itemTextColor net.kdt.pojavlaunch:itemTextColor}
{@link #NavigationView_menu net.kdt.pojavlaunch:menu}
+ @see #NavigationView_android_background + @see #NavigationView_android_fitsSystemWindows + @see #NavigationView_android_maxWidth + @see #NavigationView_elevation + @see #NavigationView_headerLayout + @see #NavigationView_itemBackground + @see #NavigationView_itemIconTint + @see #NavigationView_itemTextAppearance + @see #NavigationView_itemTextColor + @see #NavigationView_menu + */ + public static final int[] NavigationView = { + 0x010100d4, 0x010100dd, 0x0101011f, 0x7f01002c, + 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, + 0x7f010031, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:background + */ + public static final int NavigationView_android_background = 0; + /** +

This symbol is the offset where the {@link android.R.attr#fitsSystemWindows} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:fitsSystemWindows + */ + public static final int NavigationView_android_fitsSystemWindows = 1; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:maxWidth + */ + public static final int NavigationView_android_maxWidth = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int NavigationView_elevation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#headerLayout} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:headerLayout + */ + public static final int NavigationView_headerLayout = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemBackground} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemBackground + */ + public static final int NavigationView_itemBackground = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemIconTint} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemIconTint + */ + public static final int NavigationView_itemIconTint = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemTextAppearance + */ + public static final int NavigationView_itemTextAppearance = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextColor} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemTextColor + */ + public static final int NavigationView_itemTextColor = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#menu} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:menu + */ + public static final int NavigationView_menu = 3; + /** Attributes that can be used with a PopupWindow. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #PopupWindow_android_popupAnimationStyle android:popupAnimationStyle}
{@link #PopupWindow_android_popupBackground android:popupBackground}
{@link #PopupWindow_overlapAnchor net.kdt.pojavlaunch:overlapAnchor}
+ @see #PopupWindow_android_popupAnimationStyle + @see #PopupWindow_android_popupBackground + @see #PopupWindow_overlapAnchor + */ + public static final int[] PopupWindow = { + 0x01010176, 0x010102c9, 0x7f0100ff + }; + /** +

This symbol is the offset where the {@link android.R.attr#popupAnimationStyle} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupAnimationStyle + */ + public static final int PopupWindow_android_popupAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupBackground + */ + public static final int PopupWindow_android_popupBackground = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#overlapAnchor} + attribute's value can be found in the {@link #PopupWindow} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:overlapAnchor + */ + public static final int PopupWindow_overlapAnchor = 2; + /** Attributes that can be used with a PopupWindowBackgroundState. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #PopupWindowBackgroundState_state_above_anchor net.kdt.pojavlaunch:state_above_anchor}
+ @see #PopupWindowBackgroundState_state_above_anchor + */ + public static final int[] PopupWindowBackgroundState = { + 0x7f010100 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_above_anchor} + attribute's value can be found in the {@link #PopupWindowBackgroundState} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_above_anchor + */ + public static final int PopupWindowBackgroundState_state_above_anchor = 0; + /** Attributes that can be used with a RecyclerView. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #RecyclerView_android_descendantFocusability android:descendantFocusability}
{@link #RecyclerView_android_orientation android:orientation}
{@link #RecyclerView_layoutManager net.kdt.pojavlaunch:layoutManager}
{@link #RecyclerView_reverseLayout net.kdt.pojavlaunch:reverseLayout}
{@link #RecyclerView_spanCount net.kdt.pojavlaunch:spanCount}
{@link #RecyclerView_stackFromEnd net.kdt.pojavlaunch:stackFromEnd}
+ @see #RecyclerView_android_descendantFocusability + @see #RecyclerView_android_orientation + @see #RecyclerView_layoutManager + @see #RecyclerView_reverseLayout + @see #RecyclerView_spanCount + @see #RecyclerView_stackFromEnd + */ + public static final int[] RecyclerView = { + 0x010100c4, 0x010100f1, 0x7f010000, 0x7f010001, + 0x7f010002, 0x7f010003 + }; + /** +

This symbol is the offset where the {@link android.R.attr#descendantFocusability} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:descendantFocusability + */ + public static final int RecyclerView_android_descendantFocusability = 1; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:orientation + */ + public static final int RecyclerView_android_orientation = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layoutManager} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layoutManager + */ + public static final int RecyclerView_layoutManager = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#reverseLayout} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:reverseLayout + */ + public static final int RecyclerView_reverseLayout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spanCount} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spanCount + */ + public static final int RecyclerView_spanCount = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#stackFromEnd} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:stackFromEnd + */ + public static final int RecyclerView_stackFromEnd = 5; + /** Attributes that can be used with a ScrimInsetsFrameLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrimInsetsFrameLayout_insetForeground net.kdt.pojavlaunch:insetForeground}
+ @see #ScrimInsetsFrameLayout_insetForeground + */ + public static final int[] ScrimInsetsFrameLayout = { + 0x7f010032 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#insetForeground} + attribute's value can be found in the {@link #ScrimInsetsFrameLayout} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:insetForeground + */ + public static final int ScrimInsetsFrameLayout_insetForeground = 0; + /** Attributes that can be used with a ScrollingViewBehavior_Layout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrollingViewBehavior_Layout_behavior_overlapTop net.kdt.pojavlaunch:behavior_overlapTop}
+ @see #ScrollingViewBehavior_Layout_behavior_overlapTop + */ + public static final int[] ScrollingViewBehavior_Layout = { + 0x7f010033 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_overlapTop} + attribute's value can be found in the {@link #ScrollingViewBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_overlapTop + */ + public static final int ScrollingViewBehavior_Layout_behavior_overlapTop = 0; + /** Attributes that can be used with a SearchView. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SearchView_android_focusable android:focusable}
{@link #SearchView_android_imeOptions android:imeOptions}
{@link #SearchView_android_inputType android:inputType}
{@link #SearchView_android_maxWidth android:maxWidth}
{@link #SearchView_closeIcon net.kdt.pojavlaunch:closeIcon}
{@link #SearchView_commitIcon net.kdt.pojavlaunch:commitIcon}
{@link #SearchView_defaultQueryHint net.kdt.pojavlaunch:defaultQueryHint}
{@link #SearchView_goIcon net.kdt.pojavlaunch:goIcon}
{@link #SearchView_iconifiedByDefault net.kdt.pojavlaunch:iconifiedByDefault}
{@link #SearchView_layout net.kdt.pojavlaunch:layout}
{@link #SearchView_queryBackground net.kdt.pojavlaunch:queryBackground}
{@link #SearchView_queryHint net.kdt.pojavlaunch:queryHint}
{@link #SearchView_searchHintIcon net.kdt.pojavlaunch:searchHintIcon}
{@link #SearchView_searchIcon net.kdt.pojavlaunch:searchIcon}
{@link #SearchView_submitBackground net.kdt.pojavlaunch:submitBackground}
{@link #SearchView_suggestionRowLayout net.kdt.pojavlaunch:suggestionRowLayout}
{@link #SearchView_voiceIcon net.kdt.pojavlaunch:voiceIcon}
+ @see #SearchView_android_focusable + @see #SearchView_android_imeOptions + @see #SearchView_android_inputType + @see #SearchView_android_maxWidth + @see #SearchView_closeIcon + @see #SearchView_commitIcon + @see #SearchView_defaultQueryHint + @see #SearchView_goIcon + @see #SearchView_iconifiedByDefault + @see #SearchView_layout + @see #SearchView_queryBackground + @see #SearchView_queryHint + @see #SearchView_searchHintIcon + @see #SearchView_searchIcon + @see #SearchView_submitBackground + @see #SearchView_suggestionRowLayout + @see #SearchView_voiceIcon + */ + public static final int[] SearchView = { + 0x010100da, 0x0101011f, 0x01010220, 0x01010264, + 0x7f010101, 0x7f010102, 0x7f010103, 0x7f010104, + 0x7f010105, 0x7f010106, 0x7f010107, 0x7f010108, + 0x7f010109, 0x7f01010a, 0x7f01010b, 0x7f01010c, + 0x7f01010d + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:focusable + */ + public static final int SearchView_android_focusable = 0; + /** +

This symbol is the offset where the {@link android.R.attr#imeOptions} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:imeOptions + */ + public static final int SearchView_android_imeOptions = 3; + /** +

This symbol is the offset where the {@link android.R.attr#inputType} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:inputType + */ + public static final int SearchView_android_inputType = 2; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:maxWidth + */ + public static final int SearchView_android_maxWidth = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeIcon + */ + public static final int SearchView_closeIcon = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#commitIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:commitIcon + */ + public static final int SearchView_commitIcon = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#defaultQueryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:defaultQueryHint + */ + public static final int SearchView_defaultQueryHint = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#goIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:goIcon + */ + public static final int SearchView_goIcon = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#iconifiedByDefault} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:iconifiedByDefault + */ + public static final int SearchView_iconifiedByDefault = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout + */ + public static final int SearchView_layout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:queryBackground + */ + public static final int SearchView_queryBackground = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:queryHint + */ + public static final int SearchView_queryHint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchHintIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchHintIcon + */ + public static final int SearchView_searchHintIcon = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchIcon + */ + public static final int SearchView_searchIcon = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#submitBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:submitBackground + */ + public static final int SearchView_submitBackground = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#suggestionRowLayout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:suggestionRowLayout + */ + public static final int SearchView_suggestionRowLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#voiceIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:voiceIcon + */ + public static final int SearchView_voiceIcon = 12; + /** Attributes that can be used with a SnackbarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #SnackbarLayout_android_maxWidth android:maxWidth}
{@link #SnackbarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #SnackbarLayout_maxActionInlineWidth net.kdt.pojavlaunch:maxActionInlineWidth}
+ @see #SnackbarLayout_android_maxWidth + @see #SnackbarLayout_elevation + @see #SnackbarLayout_maxActionInlineWidth + */ + public static final int[] SnackbarLayout = { + 0x0101011f, 0x7f010034, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + @attr name android:maxWidth + */ + public static final int SnackbarLayout_android_maxWidth = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int SnackbarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxActionInlineWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxActionInlineWidth + */ + public static final int SnackbarLayout_maxActionInlineWidth = 1; + /** Attributes that can be used with a Spinner. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #Spinner_android_dropDownWidth android:dropDownWidth}
{@link #Spinner_android_entries android:entries}
{@link #Spinner_android_popupBackground android:popupBackground}
{@link #Spinner_android_prompt android:prompt}
{@link #Spinner_popupTheme net.kdt.pojavlaunch:popupTheme}
+ @see #Spinner_android_dropDownWidth + @see #Spinner_android_entries + @see #Spinner_android_popupBackground + @see #Spinner_android_prompt + @see #Spinner_popupTheme + */ + public static final int[] Spinner = { + 0x010100b2, 0x01010176, 0x0101017b, 0x01010262, + 0x7f01006b + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownWidth} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:dropDownWidth + */ + public static final int Spinner_android_dropDownWidth = 3; + /** +

This symbol is the offset where the {@link android.R.attr#entries} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:entries + */ + public static final int Spinner_android_entries = 0; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:popupBackground + */ + public static final int Spinner_android_popupBackground = 1; + /** +

This symbol is the offset where the {@link android.R.attr#prompt} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:prompt + */ + public static final int Spinner_android_prompt = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Spinner} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Spinner_popupTheme = 4; + /** Attributes that can be used with a SwitchCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SwitchCompat_android_textOff android:textOff}
{@link #SwitchCompat_android_textOn android:textOn}
{@link #SwitchCompat_android_thumb android:thumb}
{@link #SwitchCompat_showText net.kdt.pojavlaunch:showText}
{@link #SwitchCompat_splitTrack net.kdt.pojavlaunch:splitTrack}
{@link #SwitchCompat_switchMinWidth net.kdt.pojavlaunch:switchMinWidth}
{@link #SwitchCompat_switchPadding net.kdt.pojavlaunch:switchPadding}
{@link #SwitchCompat_switchTextAppearance net.kdt.pojavlaunch:switchTextAppearance}
{@link #SwitchCompat_thumbTextPadding net.kdt.pojavlaunch:thumbTextPadding}
{@link #SwitchCompat_thumbTint net.kdt.pojavlaunch:thumbTint}
{@link #SwitchCompat_thumbTintMode net.kdt.pojavlaunch:thumbTintMode}
{@link #SwitchCompat_track net.kdt.pojavlaunch:track}
{@link #SwitchCompat_trackTint net.kdt.pojavlaunch:trackTint}
{@link #SwitchCompat_trackTintMode net.kdt.pojavlaunch:trackTintMode}
+ @see #SwitchCompat_android_textOff + @see #SwitchCompat_android_textOn + @see #SwitchCompat_android_thumb + @see #SwitchCompat_showText + @see #SwitchCompat_splitTrack + @see #SwitchCompat_switchMinWidth + @see #SwitchCompat_switchPadding + @see #SwitchCompat_switchTextAppearance + @see #SwitchCompat_thumbTextPadding + @see #SwitchCompat_thumbTint + @see #SwitchCompat_thumbTintMode + @see #SwitchCompat_track + @see #SwitchCompat_trackTint + @see #SwitchCompat_trackTintMode + */ + public static final int[] SwitchCompat = { + 0x01010124, 0x01010125, 0x01010142, 0x7f01010e, + 0x7f01010f, 0x7f010110, 0x7f010111, 0x7f010112, + 0x7f010113, 0x7f010114, 0x7f010115, 0x7f010116, + 0x7f010117, 0x7f010118 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textOff} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOff + */ + public static final int SwitchCompat_android_textOff = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textOn} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOn + */ + public static final int SwitchCompat_android_textOn = 0; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:thumb + */ + public static final int SwitchCompat_android_thumb = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showText} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:showText + */ + public static final int SwitchCompat_showText = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#splitTrack} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:splitTrack + */ + public static final int SwitchCompat_splitTrack = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchMinWidth} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchMinWidth + */ + public static final int SwitchCompat_switchMinWidth = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchPadding + */ + public static final int SwitchCompat_switchPadding = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchTextAppearance} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchTextAppearance + */ + public static final int SwitchCompat_switchTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTextPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTextPadding + */ + public static final int SwitchCompat_thumbTextPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTint + */ + public static final int SwitchCompat_thumbTint = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:thumbTintMode + */ + public static final int SwitchCompat_thumbTintMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#track} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:track + */ + public static final int SwitchCompat_track = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:trackTint + */ + public static final int SwitchCompat_trackTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:trackTintMode + */ + public static final int SwitchCompat_trackTintMode = 7; + /** Attributes that can be used with a TabItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #TabItem_android_icon android:icon}
{@link #TabItem_android_layout android:layout}
{@link #TabItem_android_text android:text}
+ @see #TabItem_android_icon + @see #TabItem_android_layout + @see #TabItem_android_text + */ + public static final int[] TabItem = { + 0x01010002, 0x010100f2, 0x0101014f + }; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:icon + */ + public static final int TabItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:layout + */ + public static final int TabItem_android_layout = 1; + /** +

This symbol is the offset where the {@link android.R.attr#text} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:text + */ + public static final int TabItem_android_text = 2; + /** Attributes that can be used with a TabLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #TabLayout_tabBackground net.kdt.pojavlaunch:tabBackground}
{@link #TabLayout_tabContentStart net.kdt.pojavlaunch:tabContentStart}
{@link #TabLayout_tabGravity net.kdt.pojavlaunch:tabGravity}
{@link #TabLayout_tabIndicatorColor net.kdt.pojavlaunch:tabIndicatorColor}
{@link #TabLayout_tabIndicatorHeight net.kdt.pojavlaunch:tabIndicatorHeight}
{@link #TabLayout_tabMaxWidth net.kdt.pojavlaunch:tabMaxWidth}
{@link #TabLayout_tabMinWidth net.kdt.pojavlaunch:tabMinWidth}
{@link #TabLayout_tabMode net.kdt.pojavlaunch:tabMode}
{@link #TabLayout_tabPadding net.kdt.pojavlaunch:tabPadding}
{@link #TabLayout_tabPaddingBottom net.kdt.pojavlaunch:tabPaddingBottom}
{@link #TabLayout_tabPaddingEnd net.kdt.pojavlaunch:tabPaddingEnd}
{@link #TabLayout_tabPaddingStart net.kdt.pojavlaunch:tabPaddingStart}
{@link #TabLayout_tabPaddingTop net.kdt.pojavlaunch:tabPaddingTop}
{@link #TabLayout_tabSelectedTextColor net.kdt.pojavlaunch:tabSelectedTextColor}
{@link #TabLayout_tabTextAppearance net.kdt.pojavlaunch:tabTextAppearance}
{@link #TabLayout_tabTextColor net.kdt.pojavlaunch:tabTextColor}
+ @see #TabLayout_tabBackground + @see #TabLayout_tabContentStart + @see #TabLayout_tabGravity + @see #TabLayout_tabIndicatorColor + @see #TabLayout_tabIndicatorHeight + @see #TabLayout_tabMaxWidth + @see #TabLayout_tabMinWidth + @see #TabLayout_tabMode + @see #TabLayout_tabPadding + @see #TabLayout_tabPaddingBottom + @see #TabLayout_tabPaddingEnd + @see #TabLayout_tabPaddingStart + @see #TabLayout_tabPaddingTop + @see #TabLayout_tabSelectedTextColor + @see #TabLayout_tabTextAppearance + @see #TabLayout_tabTextColor + */ + public static final int[] TabLayout = { + 0x7f010035, 0x7f010036, 0x7f010037, 0x7f010038, + 0x7f010039, 0x7f01003a, 0x7f01003b, 0x7f01003c, + 0x7f01003d, 0x7f01003e, 0x7f01003f, 0x7f010040, + 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabBackground} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabBackground + */ + public static final int TabLayout_tabBackground = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabContentStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabContentStart + */ + public static final int TabLayout_tabContentStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabGravity} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ @attr name net.kdt.pojavlaunch:tabGravity + */ + public static final int TabLayout_tabGravity = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorColor + */ + public static final int TabLayout_tabIndicatorColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorHeight} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorHeight + */ + public static final int TabLayout_tabIndicatorHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMaxWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMaxWidth + */ + public static final int TabLayout_tabMaxWidth = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMinWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMinWidth + */ + public static final int TabLayout_tabMinWidth = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMode} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ @attr name net.kdt.pojavlaunch:tabMode + */ + public static final int TabLayout_tabMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPadding} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPadding + */ + public static final int TabLayout_tabPadding = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingBottom} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingBottom + */ + public static final int TabLayout_tabPaddingBottom = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingEnd} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingEnd + */ + public static final int TabLayout_tabPaddingEnd = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingStart + */ + public static final int TabLayout_tabPaddingStart = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingTop} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingTop + */ + public static final int TabLayout_tabPaddingTop = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabSelectedTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabSelectedTextColor + */ + public static final int TabLayout_tabSelectedTextColor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextAppearance} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabTextAppearance + */ + public static final int TabLayout_tabTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabTextColor + */ + public static final int TabLayout_tabTextColor = 9; + /** Attributes that can be used with a TextAppearance. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #TextAppearance_android_shadowColor android:shadowColor}
{@link #TextAppearance_android_shadowDx android:shadowDx}
{@link #TextAppearance_android_shadowDy android:shadowDy}
{@link #TextAppearance_android_shadowRadius android:shadowRadius}
{@link #TextAppearance_android_textColor android:textColor}
{@link #TextAppearance_android_textSize android:textSize}
{@link #TextAppearance_android_textStyle android:textStyle}
{@link #TextAppearance_android_typeface android:typeface}
{@link #TextAppearance_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #TextAppearance_android_shadowColor + @see #TextAppearance_android_shadowDx + @see #TextAppearance_android_shadowDy + @see #TextAppearance_android_shadowRadius + @see #TextAppearance_android_textColor + @see #TextAppearance_android_textSize + @see #TextAppearance_android_textStyle + @see #TextAppearance_android_typeface + @see #TextAppearance_textAllCaps + */ + public static final int[] TextAppearance = { + 0x01010095, 0x01010096, 0x01010097, 0x01010098, + 0x01010161, 0x01010162, 0x01010163, 0x01010164, + 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#shadowColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowColor + */ + public static final int TextAppearance_android_shadowColor = 4; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDx} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDx + */ + public static final int TextAppearance_android_shadowDx = 5; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDy} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDy + */ + public static final int TextAppearance_android_shadowDy = 6; + /** +

This symbol is the offset where the {@link android.R.attr#shadowRadius} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowRadius + */ + public static final int TextAppearance_android_shadowRadius = 7; + /** +

This symbol is the offset where the {@link android.R.attr#textColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textColor + */ + public static final int TextAppearance_android_textColor = 3; + /** +

This symbol is the offset where the {@link android.R.attr#textSize} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textSize + */ + public static final int TextAppearance_android_textSize = 0; + /** +

This symbol is the offset where the {@link android.R.attr#textStyle} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textStyle + */ + public static final int TextAppearance_android_textStyle = 2; + /** +

This symbol is the offset where the {@link android.R.attr#typeface} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:typeface + */ + public static final int TextAppearance_android_typeface = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #TextAppearance} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int TextAppearance_textAllCaps = 8; + /** Attributes that can be used with a TextInputLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + +
AttributeDescription
{@link #TextInputLayout_android_hint android:hint}
{@link #TextInputLayout_android_textColorHint android:textColorHint}
{@link #TextInputLayout_counterEnabled net.kdt.pojavlaunch:counterEnabled}
{@link #TextInputLayout_counterMaxLength net.kdt.pojavlaunch:counterMaxLength}
{@link #TextInputLayout_counterOverflowTextAppearance net.kdt.pojavlaunch:counterOverflowTextAppearance}
{@link #TextInputLayout_counterTextAppearance net.kdt.pojavlaunch:counterTextAppearance}
{@link #TextInputLayout_errorEnabled net.kdt.pojavlaunch:errorEnabled}
{@link #TextInputLayout_errorTextAppearance net.kdt.pojavlaunch:errorTextAppearance}
{@link #TextInputLayout_hintAnimationEnabled net.kdt.pojavlaunch:hintAnimationEnabled}
{@link #TextInputLayout_hintEnabled net.kdt.pojavlaunch:hintEnabled}
{@link #TextInputLayout_hintTextAppearance net.kdt.pojavlaunch:hintTextAppearance}
+ @see #TextInputLayout_android_hint + @see #TextInputLayout_android_textColorHint + @see #TextInputLayout_counterEnabled + @see #TextInputLayout_counterMaxLength + @see #TextInputLayout_counterOverflowTextAppearance + @see #TextInputLayout_counterTextAppearance + @see #TextInputLayout_errorEnabled + @see #TextInputLayout_errorTextAppearance + @see #TextInputLayout_hintAnimationEnabled + @see #TextInputLayout_hintEnabled + @see #TextInputLayout_hintTextAppearance + */ + public static final int[] TextInputLayout = { + 0x0101009a, 0x01010150, 0x7f010045, 0x7f010046, + 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, + 0x7f01004b, 0x7f01004c, 0x7f01004d + }; + /** +

This symbol is the offset where the {@link android.R.attr#hint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:hint + */ + public static final int TextInputLayout_android_hint = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textColorHint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:textColorHint + */ + public static final int TextInputLayout_android_textColorHint = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterEnabled + */ + public static final int TextInputLayout_counterEnabled = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterMaxLength} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterMaxLength + */ + public static final int TextInputLayout_counterMaxLength = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterOverflowTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterOverflowTextAppearance + */ + public static final int TextInputLayout_counterOverflowTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterTextAppearance + */ + public static final int TextInputLayout_counterTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:errorEnabled + */ + public static final int TextInputLayout_errorEnabled = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:errorTextAppearance + */ + public static final int TextInputLayout_errorTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintAnimationEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintAnimationEnabled + */ + public static final int TextInputLayout_hintAnimationEnabled = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintEnabled + */ + public static final int TextInputLayout_hintEnabled = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:hintTextAppearance + */ + public static final int TextInputLayout_hintTextAppearance = 2; + /** Attributes that can be used with a Toolbar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #Toolbar_android_gravity android:gravity}
{@link #Toolbar_android_minHeight android:minHeight}
{@link #Toolbar_buttonGravity net.kdt.pojavlaunch:buttonGravity}
{@link #Toolbar_collapseContentDescription net.kdt.pojavlaunch:collapseContentDescription}
{@link #Toolbar_collapseIcon net.kdt.pojavlaunch:collapseIcon}
{@link #Toolbar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #Toolbar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #Toolbar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #Toolbar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #Toolbar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #Toolbar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #Toolbar_logo net.kdt.pojavlaunch:logo}
{@link #Toolbar_logoDescription net.kdt.pojavlaunch:logoDescription}
{@link #Toolbar_maxButtonHeight net.kdt.pojavlaunch:maxButtonHeight}
{@link #Toolbar_navigationContentDescription net.kdt.pojavlaunch:navigationContentDescription}
{@link #Toolbar_navigationIcon net.kdt.pojavlaunch:navigationIcon}
{@link #Toolbar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #Toolbar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #Toolbar_subtitleTextAppearance net.kdt.pojavlaunch:subtitleTextAppearance}
{@link #Toolbar_subtitleTextColor net.kdt.pojavlaunch:subtitleTextColor}
{@link #Toolbar_title net.kdt.pojavlaunch:title}
{@link #Toolbar_titleMargin net.kdt.pojavlaunch:titleMargin}
{@link #Toolbar_titleMarginBottom net.kdt.pojavlaunch:titleMarginBottom}
{@link #Toolbar_titleMarginEnd net.kdt.pojavlaunch:titleMarginEnd}
{@link #Toolbar_titleMarginStart net.kdt.pojavlaunch:titleMarginStart}
{@link #Toolbar_titleMarginTop net.kdt.pojavlaunch:titleMarginTop}
{@link #Toolbar_titleMargins net.kdt.pojavlaunch:titleMargins}
{@link #Toolbar_titleTextAppearance net.kdt.pojavlaunch:titleTextAppearance}
{@link #Toolbar_titleTextColor net.kdt.pojavlaunch:titleTextColor}
+ @see #Toolbar_android_gravity + @see #Toolbar_android_minHeight + @see #Toolbar_buttonGravity + @see #Toolbar_collapseContentDescription + @see #Toolbar_collapseIcon + @see #Toolbar_contentInsetEnd + @see #Toolbar_contentInsetEndWithActions + @see #Toolbar_contentInsetLeft + @see #Toolbar_contentInsetRight + @see #Toolbar_contentInsetStart + @see #Toolbar_contentInsetStartWithNavigation + @see #Toolbar_logo + @see #Toolbar_logoDescription + @see #Toolbar_maxButtonHeight + @see #Toolbar_navigationContentDescription + @see #Toolbar_navigationIcon + @see #Toolbar_popupTheme + @see #Toolbar_subtitle + @see #Toolbar_subtitleTextAppearance + @see #Toolbar_subtitleTextColor + @see #Toolbar_title + @see #Toolbar_titleMargin + @see #Toolbar_titleMarginBottom + @see #Toolbar_titleMarginEnd + @see #Toolbar_titleMarginStart + @see #Toolbar_titleMarginTop + @see #Toolbar_titleMargins + @see #Toolbar_titleTextAppearance + @see #Toolbar_titleTextColor + */ + public static final int[] Toolbar = { + 0x010100af, 0x01010140, 0x7f010051, 0x7f010054, + 0x7f010058, 0x7f010064, 0x7f010065, 0x7f010066, + 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006b, + 0x7f010119, 0x7f01011a, 0x7f01011b, 0x7f01011c, + 0x7f01011d, 0x7f01011e, 0x7f01011f, 0x7f010120, + 0x7f010121, 0x7f010122, 0x7f010123, 0x7f010124, + 0x7f010125, 0x7f010126, 0x7f010127, 0x7f010128, + 0x7f010129 + }; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:gravity + */ + public static final int Toolbar_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#minHeight} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:minHeight + */ + public static final int Toolbar_android_minHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonGravity} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ @attr name net.kdt.pojavlaunch:buttonGravity + */ + public static final int Toolbar_buttonGravity = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:collapseContentDescription + */ + public static final int Toolbar_collapseContentDescription = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapseIcon + */ + public static final int Toolbar_collapseIcon = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int Toolbar_contentInsetEnd = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int Toolbar_contentInsetEndWithActions = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int Toolbar_contentInsetLeft = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int Toolbar_contentInsetRight = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int Toolbar_contentInsetStart = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int Toolbar_contentInsetStartWithNavigation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int Toolbar_logo = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logoDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:logoDescription + */ + public static final int Toolbar_logoDescription = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxButtonHeight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxButtonHeight + */ + public static final int Toolbar_maxButtonHeight = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:navigationContentDescription + */ + public static final int Toolbar_navigationContentDescription = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:navigationIcon + */ + public static final int Toolbar_navigationIcon = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Toolbar_popupTheme = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int Toolbar_subtitle = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextAppearance + */ + public static final int Toolbar_subtitleTextAppearance = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitleTextColor + */ + public static final int Toolbar_subtitleTextColor = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int Toolbar_title = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargin} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargin + */ + public static final int Toolbar_titleMargin = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginBottom} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginBottom + */ + public static final int Toolbar_titleMarginBottom = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginEnd + */ + public static final int Toolbar_titleMarginEnd = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginStart + */ + public static final int Toolbar_titleMarginStart = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginTop} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginTop + */ + public static final int Toolbar_titleMarginTop = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargins} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargins + */ + public static final int Toolbar_titleMargins = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextAppearance + */ + public static final int Toolbar_titleTextAppearance = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleTextColor + */ + public static final int Toolbar_titleTextColor = 27; + /** Attributes that can be used with a View. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #View_android_focusable android:focusable}
{@link #View_android_theme android:theme}
{@link #View_paddingEnd net.kdt.pojavlaunch:paddingEnd}
{@link #View_paddingStart net.kdt.pojavlaunch:paddingStart}
{@link #View_theme net.kdt.pojavlaunch:theme}
+ @see #View_android_focusable + @see #View_android_theme + @see #View_paddingEnd + @see #View_paddingStart + @see #View_theme + */ + public static final int[] View = { + 0x01010000, 0x010100da, 0x7f01012a, 0x7f01012b, + 0x7f01012c + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #View} array. + @attr name android:focusable + */ + public static final int View_android_focusable = 1; + /** +

This symbol is the offset where the {@link android.R.attr#theme} + attribute's value can be found in the {@link #View} array. + @attr name android:theme + */ + public static final int View_android_theme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingEnd} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingEnd + */ + public static final int View_paddingEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingStart} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingStart + */ + public static final int View_paddingStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#theme} + attribute's value can be found in the {@link #View} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:theme + */ + public static final int View_theme = 4; + /** Attributes that can be used with a ViewBackgroundHelper. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewBackgroundHelper_android_background android:background}
{@link #ViewBackgroundHelper_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #ViewBackgroundHelper_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
+ @see #ViewBackgroundHelper_android_background + @see #ViewBackgroundHelper_backgroundTint + @see #ViewBackgroundHelper_backgroundTintMode + */ + public static final int[] ViewBackgroundHelper = { + 0x010100d4, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + @attr name android:background + */ + public static final int ViewBackgroundHelper_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int ViewBackgroundHelper_backgroundTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int ViewBackgroundHelper_backgroundTintMode = 2; + /** Attributes that can be used with a ViewStubCompat. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewStubCompat_android_id android:id}
{@link #ViewStubCompat_android_inflatedId android:inflatedId}
{@link #ViewStubCompat_android_layout android:layout}
+ @see #ViewStubCompat_android_id + @see #ViewStubCompat_android_inflatedId + @see #ViewStubCompat_android_layout + */ + public static final int[] ViewStubCompat = { + 0x010100d0, 0x010100f2, 0x010100f3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:id + */ + public static final int ViewStubCompat_android_id = 0; + /** +

This symbol is the offset where the {@link android.R.attr#inflatedId} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:inflatedId + */ + public static final int ViewStubCompat_android_inflatedId = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:layout + */ + public static final int ViewStubCompat_android_layout = 1; + }; +} diff --git a/app/build/gen/android/support/v7/appcompat/R.java b/app/build/gen/android/support/v7/appcompat/R.java new file mode 100644 index 000000000..5ad416d0b --- /dev/null +++ b/app/build/gen/android/support/v7/appcompat/R.java @@ -0,0 +1,9644 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package android.support.v7.appcompat; + +public final class R { + public static final class anim { + public static final int abc_fade_in=0x7f040000; + public static final int abc_fade_out=0x7f040001; + public static final int abc_grow_fade_in_from_bottom=0x7f040002; + public static final int abc_popup_enter=0x7f040003; + public static final int abc_popup_exit=0x7f040004; + public static final int abc_shrink_fade_out_from_bottom=0x7f040005; + public static final int abc_slide_in_bottom=0x7f040006; + public static final int abc_slide_in_top=0x7f040007; + public static final int abc_slide_out_bottom=0x7f040008; + public static final int abc_slide_out_top=0x7f040009; + public static final int design_appbar_state_list_animator=0x7f04000a; + public static final int design_bottom_sheet_slide_in=0x7f04000b; + public static final int design_bottom_sheet_slide_out=0x7f04000c; + public static final int design_fab_in=0x7f04000d; + public static final int design_fab_out=0x7f04000e; + public static final int design_snackbar_in=0x7f04000f; + public static final int design_snackbar_out=0x7f040010; + public static final int translate_left_side=0x7f040011; + public static final int translate_right_side=0x7f040012; + } + public static final class array { + public static final int mcl_options=0x7f0c0000; + } + public static final class attr { + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarDivider=0x7f01008e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarItemBackground=0x7f01008f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarPopupTheme=0x7f010088; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ */ + public static final int actionBarSize=0x7f01008d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarSplitStyle=0x7f01008a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarStyle=0x7f010089; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabBarStyle=0x7f010084; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabStyle=0x7f010083; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabTextStyle=0x7f010085; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTheme=0x7f01008b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarWidgetTheme=0x7f01008c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionButtonStyle=0x7f0100a9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionDropDownStyle=0x7f0100a5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionLayout=0x7f0100fa; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionMenuTextAppearance=0x7f010090; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int actionMenuTextColor=0x7f010091; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeBackground=0x7f010094; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseButtonStyle=0x7f010093; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseDrawable=0x7f010096; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCopyDrawable=0x7f010098; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCutDrawable=0x7f010097; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeFindDrawable=0x7f01009c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePasteDrawable=0x7f010099; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePopupWindowStyle=0x7f01009e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSelectAllDrawable=0x7f01009a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeShareDrawable=0x7f01009b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSplitBackground=0x7f010095; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeStyle=0x7f010092; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeWebSearchDrawable=0x7f01009d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowButtonStyle=0x7f010086; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowMenuStyle=0x7f010087; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionProviderClass=0x7f0100fc; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionViewClass=0x7f0100fb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int activityChooserViewStyle=0x7f0100b1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogButtonGroupStyle=0x7f0100d5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alertDialogCenterButtons=0x7f0100d6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogStyle=0x7f0100d4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogTheme=0x7f0100d7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int allowStacking=0x7f0100ea; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alpha=0x7f0100eb; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowHeadLength=0x7f0100f2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowShaftLength=0x7f0100f3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int autoCompleteTextViewStyle=0x7f0100dc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int background=0x7f01005a; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundSplit=0x7f01005c; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundStacked=0x7f01005b; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int backgroundTint=0x7f01012d; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int backgroundTintMode=0x7f01012e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int barLength=0x7f0100f4; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_hideable=0x7f01000a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_overlapTop=0x7f010033; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_peekHeight=0x7f010009; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_skipCollapsed=0x7f01000b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int borderWidth=0x7f010029; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int borderlessButtonStyle=0x7f0100ae; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetDialogTheme=0x7f010023; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetStyle=0x7f010024; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarButtonStyle=0x7f0100ab; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNegativeButtonStyle=0x7f0100da; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNeutralButtonStyle=0x7f0100db; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarPositiveButtonStyle=0x7f0100d9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarStyle=0x7f0100aa; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ */ + public static final int buttonGravity=0x7f010122; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonPanelSideLayout=0x7f01006f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyle=0x7f0100dd; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyleSmall=0x7f0100de; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int buttonTint=0x7f0100ec; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int buttonTintMode=0x7f0100ed; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkboxStyle=0x7f0100df; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkedTextViewStyle=0x7f0100e0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeIcon=0x7f010105; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeItemLayout=0x7f01006c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int collapseContentDescription=0x7f010124; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapseIcon=0x7f010123; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int collapsedTitleGravity=0x7f010018; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapsedTitleTextAppearance=0x7f010012; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int color=0x7f0100ee; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorAccent=0x7f0100cc; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorBackgroundFloating=0x7f0100d3; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorButtonNormal=0x7f0100d0; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlActivated=0x7f0100ce; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlHighlight=0x7f0100cf; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlNormal=0x7f0100cd; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimary=0x7f0100ca; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimaryDark=0x7f0100cb; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorSwitchThumbNormal=0x7f0100d1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int commitIcon=0x7f01010a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEnd=0x7f010065; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEndWithActions=0x7f010069; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetLeft=0x7f010066; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetRight=0x7f010067; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStart=0x7f010064; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStartWithNavigation=0x7f010068; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentScrim=0x7f010013; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int controlBackground=0x7f0100d2; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterEnabled=0x7f010049; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterMaxLength=0x7f01004a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterOverflowTextAppearance=0x7f01004c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterTextAppearance=0x7f01004b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int customNavigationLayout=0x7f01005d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int defaultQueryHint=0x7f010104; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dialogPreferredPadding=0x7f0100a3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dialogTheme=0x7f0100a2; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ */ + public static final int displayOptions=0x7f010053; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int divider=0x7f010059; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerHorizontal=0x7f0100b0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dividerPadding=0x7f0100f8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerVertical=0x7f0100af; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int drawableSize=0x7f0100f0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int drawerArrowStyle=0x7f01004e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dropDownListViewStyle=0x7f0100c2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dropdownListPreferredItemHeight=0x7f0100a6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextBackground=0x7f0100b7; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int editTextColor=0x7f0100b6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextStyle=0x7f0100e1; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int elevation=0x7f01006a; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int errorEnabled=0x7f010047; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int errorTextAppearance=0x7f010048; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandActivityOverflowButtonDrawable=0x7f01006e; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expanded=0x7f010004; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int expandedTitleGravity=0x7f010019; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMargin=0x7f01000c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginBottom=0x7f010010; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginEnd=0x7f01000f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginStart=0x7f01000d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginTop=0x7f01000e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandedTitleTextAppearance=0x7f010011; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ */ + public static final int fabSize=0x7f010027; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int foregroundInsidePadding=0x7f01002b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int gapBetweenBars=0x7f0100f1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int goIcon=0x7f010106; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int headerLayout=0x7f010031; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int height=0x7f01004f; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hideOnContentScroll=0x7f010063; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintAnimationEnabled=0x7f01004d; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintEnabled=0x7f010046; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int hintTextAppearance=0x7f010045; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeAsUpIndicator=0x7f0100a8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeLayout=0x7f01005e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int icon=0x7f010057; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int iconifiedByDefault=0x7f010102; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int imageButtonStyle=0x7f0100b8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int indeterminateProgressStyle=0x7f010060; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int initialActivityCount=0x7f01006d; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int insetForeground=0x7f010032; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int isLightTheme=0x7f010050; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemBackground=0x7f01002f; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemIconTint=0x7f01002d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemPadding=0x7f010062; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemTextAppearance=0x7f010030; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemTextColor=0x7f01002e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int keylines=0x7f01001d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout=0x7f010101; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layoutManager=0x7f010000; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_anchor=0x7f010020; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ */ + public static final int layout_anchorGravity=0x7f010022; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_behavior=0x7f01001f; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ */ + public static final int layout_collapseMode=0x7f01001b; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_collapseParallaxMultiplier=0x7f01001c; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_keyline=0x7f010021; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ */ + public static final int layout_scrollFlags=0x7f010007; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_scrollInterpolator=0x7f010008; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listChoiceBackgroundIndicator=0x7f0100c9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listDividerAlertDialog=0x7f0100a4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listItemLayout=0x7f010073; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listLayout=0x7f010070; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listMenuViewStyle=0x7f0100e9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listPopupWindowStyle=0x7f0100c3; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeight=0x7f0100bd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightLarge=0x7f0100bf; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightSmall=0x7f0100be; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingLeft=0x7f0100c0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingRight=0x7f0100c1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int logo=0x7f010058; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int logoDescription=0x7f010127; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxActionInlineWidth=0x7f010034; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxButtonHeight=0x7f010121; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int measureWithLargestChild=0x7f0100f6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int menu=0x7f01002c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int multiChoiceItemLayout=0x7f010071; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int navigationContentDescription=0x7f010126; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int navigationIcon=0x7f010125; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ */ + public static final int navigationMode=0x7f010052; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int overlapAnchor=0x7f0100ff; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingEnd=0x7f01012b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingStart=0x7f01012a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelBackground=0x7f0100c6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelMenuListTheme=0x7f0100c8; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int panelMenuListWidth=0x7f0100c7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupMenuStyle=0x7f0100b4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupTheme=0x7f01006b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupWindowStyle=0x7f0100b5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int preserveIconSpacing=0x7f0100fd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int pressedTranslationZ=0x7f010028; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int progressBarPadding=0x7f010061; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int progressBarStyle=0x7f01005f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int queryBackground=0x7f01010c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int queryHint=0x7f010103; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int radioButtonStyle=0x7f0100e2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyle=0x7f0100e3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleIndicator=0x7f0100e4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleSmall=0x7f0100e5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int reverseLayout=0x7f010002; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int rippleColor=0x7f010026; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimAnimationDuration=0x7f010017; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimVisibleHeightTrigger=0x7f010016; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchHintIcon=0x7f010108; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchIcon=0x7f010107; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchViewStyle=0x7f0100bc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int seekBarStyle=0x7f0100e6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackground=0x7f0100ac; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackgroundBorderless=0x7f0100ad; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ */ + public static final int showAsAction=0x7f0100f9; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ */ + public static final int showDividers=0x7f0100f7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int showText=0x7f010118; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int singleChoiceItemLayout=0x7f010072; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spanCount=0x7f010001; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spinBars=0x7f0100ef; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerDropDownItemStyle=0x7f0100a7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerStyle=0x7f0100e7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int splitTrack=0x7f010117; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int srcCompat=0x7f010074; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int stackFromEnd=0x7f010003; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_above_anchor=0x7f010100; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsed=0x7f010005; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsible=0x7f010006; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int statusBarBackground=0x7f01001e; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int statusBarScrim=0x7f010014; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subMenuArrow=0x7f0100fe; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int submitBackground=0x7f01010d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitle=0x7f010054; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextAppearance=0x7f01011a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitleTextColor=0x7f010129; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextStyle=0x7f010056; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int suggestionRowLayout=0x7f01010b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchMinWidth=0x7f010115; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchPadding=0x7f010116; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchStyle=0x7f0100e8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchTextAppearance=0x7f010114; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabBackground=0x7f010038; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabContentStart=0x7f010037; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ */ + public static final int tabGravity=0x7f01003a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorColor=0x7f010035; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorHeight=0x7f010036; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMaxWidth=0x7f01003c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMinWidth=0x7f01003b; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ */ + public static final int tabMode=0x7f010039; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPadding=0x7f010044; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingBottom=0x7f010043; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingEnd=0x7f010042; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingStart=0x7f010040; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingTop=0x7f010041; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabSelectedTextColor=0x7f01003f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabTextAppearance=0x7f01003d; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabTextColor=0x7f01003e; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + */ + public static final int textAllCaps=0x7f010078; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceLargePopupMenu=0x7f01009f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItem=0x7f0100c4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItemSmall=0x7f0100c5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearancePopupMenuHeader=0x7f0100a1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultSubtitle=0x7f0100ba; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultTitle=0x7f0100b9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSmallPopupMenu=0x7f0100a0; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorAlertDialogListItem=0x7f0100d8; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int textColorError=0x7f010025; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorSearchUrl=0x7f0100bb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int theme=0x7f01012c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thickness=0x7f0100f5; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTextPadding=0x7f010113; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTint=0x7f01010e; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int thumbTintMode=0x7f01010f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tickMark=0x7f010075; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tickMarkTint=0x7f010076; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int tickMarkTintMode=0x7f010077; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int title=0x7f010051; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleEnabled=0x7f01001a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargin=0x7f01011b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginBottom=0x7f01011f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginEnd=0x7f01011d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginStart=0x7f01011c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginTop=0x7f01011e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargins=0x7f010120; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextAppearance=0x7f010119; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleTextColor=0x7f010128; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextStyle=0x7f010055; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarId=0x7f010015; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarNavigationButtonStyle=0x7f0100b3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarStyle=0x7f0100b2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int track=0x7f010110; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int trackTint=0x7f010111; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int trackTintMode=0x7f010112; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int useCompatPadding=0x7f01002a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int voiceIcon=0x7f010109; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBar=0x7f010079; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBarOverlay=0x7f01007b; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionModeOverlay=0x7f01007c; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMajor=0x7f010080; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMinor=0x7f01007e; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMajor=0x7f01007d; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMinor=0x7f01007f; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMajor=0x7f010081; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMinor=0x7f010082; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowNoTitle=0x7f01007a; + } + public static final class bool { + public static final int abc_action_bar_embed_tabs=0x7f0b0000; + public static final int abc_allow_stacked_button_bar=0x7f0b0001; + public static final int abc_config_actionMenuItemAllCaps=0x7f0b0002; + public static final int abc_config_closeDialogWhenTouchOutside=0x7f0b0003; + public static final int abc_config_showMenuShortcutsWhenKeyboardPresent=0x7f0b0004; + } + public static final class color { + public static final int abc_background_cache_hint_selector_material_dark=0x7f090044; + public static final int abc_background_cache_hint_selector_material_light=0x7f090045; + public static final int abc_btn_colored_borderless_text_material=0x7f090046; + public static final int abc_color_highlight_material=0x7f090047; + public static final int abc_input_method_navigation_guard=0x7f09000a; + public static final int abc_primary_text_disable_only_material_dark=0x7f090048; + public static final int abc_primary_text_disable_only_material_light=0x7f090049; + public static final int abc_primary_text_material_dark=0x7f09004a; + public static final int abc_primary_text_material_light=0x7f09004b; + public static final int abc_search_url_text=0x7f09004c; + public static final int abc_search_url_text_normal=0x7f09000b; + public static final int abc_search_url_text_pressed=0x7f09000c; + public static final int abc_search_url_text_selected=0x7f09000d; + public static final int abc_secondary_text_material_dark=0x7f09004d; + public static final int abc_secondary_text_material_light=0x7f09004e; + public static final int abc_tint_btn_checkable=0x7f09004f; + public static final int abc_tint_default=0x7f090050; + public static final int abc_tint_edittext=0x7f090051; + public static final int abc_tint_seek_thumb=0x7f090052; + public static final int abc_tint_spinner=0x7f090053; + public static final int abc_tint_switch_thumb=0x7f090054; + public static final int abc_tint_switch_track=0x7f090055; + public static final int accent_material_dark=0x7f09000e; + public static final int accent_material_light=0x7f09000f; + public static final int background_floating_material_dark=0x7f090010; + public static final int background_floating_material_light=0x7f090011; + public static final int background_material_dark=0x7f090012; + public static final int background_material_light=0x7f090013; + public static final int bright_foreground_disabled_material_dark=0x7f090014; + public static final int bright_foreground_disabled_material_light=0x7f090015; + public static final int bright_foreground_inverse_material_dark=0x7f090016; + public static final int bright_foreground_inverse_material_light=0x7f090017; + public static final int bright_foreground_material_dark=0x7f090018; + public static final int bright_foreground_material_light=0x7f090019; + public static final int button_material_dark=0x7f09001a; + public static final int button_material_light=0x7f09001b; + public static final int design_fab_shadow_end_color=0x7f090000; + public static final int design_fab_shadow_mid_color=0x7f090001; + public static final int design_fab_shadow_start_color=0x7f090002; + public static final int design_fab_stroke_end_inner_color=0x7f090003; + public static final int design_fab_stroke_end_outer_color=0x7f090004; + public static final int design_fab_stroke_top_inner_color=0x7f090005; + public static final int design_fab_stroke_top_outer_color=0x7f090006; + public static final int design_snackbar_background_color=0x7f090007; + public static final int design_textinput_error_color_dark=0x7f090008; + public static final int design_textinput_error_color_light=0x7f090009; + public static final int dim_foreground_disabled_material_dark=0x7f09001c; + public static final int dim_foreground_disabled_material_light=0x7f09001d; + public static final int dim_foreground_material_dark=0x7f09001e; + public static final int dim_foreground_material_light=0x7f09001f; + public static final int foreground_material_dark=0x7f090020; + public static final int foreground_material_light=0x7f090021; + public static final int highlighted_text_material_dark=0x7f090022; + public static final int highlighted_text_material_light=0x7f090023; + public static final int hint_foreground_material_dark=0x7f090024; + public static final int hint_foreground_material_light=0x7f090025; + public static final int material_blue_grey_800=0x7f090026; + public static final int material_blue_grey_900=0x7f090027; + public static final int material_blue_grey_950=0x7f090028; + public static final int material_deep_teal_200=0x7f090029; + public static final int material_deep_teal_500=0x7f09002a; + public static final int material_grey_100=0x7f09002b; + public static final int material_grey_300=0x7f09002c; + public static final int material_grey_50=0x7f09002d; + public static final int material_grey_600=0x7f09002e; + public static final int material_grey_800=0x7f09002f; + public static final int material_grey_850=0x7f090030; + public static final int material_grey_900=0x7f090031; + public static final int primary_dark_material_dark=0x7f090032; + public static final int primary_dark_material_light=0x7f090033; + public static final int primary_material_dark=0x7f090034; + public static final int primary_material_light=0x7f090035; + public static final int primary_text_default_material_dark=0x7f090036; + public static final int primary_text_default_material_light=0x7f090037; + public static final int primary_text_disabled_material_dark=0x7f090038; + public static final int primary_text_disabled_material_light=0x7f090039; + public static final int ripple_material_dark=0x7f09003a; + public static final int ripple_material_light=0x7f09003b; + public static final int secondary_text_default_material_dark=0x7f09003c; + public static final int secondary_text_default_material_light=0x7f09003d; + public static final int secondary_text_disabled_material_dark=0x7f09003e; + public static final int secondary_text_disabled_material_light=0x7f09003f; + public static final int switch_thumb_disabled_material_dark=0x7f090040; + public static final int switch_thumb_disabled_material_light=0x7f090041; + public static final int switch_thumb_material_dark=0x7f090056; + public static final int switch_thumb_material_light=0x7f090057; + public static final int switch_thumb_normal_material_dark=0x7f090042; + public static final int switch_thumb_normal_material_light=0x7f090043; + } + public static final class dimen { + public static final int abc_action_bar_content_inset_material=0x7f05002c; + public static final int abc_action_bar_content_inset_with_nav=0x7f05002d; + public static final int abc_action_bar_default_height_material=0x7f050021; + public static final int abc_action_bar_default_padding_end_material=0x7f05002e; + public static final int abc_action_bar_default_padding_start_material=0x7f05002f; + public static final int abc_action_bar_icon_vertical_padding_material=0x7f050031; + public static final int abc_action_bar_overflow_padding_end_material=0x7f050032; + public static final int abc_action_bar_overflow_padding_start_material=0x7f050033; + public static final int abc_action_bar_progress_bar_size=0x7f050022; + public static final int abc_action_bar_stacked_max_height=0x7f050034; + public static final int abc_action_bar_stacked_tab_max_width=0x7f050035; + public static final int abc_action_bar_subtitle_bottom_margin_material=0x7f050036; + public static final int abc_action_bar_subtitle_top_margin_material=0x7f050037; + public static final int abc_action_button_min_height_material=0x7f050038; + public static final int abc_action_button_min_width_material=0x7f050039; + public static final int abc_action_button_min_width_overflow_material=0x7f05003a; + public static final int abc_alert_dialog_button_bar_height=0x7f050020; + public static final int abc_button_inset_horizontal_material=0x7f05003b; + public static final int abc_button_inset_vertical_material=0x7f05003c; + public static final int abc_button_padding_horizontal_material=0x7f05003d; + public static final int abc_button_padding_vertical_material=0x7f05003e; + public static final int abc_cascading_menus_min_smallest_width=0x7f05003f; + public static final int abc_config_prefDialogWidth=0x7f050025; + public static final int abc_control_corner_material=0x7f050040; + public static final int abc_control_inset_material=0x7f050041; + public static final int abc_control_padding_material=0x7f050042; + public static final int abc_dialog_fixed_height_major=0x7f050026; + public static final int abc_dialog_fixed_height_minor=0x7f050027; + public static final int abc_dialog_fixed_width_major=0x7f050028; + public static final int abc_dialog_fixed_width_minor=0x7f050029; + public static final int abc_dialog_list_padding_vertical_material=0x7f050043; + public static final int abc_dialog_min_width_major=0x7f05002a; + public static final int abc_dialog_min_width_minor=0x7f05002b; + public static final int abc_dialog_padding_material=0x7f050044; + public static final int abc_dialog_padding_top_material=0x7f050045; + public static final int abc_disabled_alpha_material_dark=0x7f050046; + public static final int abc_disabled_alpha_material_light=0x7f050047; + public static final int abc_dropdownitem_icon_width=0x7f050048; + public static final int abc_dropdownitem_text_padding_left=0x7f050049; + public static final int abc_dropdownitem_text_padding_right=0x7f05004a; + public static final int abc_edit_text_inset_bottom_material=0x7f05004b; + public static final int abc_edit_text_inset_horizontal_material=0x7f05004c; + public static final int abc_edit_text_inset_top_material=0x7f05004d; + public static final int abc_floating_window_z=0x7f05004e; + public static final int abc_list_item_padding_horizontal_material=0x7f05004f; + public static final int abc_panel_menu_list_width=0x7f050050; + public static final int abc_progress_bar_height_material=0x7f050051; + public static final int abc_search_view_preferred_height=0x7f050052; + public static final int abc_search_view_preferred_width=0x7f050053; + public static final int abc_seekbar_track_background_height_material=0x7f050054; + public static final int abc_seekbar_track_progress_height_material=0x7f050055; + public static final int abc_select_dialog_padding_start_material=0x7f050056; + public static final int abc_switch_padding=0x7f050030; + public static final int abc_text_size_body_1_material=0x7f050057; + public static final int abc_text_size_body_2_material=0x7f050058; + public static final int abc_text_size_button_material=0x7f050059; + public static final int abc_text_size_caption_material=0x7f05005a; + public static final int abc_text_size_display_1_material=0x7f05005b; + public static final int abc_text_size_display_2_material=0x7f05005c; + public static final int abc_text_size_display_3_material=0x7f05005d; + public static final int abc_text_size_display_4_material=0x7f05005e; + public static final int abc_text_size_headline_material=0x7f05005f; + public static final int abc_text_size_large_material=0x7f050060; + public static final int abc_text_size_medium_material=0x7f050061; + public static final int abc_text_size_menu_header_material=0x7f050062; + public static final int abc_text_size_menu_material=0x7f050063; + public static final int abc_text_size_small_material=0x7f050064; + public static final int abc_text_size_subhead_material=0x7f050065; + public static final int abc_text_size_subtitle_material_toolbar=0x7f050023; + public static final int abc_text_size_title_material=0x7f050066; + public static final int abc_text_size_title_material_toolbar=0x7f050024; + /** Default screen margins, per the Android Design guidelines. + */ + public static final int activity_horizontal_margin=0x7f05006f; + public static final int activity_vertical_margin=0x7f050070; + public static final int design_appbar_elevation=0x7f05000b; + public static final int design_bottom_sheet_modal_elevation=0x7f05000c; + public static final int design_bottom_sheet_modal_peek_height=0x7f05000d; + public static final int design_fab_border_width=0x7f05000e; + public static final int design_fab_elevation=0x7f05000f; + public static final int design_fab_image_size=0x7f050010; + public static final int design_fab_size_mini=0x7f050011; + public static final int design_fab_size_normal=0x7f050012; + public static final int design_fab_translation_z_pressed=0x7f050013; + public static final int design_navigation_elevation=0x7f050014; + public static final int design_navigation_icon_padding=0x7f050015; + public static final int design_navigation_icon_size=0x7f050016; + public static final int design_navigation_max_width=0x7f050003; + public static final int design_navigation_padding_bottom=0x7f050017; + public static final int design_navigation_separator_vertical_padding=0x7f050018; + public static final int design_snackbar_action_inline_max_width=0x7f050004; + public static final int design_snackbar_background_corner_radius=0x7f050005; + public static final int design_snackbar_elevation=0x7f050019; + public static final int design_snackbar_extra_spacing_horizontal=0x7f050006; + public static final int design_snackbar_max_width=0x7f050007; + public static final int design_snackbar_min_width=0x7f050008; + public static final int design_snackbar_padding_horizontal=0x7f05001a; + public static final int design_snackbar_padding_vertical=0x7f05001b; + public static final int design_snackbar_padding_vertical_2lines=0x7f050009; + public static final int design_snackbar_text_size=0x7f05001c; + public static final int design_tab_max_width=0x7f05001d; + public static final int design_tab_scrollable_min_width=0x7f05000a; + public static final int design_tab_text_size=0x7f05001e; + public static final int design_tab_text_size_2line=0x7f05001f; + public static final int disabled_alpha_material_dark=0x7f050067; + public static final int disabled_alpha_material_light=0x7f050068; + public static final int empty_icon_height=0x7f050079; + /** Main Activity components + */ + public static final int empty_icon_width=0x7f050078; + public static final int highlight_alpha_material_colored=0x7f050069; + public static final int highlight_alpha_material_dark=0x7f05006a; + public static final int highlight_alpha_material_light=0x7f05006b; + public static final int item_touch_helper_max_drag_scroll_per_frame=0x7f050000; + public static final int item_touch_helper_swipe_escape_max_velocity=0x7f050001; + public static final int item_touch_helper_swipe_escape_velocity=0x7f050002; + public static final int navigation_header_height=0x7f05007a; + public static final int navigation_item_height=0x7f05007b; + public static final int navigation_item_icon_size=0x7f05007c; + public static final int notification_large_icon_height=0x7f05006c; + public static final int notification_large_icon_width=0x7f05006d; + public static final int notification_subtext_size=0x7f05006e; + public static final int padding_extra_extra_large=0x7f050077; + public static final int padding_extra_large=0x7f050076; + public static final int padding_large=0x7f050075; + public static final int padding_medium=0x7f050074; + public static final int padding_small=0x7f050073; + /** Padding + */ + public static final int padding_tiny=0x7f050071; + public static final int padding_tiny_plus_one=0x7f050072; + } + public static final class drawable { + public static final int abc_ab_share_pack_mtrl_alpha=0x7f020000; + public static final int abc_action_bar_item_background_material=0x7f020001; + public static final int abc_btn_borderless_material=0x7f020002; + public static final int abc_btn_check_material=0x7f020003; + public static final int abc_btn_check_to_on_mtrl_000=0x7f020004; + public static final int abc_btn_check_to_on_mtrl_015=0x7f020005; + public static final int abc_btn_colored_material=0x7f020006; + public static final int abc_btn_default_mtrl_shape=0x7f020007; + public static final int abc_btn_radio_material=0x7f020008; + public static final int abc_btn_radio_to_on_mtrl_000=0x7f020009; + public static final int abc_btn_radio_to_on_mtrl_015=0x7f02000a; + public static final int abc_btn_switch_to_on_mtrl_00001=0x7f02000b; + public static final int abc_btn_switch_to_on_mtrl_00012=0x7f02000c; + public static final int abc_cab_background_internal_bg=0x7f02000d; + public static final int abc_cab_background_top_material=0x7f02000e; + public static final int abc_cab_background_top_mtrl_alpha=0x7f02000f; + public static final int abc_control_background_material=0x7f020010; + public static final int abc_dialog_material_background=0x7f020011; + public static final int abc_edit_text_material=0x7f020012; + public static final int abc_ic_ab_back_material=0x7f020013; + public static final int abc_ic_arrow_drop_right_black_24dp=0x7f020014; + public static final int abc_ic_clear_material=0x7f020015; + public static final int abc_ic_commit_search_api_mtrl_alpha=0x7f020016; + public static final int abc_ic_go_search_api_material=0x7f020017; + public static final int abc_ic_menu_copy_mtrl_am_alpha=0x7f020018; + public static final int abc_ic_menu_cut_mtrl_alpha=0x7f020019; + public static final int abc_ic_menu_overflow_material=0x7f02001a; + public static final int abc_ic_menu_paste_mtrl_am_alpha=0x7f02001b; + public static final int abc_ic_menu_selectall_mtrl_alpha=0x7f02001c; + public static final int abc_ic_menu_share_mtrl_alpha=0x7f02001d; + public static final int abc_ic_search_api_material=0x7f02001e; + public static final int abc_ic_star_black_16dp=0x7f02001f; + public static final int abc_ic_star_black_36dp=0x7f020020; + public static final int abc_ic_star_black_48dp=0x7f020021; + public static final int abc_ic_star_half_black_16dp=0x7f020022; + public static final int abc_ic_star_half_black_36dp=0x7f020023; + public static final int abc_ic_star_half_black_48dp=0x7f020024; + public static final int abc_ic_voice_search_api_material=0x7f020025; + public static final int abc_item_background_holo_dark=0x7f020026; + public static final int abc_item_background_holo_light=0x7f020027; + public static final int abc_list_divider_mtrl_alpha=0x7f020028; + public static final int abc_list_focused_holo=0x7f020029; + public static final int abc_list_longpressed_holo=0x7f02002a; + public static final int abc_list_pressed_holo_dark=0x7f02002b; + public static final int abc_list_pressed_holo_light=0x7f02002c; + public static final int abc_list_selector_background_transition_holo_dark=0x7f02002d; + public static final int abc_list_selector_background_transition_holo_light=0x7f02002e; + public static final int abc_list_selector_disabled_holo_dark=0x7f02002f; + public static final int abc_list_selector_disabled_holo_light=0x7f020030; + public static final int abc_list_selector_holo_dark=0x7f020031; + public static final int abc_list_selector_holo_light=0x7f020032; + public static final int abc_menu_hardkey_panel_mtrl_mult=0x7f020033; + public static final int abc_popup_background_mtrl_mult=0x7f020034; + public static final int abc_ratingbar_indicator_material=0x7f020035; + public static final int abc_ratingbar_material=0x7f020036; + public static final int abc_ratingbar_small_material=0x7f020037; + public static final int abc_scrubber_control_off_mtrl_alpha=0x7f020038; + public static final int abc_scrubber_control_to_pressed_mtrl_000=0x7f020039; + public static final int abc_scrubber_control_to_pressed_mtrl_005=0x7f02003a; + public static final int abc_scrubber_primary_mtrl_alpha=0x7f02003b; + public static final int abc_scrubber_track_mtrl_alpha=0x7f02003c; + public static final int abc_seekbar_thumb_material=0x7f02003d; + public static final int abc_seekbar_tick_mark_material=0x7f02003e; + public static final int abc_seekbar_track_material=0x7f02003f; + public static final int abc_spinner_mtrl_am_alpha=0x7f020040; + public static final int abc_spinner_textfield_background_material=0x7f020041; + public static final int abc_switch_thumb_material=0x7f020042; + public static final int abc_switch_track_mtrl_alpha=0x7f020043; + public static final int abc_tab_indicator_material=0x7f020044; + public static final int abc_tab_indicator_mtrl_alpha=0x7f020045; + public static final int abc_text_cursor_material=0x7f020046; + public static final int abc_textfield_activated_mtrl_alpha=0x7f020047; + public static final int abc_textfield_default_mtrl_alpha=0x7f020048; + public static final int abc_textfield_search_activated_mtrl_alpha=0x7f020049; + public static final int abc_textfield_search_default_mtrl_alpha=0x7f02004a; + public static final int abc_textfield_search_material=0x7f02004b; + public static final int bg_wool_dark=0x7f02004c; + public static final int bitmap_wool_dark=0x7f02004d; + public static final int border_edittext=0x7f02004e; + public static final int control_button=0x7f02004f; + public static final int control_button_normal=0x7f020050; + public static final int control_button_pressed=0x7f020051; + public static final int design_fab_background=0x7f020052; + public static final int design_snackbar_background=0x7f020053; + public static final int ic_close=0x7f020054; + public static final int ic_file=0x7f020055; + public static final int ic_folder=0x7f020056; + public static final int ic_launcher=0x7f020057; + public static final int ic_minimize=0x7f020058; + public static final int logo=0x7f020059; + public static final int mcbtn_normal=0x7f02005a; + public static final int mcbtn_pressed=0x7f02005b; + public static final int mcbutton=0x7f02005c; + public static final int menu_hamburger=0x7f02005d; + public static final int mojang_logo=0x7f02005e; + public static final int mouse_pointer=0x7f02005f; + public static final int notification_template_icon_bg=0x7f020060; + } + public static final class id { + public static final int action0=0x7f06009b; + public static final int action_bar=0x7f06005d; + public static final int action_bar_activity_content=0x7f060002; + public static final int action_bar_container=0x7f06005c; + public static final int action_bar_root=0x7f060058; + public static final int action_bar_spinner=0x7f060003; + public static final int action_bar_subtitle=0x7f06003d; + public static final int action_bar_title=0x7f06003c; + public static final int action_context_bar=0x7f06005e; + public static final int action_divider=0x7f06009f; + public static final int action_menu_divider=0x7f060004; + public static final int action_menu_presenter=0x7f060005; + public static final int action_mode_bar=0x7f06005a; + public static final int action_mode_bar_stub=0x7f060059; + public static final int action_mode_close_button=0x7f06003e; + public static final int activity_chooser_view_content=0x7f06003f; + public static final int add=0x7f06002e; + public static final int alertTitle=0x7f06004b; + public static final int always=0x7f060037; + public static final int auto=0x7f060021; + public static final int beginning=0x7f060035; + public static final int bottom=0x7f060010; + public static final int bottombar_author_logo=0x7f06006d; + public static final int bottombar_version_view=0x7f06006c; + public static final int buttonPanel=0x7f060046; + public static final int cancel_action=0x7f06009c; + public static final int center=0x7f060011; + public static final int center_horizontal=0x7f060012; + public static final int center_vertical=0x7f060013; + public static final int checkbox=0x7f060054; + public static final int chronometer=0x7f0600a2; + public static final int clip_horizontal=0x7f06001d; + public static final int clip_vertical=0x7f06001e; + public static final int collapseActionView=0x7f060038; + public static final int contentPanel=0x7f06004c; + public static final int content_frame=0x7f060090; + public static final int content_log_close_button=0x7f060097; + public static final int content_log_layout=0x7f060096; + public static final int content_log_scroll=0x7f060099; + public static final int content_log_toggle_scrolldown=0x7f060098; + public static final int control_debug=0x7f0600a8; + public static final int control_down=0x7f0600ae; + public static final int control_inventory=0x7f0600b6; + public static final int control_jump=0x7f0600b2; + public static final int control_keyboard=0x7f0600aa; + public static final int control_left=0x7f0600b0; + public static final int control_listplayers=0x7f0600ad; + public static final int control_mouse_toggle=0x7f0600b7; + public static final int control_primary=0x7f0600b3; + public static final int control_right=0x7f0600b1; + public static final int control_screenshot=0x7f0600ac; + public static final int control_secondary=0x7f0600b4; + public static final int control_shift=0x7f0600b5; + public static final int control_talk=0x7f0600a9; + public static final int control_thirdperson=0x7f0600ab; + public static final int control_up=0x7f0600af; + public static final int custom=0x7f060052; + public static final int customPanel=0x7f060051; + public static final int decor_content_parent=0x7f06005b; + public static final int default_activity_button=0x7f060042; + public static final int design_bottom_sheet=0x7f06006f; + public static final int design_menu_item_action_area=0x7f060076; + public static final int design_menu_item_action_area_stub=0x7f060075; + public static final int design_menu_item_text=0x7f060074; + public static final int design_navigation_view=0x7f060073; + public static final int disableHome=0x7f060028; + public static final int edit_query=0x7f06005f; + public static final int end=0x7f060014; + public static final int end_padder=0x7f0600a7; + public static final int enterAlways=0x7f06000b; + public static final int enterAlwaysCollapsed=0x7f06000c; + public static final int exitUntilCollapsed=0x7f06000d; + public static final int expand_activities_button=0x7f060040; + public static final int expanded_menu=0x7f060053; + public static final int fill=0x7f06001f; + public static final int fill_horizontal=0x7f060020; + public static final int fill_vertical=0x7f060015; + public static final int fixed=0x7f060024; + public static final int home=0x7f060006; + public static final int homeAsUp=0x7f060029; + public static final int icon=0x7f060044; + public static final int ifRoom=0x7f060039; + public static final int image=0x7f060041; + public static final int info=0x7f0600a6; + public static final int item_touch_helper_previous_elevation=0x7f060000; + public static final int lMTVVer=0x7f060082; + public static final int launcherAccEmail=0x7f060077; + public static final int launcherAccOffSwitch=0x7f06007a; + public static final int launcherAccPassword=0x7f060078; + public static final int launcherAccProgress=0x7f06007b; + public static final int launcherAccRememberSwitch=0x7f060079; + public static final int launcherAccUsername=0x7f06008b; + public static final int launcherMainExitbtns=0x7f060088; + public static final int launcherMainLeftLayout=0x7f060081; + public static final int launcherMainPlayButton=0x7f060084; + public static final int launcherMainRightLayout=0x7f060085; + public static final int launcherMainSelectVersion=0x7f060083; + public static final int launcherMainUsernameView=0x7f060086; + public static final int launcherMainVersionView=0x7f060087; + public static final int launchermainFragmentTabView=0x7f06007c; + public static final int launchermainTabLayout=0x7f06007d; + public static final int launchermainTabPager=0x7f06007e; + public static final int launcherupdateLogView=0x7f06008a; + public static final int launcherupdateProgressBar=0x7f060089; + public static final int left=0x7f060016; + public static final int line1=0x7f0600a0; + public static final int line3=0x7f0600a4; + public static final int listMode=0x7f060026; + public static final int list_item=0x7f060043; + public static final int lmaintabconsoleLogCrashTextView=0x7f06008d; + public static final int lmaintabconsoleLogTextView=0x7f06008c; + public static final int lmaintabnewsNewsView=0x7f06008e; + public static final int main_control_overlay=0x7f060095; + public static final int main_drawer_options=0x7f06008f; + public static final int main_game_render_view=0x7f060092; + public static final int main_log_behind_GL=0x7f060091; + public static final int main_mouse_pointer=0x7f060094; + public static final int main_navigation_view=0x7f06009a; + public static final int main_touchpad=0x7f060093; + public static final int media_actions=0x7f06009e; + public static final int middle=0x7f060036; + public static final int mini=0x7f060022; + public static final int multiply=0x7f06002f; + public static final int nav_forceclose=0x7f0600c0; + public static final int nav_more3=0x7f0600c3; + public static final int nav_viewcanvas=0x7f0600c2; + public static final int nav_viewlog=0x7f0600c1; + public static final int navigation_header_container=0x7f060072; + public static final int never=0x7f06003a; + public static final int none=0x7f06001a; + public static final int normal=0x7f060023; + public static final int parallax=0x7f06001b; + public static final int parentPanel=0x7f060048; + public static final int pin=0x7f06001c; + public static final int progressDownloadBar=0x7f06007f; + public static final int progressDownloadText=0x7f060080; + public static final int progress_circular=0x7f060007; + public static final int progress_horizontal=0x7f060008; + public static final int radio=0x7f060056; + public static final int right=0x7f060017; + public static final int screen=0x7f060030; + public static final int scroll=0x7f06000e; + public static final int scrollIndicatorDown=0x7f060050; + public static final int scrollIndicatorUp=0x7f06004d; + public static final int scrollView=0x7f06004e; + public static final int scrollable=0x7f060025; + public static final int search_badge=0x7f060061; + public static final int search_bar=0x7f060060; + public static final int search_button=0x7f060062; + public static final int search_close_btn=0x7f060067; + public static final int search_edit_frame=0x7f060063; + public static final int search_go_btn=0x7f060069; + public static final int search_mag_icon=0x7f060064; + public static final int search_plate=0x7f060065; + public static final int search_src_text=0x7f060066; + public static final int search_voice_btn=0x7f06006a; + public static final int select_dialog_listview=0x7f06006b; + public static final int shortcut=0x7f060055; + public static final int showCustom=0x7f06002a; + public static final int showHome=0x7f06002b; + public static final int showTitle=0x7f06002c; + public static final int snackbar_action=0x7f060071; + public static final int snackbar_text=0x7f060070; + public static final int snap=0x7f06000f; + public static final int spacer=0x7f060047; + public static final int split_action_bar=0x7f060009; + public static final int src_atop=0x7f060031; + public static final int src_in=0x7f060032; + public static final int src_over=0x7f060033; + public static final int start=0x7f060018; + public static final int startscreenLinearLayout1=0x7f0600b8; + public static final int startscreenProgress=0x7f0600b9; + public static final int status_bar_latest_event_content=0x7f06009d; + public static final int submenuarrow=0x7f060057; + public static final int submit_area=0x7f060068; + public static final int tabMode=0x7f060027; + public static final int text=0x7f0600a5; + public static final int text2=0x7f0600a3; + public static final int textSpacerNoButtons=0x7f06004f; + public static final int time=0x7f0600a1; + public static final int title=0x7f060045; + public static final int title_template=0x7f06004a; + public static final int top=0x7f060019; + public static final int topPanel=0x7f060049; + public static final int topbar_earth_icon=0x7f0600ba; + public static final int topbar_help_text=0x7f0600bc; + public static final int topbar_language_text=0x7f0600bb; + public static final int topbar_logo=0x7f0600bd; + public static final int topbar_navmenu_icon=0x7f0600be; + public static final int topbar_undertop_view=0x7f0600bf; + public static final int touch_outside=0x7f06006e; + public static final int up=0x7f06000a; + public static final int useLogo=0x7f06002d; + public static final int view_offset_helper=0x7f060001; + public static final int vso_clone=0x7f0600c4; + public static final int vso_edit=0x7f0600c5; + public static final int vso_remove=0x7f0600c6; + public static final int withText=0x7f06003b; + public static final int wrap_content=0x7f060034; + } + public static final class integer { + public static final int abc_config_activityDefaultDur=0x7f080002; + public static final int abc_config_activityShortDur=0x7f080003; + public static final int bottom_sheet_slide_duration=0x7f080001; + public static final int cancel_button_image_alpha=0x7f080004; + public static final int design_snackbar_text_max_lines=0x7f080000; + public static final int status_bar_notification_info_maxnum=0x7f080005; + } + public static final class layout { + public static final int abc_action_bar_title_item=0x7f030000; + public static final int abc_action_bar_up_container=0x7f030001; + public static final int abc_action_bar_view_list_nav_layout=0x7f030002; + public static final int abc_action_menu_item_layout=0x7f030003; + public static final int abc_action_menu_layout=0x7f030004; + public static final int abc_action_mode_bar=0x7f030005; + public static final int abc_action_mode_close_item_material=0x7f030006; + public static final int abc_activity_chooser_view=0x7f030007; + public static final int abc_activity_chooser_view_list_item=0x7f030008; + public static final int abc_alert_dialog_button_bar_material=0x7f030009; + public static final int abc_alert_dialog_material=0x7f03000a; + public static final int abc_dialog_title_material=0x7f03000b; + public static final int abc_expanded_menu_layout=0x7f03000c; + public static final int abc_list_menu_item_checkbox=0x7f03000d; + public static final int abc_list_menu_item_icon=0x7f03000e; + public static final int abc_list_menu_item_layout=0x7f03000f; + public static final int abc_list_menu_item_radio=0x7f030010; + public static final int abc_popup_menu_header_item_layout=0x7f030011; + public static final int abc_popup_menu_item_layout=0x7f030012; + public static final int abc_screen_content_include=0x7f030013; + public static final int abc_screen_simple=0x7f030014; + public static final int abc_screen_simple_overlay_action_mode=0x7f030015; + public static final int abc_screen_toolbar=0x7f030016; + public static final int abc_search_dropdown_item_icons_2line=0x7f030017; + public static final int abc_search_view=0x7f030018; + public static final int abc_select_dialog_material=0x7f030019; + public static final int bottom_bar=0x7f03001a; + public static final int design_bottom_sheet_dialog=0x7f03001b; + public static final int design_layout_snackbar=0x7f03001c; + public static final int design_layout_snackbar_include=0x7f03001d; + public static final int design_layout_tab_icon=0x7f03001e; + public static final int design_layout_tab_text=0x7f03001f; + public static final int design_menu_item_action_area=0x7f030020; + public static final int design_navigation_item=0x7f030021; + public static final int design_navigation_item_header=0x7f030022; + public static final int design_navigation_item_separator=0x7f030023; + public static final int design_navigation_item_subheader=0x7f030024; + public static final int design_navigation_menu=0x7f030025; + public static final int design_navigation_menu_item=0x7f030026; + public static final int launcher_login=0x7f030027; + public static final int launcher_main=0x7f030028; + public static final int launcher_update=0x7f030029; + public static final int launcher_user=0x7f03002a; + public static final int lmaintab_consolelog=0x7f03002b; + public static final int lmaintab_crashlog=0x7f03002c; + public static final int lmaintab_news=0x7f03002d; + public static final int main=0x7f03002e; + public static final int notification_media_action=0x7f03002f; + public static final int notification_media_cancel_action=0x7f030030; + public static final int notification_template_big_media=0x7f030031; + public static final int notification_template_big_media_narrow=0x7f030032; + public static final int notification_template_lines=0x7f030033; + public static final int notification_template_media=0x7f030034; + public static final int notification_template_part_chronometer=0x7f030035; + public static final int notification_template_part_time=0x7f030036; + public static final int overlay=0x7f030037; + public static final int select_dialog_item_material=0x7f030038; + public static final int select_dialog_multichoice_material=0x7f030039; + public static final int select_dialog_singlechoice_material=0x7f03003a; + public static final int start_screen=0x7f03003b; + public static final int support_simple_spinner_dropdown_item=0x7f03003c; + public static final int top_bar=0x7f03003d; + } + public static final class menu { + public static final int menu_runopt=0x7f0d0000; + public static final int menu_versionopt=0x7f0d0001; + } + public static final class string { + public static final int abc_action_bar_home_description=0x7f0a0003; + public static final int abc_action_bar_home_description_format=0x7f0a0004; + public static final int abc_action_bar_home_subtitle_description_format=0x7f0a0005; + public static final int abc_action_bar_up_description=0x7f0a0006; + public static final int abc_action_menu_overflow_description=0x7f0a0007; + public static final int abc_action_mode_done=0x7f0a0008; + public static final int abc_activity_chooser_view_see_all=0x7f0a0009; + public static final int abc_activitychooserview_choose_application=0x7f0a000a; + public static final int abc_capital_off=0x7f0a000b; + public static final int abc_capital_on=0x7f0a000c; + public static final int abc_font_family_body_1_material=0x7f0a0017; + public static final int abc_font_family_body_2_material=0x7f0a0018; + public static final int abc_font_family_button_material=0x7f0a0019; + public static final int abc_font_family_caption_material=0x7f0a001a; + public static final int abc_font_family_display_1_material=0x7f0a001b; + public static final int abc_font_family_display_2_material=0x7f0a001c; + public static final int abc_font_family_display_3_material=0x7f0a001d; + public static final int abc_font_family_display_4_material=0x7f0a001e; + public static final int abc_font_family_headline_material=0x7f0a001f; + public static final int abc_font_family_menu_material=0x7f0a0020; + public static final int abc_font_family_subhead_material=0x7f0a0021; + public static final int abc_font_family_title_material=0x7f0a0022; + public static final int abc_search_hint=0x7f0a000d; + public static final int abc_searchview_description_clear=0x7f0a000e; + public static final int abc_searchview_description_query=0x7f0a000f; + public static final int abc_searchview_description_search=0x7f0a0010; + public static final int abc_searchview_description_submit=0x7f0a0011; + public static final int abc_searchview_description_voice=0x7f0a0012; + public static final int abc_shareactionprovider_share_with=0x7f0a0013; + public static final int abc_shareactionprovider_share_with_application=0x7f0a0014; + public static final int abc_toolbar_collapse_description=0x7f0a0015; + /** Action bar part + */ + public static final int actionbar_help=0x7f0a0025; + /** App name part + */ + public static final int app_name=0x7f0a0023; + public static final int app_short_name=0x7f0a0024; + public static final int appbar_scrolling_view_behavior=0x7f0a0000; + public static final int bottom_sheet_behavior=0x7f0a0001; + public static final int character_counter_pattern=0x7f0a0002; + public static final int control_chat=0x7f0a0061; + public static final int control_debug=0x7f0a0062; + public static final int control_down=0x7f0a006c; + /** MainActivity: Menu advanced controls + */ + public static final int control_forceclose=0x7f0a0072; + public static final int control_inventory=0x7f0a0068; + public static final int control_jump=0x7f0a006d; + /** MainActivity: Control buttons + */ + public static final int control_keyboard=0x7f0a0060; + public static final int control_left=0x7f0a006a; + public static final int control_listplayers=0x7f0a006f; + public static final int control_more2=0x7f0a0074; + public static final int control_more3=0x7f0a0075; + public static final int control_more4=0x7f0a0076; + public static final int control_mouseoff=0x7f0a0070; + public static final int control_mouseon=0x7f0a0071; + public static final int control_primary=0x7f0a0065; + public static final int control_right=0x7f0a006b; + public static final int control_screenshot=0x7f0a0063; + public static final int control_secondary=0x7f0a0066; + public static final int control_shift=0x7f0a0067; + public static final int control_thirdperson=0x7f0a006e; + public static final int control_up=0x7f0a0069; + public static final int control_viewout=0x7f0a0073; + public static final int controls=0x7f0a0064; + /** Error messages + */ + public static final int error_checklog=0x7f0a003e; + public static final int error_convert_client=0x7f0a0043; + public static final int error_convert_lib=0x7f0a0042; + public static final int error_load_version=0x7f0a0041; + public static final int error_no_version=0x7f0a0040; + public static final int error_show_less=0x7f0a0045; + public static final int error_show_more=0x7f0a0044; + public static final int error_title=0x7f0a003f; + /** Hint + */ + public static final int hint_select_account=0x7f0a0036; + /** Languages list part + */ + public static final int language_name=0x7f0a0026; + /** Logging output + */ + public static final int log_title=0x7f0a0027; + public static final int login_error_empty_username=0x7f0a0032; + public static final int login_error_exist_username=0x7f0a0034; + public static final int login_error_short_username=0x7f0a0033; + public static final int login_offline_alert_skip=0x7f0a0031; + public static final int login_offline_switch=0x7f0a002f; + public static final int login_offline_warning_1=0x7f0a0030; + public static final int login_online_create_account=0x7f0a002e; + public static final int login_online_login_label=0x7f0a002d; + public static final int login_online_password_hint=0x7f0a002a; + public static final int login_online_password_question=0x7f0a002b; + public static final int login_online_remember=0x7f0a002c; + /** Login strings + */ + public static final int login_online_username_hint=0x7f0a0028; + public static final int login_online_username_question=0x7f0a0029; + public static final int login_select_account=0x7f0a0035; + public static final int mcl_launch_cleancache=0x7f0a004c; + public static final int mcl_launch_convert_client=0x7f0a0051; + public static final int mcl_launch_convert_lib=0x7f0a0050; + public static final int mcl_launch_download_assets=0x7f0a0053; + public static final int mcl_launch_download_client=0x7f0a004f; + public static final int mcl_launch_download_lib=0x7f0a004e; + public static final int mcl_launch_downloading=0x7f0a004d; + public static final int mcl_launch_patch_client=0x7f0a0052; + public static final int mcl_option_about=0x7f0a0057; + public static final int mcl_option_checkupdate=0x7f0a0056; + public static final int mcl_option_modmgr=0x7f0a0055; + public static final int mcl_options=0x7f0a0054; + public static final int mcl_tab_console=0x7f0a0049; + public static final int mcl_tab_crash=0x7f0a004a; + /** + Exit + Exit + + MCLauncherActivity: Tabs + */ + public static final int mcl_tab_news=0x7f0a0048; + public static final int mcl_version_clone=0x7f0a0058; + public static final int mcl_version_edit=0x7f0a0059; + /** MCLauncherActivity: Strings + */ + public static final int mcl_version_msg=0x7f0a004b; + public static final int mcl_version_remove=0x7f0a005a; + public static final int mcn_exit_call=0x7f0a005c; + public static final int mcn_exit_confirm=0x7f0a005f; + public static final int mcn_exit_crash=0x7f0a005d; + public static final int mcn_exit_errcrash=0x7f0a005e; + /** + +%1$s BETA (Minecraft Java launcher for Android), version " + PathTools.usingVerName + "\n" + + " - by Khanh Duy Tran (based from \"Boardwalk\" app)\n" + + //"© 2019 Khanh Duy Tran\n" + + "Using libraries:\n" + + " • LWJGL " + org.lwjgl.Sys.getVersion() + "\n" + + //" • Boardwalk memory manager (not used now).\n" + + " • gl4es: OpenGL for OpenGL ES devices by lunixbochs and ptitSeb.\n" + + " • dx: tool to convert.\n" + + " • Java AWT Implementation includes:\n" + + " - Boardwalk's makeshift.\n" + + " - Apache Harmony AWT Framework.\n" + + " - OpenJDK 7 codes implementation.\n" + + " - Developer code implement (copy text, open browser,...)\n" + + "\n" + + "* Notes:\n" + + " - This app is currently BETA, it will not be stable.\n" + + //"* This app will unstable on Android 7.0 or higher devices.\n" + + " - This app only use LWJGL2 and don't have a JRE8 desugar, so doesn't support 1.13 or higher versions.\n" + + " - This app is not affiliated with Minecraft, Mojang or Microsoft.\n") + + + MainActivity: strings + */ + public static final int mcn_exit_title=0x7f0a005b; + public static final int status_bar_notification_info_overflow=0x7f0a0016; + public static final int toast_login_error=0x7f0a0047; + /** Toast messages + */ + public static final int toast_permission_denied=0x7f0a0046; + /** Update part (unused now) + */ + public static final int update_console=0x7f0a0077; + public static final int warning_action_exit=0x7f0a003c; + public static final int warning_action_install=0x7f0a003a; + public static final int warning_action_tryanyway=0x7f0a003b; + public static final int warning_msg=0x7f0a0038; + public static final int warning_noshowagain=0x7f0a0039; + public static final int warning_remove_account=0x7f0a003d; + /** Warning + */ + public static final int warning_title=0x7f0a0037; + } + public static final class style { + public static final int AlertDialog_AppCompat=0x7f0700a4; + public static final int AlertDialog_AppCompat_Light=0x7f0700a5; + public static final int AlertTheme=0x7f070167; + public static final int Animation_AppCompat_Dialog=0x7f0700a6; + public static final int Animation_AppCompat_DropDownUp=0x7f0700a7; + public static final int Animation_Design_BottomSheetDialog=0x7f070002; + public static final int AppTheme=0x7f070165; + public static final int Base_AlertDialog_AppCompat=0x7f0700a8; + public static final int Base_AlertDialog_AppCompat_Light=0x7f0700a9; + public static final int Base_Animation_AppCompat_Dialog=0x7f0700aa; + public static final int Base_Animation_AppCompat_DropDownUp=0x7f0700ab; + public static final int Base_DialogWindowTitle_AppCompat=0x7f0700ac; + public static final int Base_DialogWindowTitleBackground_AppCompat=0x7f0700ad; + public static final int Base_TextAppearance_AppCompat=0x7f070052; + public static final int Base_TextAppearance_AppCompat_Body1=0x7f070053; + public static final int Base_TextAppearance_AppCompat_Body2=0x7f070054; + public static final int Base_TextAppearance_AppCompat_Button=0x7f07003c; + public static final int Base_TextAppearance_AppCompat_Caption=0x7f070055; + public static final int Base_TextAppearance_AppCompat_Display1=0x7f070056; + public static final int Base_TextAppearance_AppCompat_Display2=0x7f070057; + public static final int Base_TextAppearance_AppCompat_Display3=0x7f070058; + public static final int Base_TextAppearance_AppCompat_Display4=0x7f070059; + public static final int Base_TextAppearance_AppCompat_Headline=0x7f07005a; + public static final int Base_TextAppearance_AppCompat_Inverse=0x7f070025; + public static final int Base_TextAppearance_AppCompat_Large=0x7f07005b; + public static final int Base_TextAppearance_AppCompat_Large_Inverse=0x7f070026; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f07005c; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f07005d; + public static final int Base_TextAppearance_AppCompat_Medium=0x7f07005e; + public static final int Base_TextAppearance_AppCompat_Medium_Inverse=0x7f070027; + public static final int Base_TextAppearance_AppCompat_Menu=0x7f07005f; + public static final int Base_TextAppearance_AppCompat_SearchResult=0x7f0700ae; + public static final int Base_TextAppearance_AppCompat_SearchResult_Subtitle=0x7f070060; + public static final int Base_TextAppearance_AppCompat_SearchResult_Title=0x7f070061; + public static final int Base_TextAppearance_AppCompat_Small=0x7f070062; + public static final int Base_TextAppearance_AppCompat_Small_Inverse=0x7f070028; + public static final int Base_TextAppearance_AppCompat_Subhead=0x7f070063; + public static final int Base_TextAppearance_AppCompat_Subhead_Inverse=0x7f070029; + public static final int Base_TextAppearance_AppCompat_Title=0x7f070064; + public static final int Base_TextAppearance_AppCompat_Title_Inverse=0x7f07002a; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f07009d; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f070065; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f070066; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f070067; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f070068; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f070069; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f07006a; + public static final int Base_TextAppearance_AppCompat_Widget_Button=0x7f07006b; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Inverse=0x7f07009e; + public static final int Base_TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700af; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f07006c; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f07006d; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f07006e; + public static final int Base_TextAppearance_AppCompat_Widget_Switch=0x7f07006f; + public static final int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070070; + public static final int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f0700b0; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070071; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070072; + public static final int Base_Theme_AppCompat=0x7f070073; + public static final int Base_Theme_AppCompat_CompactMenu=0x7f0700b1; + public static final int Base_Theme_AppCompat_Dialog=0x7f07002b; + public static final int Base_Theme_AppCompat_Dialog_Alert=0x7f0700b2; + public static final int Base_Theme_AppCompat_Dialog_FixedSize=0x7f0700b3; + public static final int Base_Theme_AppCompat_Dialog_MinWidth=0x7f0700b4; + public static final int Base_Theme_AppCompat_DialogWhenLarge=0x7f07001b; + public static final int Base_Theme_AppCompat_Light=0x7f070074; + public static final int Base_Theme_AppCompat_Light_DarkActionBar=0x7f0700b5; + public static final int Base_Theme_AppCompat_Light_Dialog=0x7f07002c; + public static final int Base_Theme_AppCompat_Light_Dialog_Alert=0x7f0700b6; + public static final int Base_Theme_AppCompat_Light_Dialog_FixedSize=0x7f0700b7; + public static final int Base_Theme_AppCompat_Light_Dialog_MinWidth=0x7f0700b8; + public static final int Base_Theme_AppCompat_Light_DialogWhenLarge=0x7f07001c; + public static final int Base_ThemeOverlay_AppCompat=0x7f0700b9; + public static final int Base_ThemeOverlay_AppCompat_ActionBar=0x7f0700ba; + public static final int Base_ThemeOverlay_AppCompat_Dark=0x7f0700bb; + public static final int Base_ThemeOverlay_AppCompat_Dark_ActionBar=0x7f0700bc; + public static final int Base_ThemeOverlay_AppCompat_Dialog=0x7f07002d; + public static final int Base_ThemeOverlay_AppCompat_Dialog_Alert=0x7f0700bd; + public static final int Base_ThemeOverlay_AppCompat_Light=0x7f0700be; + public static final int Base_V11_Theme_AppCompat_Dialog=0x7f07002e; + public static final int Base_V11_Theme_AppCompat_Light_Dialog=0x7f07002f; + public static final int Base_V11_ThemeOverlay_AppCompat_Dialog=0x7f070030; + public static final int Base_V12_Widget_AppCompat_AutoCompleteTextView=0x7f070038; + public static final int Base_V12_Widget_AppCompat_EditText=0x7f070039; + public static final int Base_V21_Theme_AppCompat=0x7f070075; + public static final int Base_V21_Theme_AppCompat_Dialog=0x7f070076; + public static final int Base_V21_Theme_AppCompat_Light=0x7f070077; + public static final int Base_V21_Theme_AppCompat_Light_Dialog=0x7f070078; + public static final int Base_V21_ThemeOverlay_AppCompat_Dialog=0x7f070079; + public static final int Base_V22_Theme_AppCompat=0x7f07009b; + public static final int Base_V22_Theme_AppCompat_Light=0x7f07009c; + public static final int Base_V23_Theme_AppCompat=0x7f07009f; + public static final int Base_V23_Theme_AppCompat_Light=0x7f0700a0; + public static final int Base_V7_Theme_AppCompat=0x7f0700bf; + public static final int Base_V7_Theme_AppCompat_Dialog=0x7f0700c0; + public static final int Base_V7_Theme_AppCompat_Light=0x7f0700c1; + public static final int Base_V7_Theme_AppCompat_Light_Dialog=0x7f0700c2; + public static final int Base_V7_ThemeOverlay_AppCompat_Dialog=0x7f0700c3; + public static final int Base_V7_Widget_AppCompat_AutoCompleteTextView=0x7f0700c4; + public static final int Base_V7_Widget_AppCompat_EditText=0x7f0700c5; + public static final int Base_Widget_AppCompat_ActionBar=0x7f0700c6; + public static final int Base_Widget_AppCompat_ActionBar_Solid=0x7f0700c7; + public static final int Base_Widget_AppCompat_ActionBar_TabBar=0x7f0700c8; + public static final int Base_Widget_AppCompat_ActionBar_TabText=0x7f07007a; + public static final int Base_Widget_AppCompat_ActionBar_TabView=0x7f07007b; + public static final int Base_Widget_AppCompat_ActionButton=0x7f07007c; + public static final int Base_Widget_AppCompat_ActionButton_CloseMode=0x7f07007d; + public static final int Base_Widget_AppCompat_ActionButton_Overflow=0x7f07007e; + public static final int Base_Widget_AppCompat_ActionMode=0x7f0700c9; + public static final int Base_Widget_AppCompat_ActivityChooserView=0x7f0700ca; + public static final int Base_Widget_AppCompat_AutoCompleteTextView=0x7f07003a; + public static final int Base_Widget_AppCompat_Button=0x7f07007f; + public static final int Base_Widget_AppCompat_Button_Borderless=0x7f070080; + public static final int Base_Widget_AppCompat_Button_Borderless_Colored=0x7f070081; + public static final int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f0700cb; + public static final int Base_Widget_AppCompat_Button_Colored=0x7f0700a1; + public static final int Base_Widget_AppCompat_Button_Small=0x7f070082; + public static final int Base_Widget_AppCompat_ButtonBar=0x7f070083; + public static final int Base_Widget_AppCompat_ButtonBar_AlertDialog=0x7f0700cc; + public static final int Base_Widget_AppCompat_CompoundButton_CheckBox=0x7f070084; + public static final int Base_Widget_AppCompat_CompoundButton_RadioButton=0x7f070085; + public static final int Base_Widget_AppCompat_CompoundButton_Switch=0x7f0700cd; + public static final int Base_Widget_AppCompat_DrawerArrowToggle=0x7f07001a; + public static final int Base_Widget_AppCompat_DrawerArrowToggle_Common=0x7f0700ce; + public static final int Base_Widget_AppCompat_DropDownItem_Spinner=0x7f070086; + public static final int Base_Widget_AppCompat_EditText=0x7f07003b; + public static final int Base_Widget_AppCompat_ImageButton=0x7f070087; + public static final int Base_Widget_AppCompat_Light_ActionBar=0x7f0700cf; + public static final int Base_Widget_AppCompat_Light_ActionBar_Solid=0x7f0700d0; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabBar=0x7f0700d1; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText=0x7f070088; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f070089; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabView=0x7f07008a; + public static final int Base_Widget_AppCompat_Light_PopupMenu=0x7f07008b; + public static final int Base_Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07008c; + public static final int Base_Widget_AppCompat_ListMenuView=0x7f0700d2; + public static final int Base_Widget_AppCompat_ListPopupWindow=0x7f07008d; + public static final int Base_Widget_AppCompat_ListView=0x7f07008e; + public static final int Base_Widget_AppCompat_ListView_DropDown=0x7f07008f; + public static final int Base_Widget_AppCompat_ListView_Menu=0x7f070090; + public static final int Base_Widget_AppCompat_PopupMenu=0x7f070091; + public static final int Base_Widget_AppCompat_PopupMenu_Overflow=0x7f070092; + public static final int Base_Widget_AppCompat_PopupWindow=0x7f0700d3; + public static final int Base_Widget_AppCompat_ProgressBar=0x7f070031; + public static final int Base_Widget_AppCompat_ProgressBar_Horizontal=0x7f070032; + public static final int Base_Widget_AppCompat_RatingBar=0x7f070093; + public static final int Base_Widget_AppCompat_RatingBar_Indicator=0x7f0700a2; + public static final int Base_Widget_AppCompat_RatingBar_Small=0x7f0700a3; + public static final int Base_Widget_AppCompat_SearchView=0x7f0700d4; + public static final int Base_Widget_AppCompat_SearchView_ActionBar=0x7f0700d5; + public static final int Base_Widget_AppCompat_SeekBar=0x7f070094; + public static final int Base_Widget_AppCompat_SeekBar_Discrete=0x7f0700d6; + public static final int Base_Widget_AppCompat_Spinner=0x7f070095; + public static final int Base_Widget_AppCompat_Spinner_Underlined=0x7f07001d; + public static final int Base_Widget_AppCompat_TextView_SpinnerItem=0x7f070096; + public static final int Base_Widget_AppCompat_Toolbar=0x7f0700d7; + public static final int Base_Widget_AppCompat_Toolbar_Button_Navigation=0x7f070097; + public static final int Base_Widget_Design_AppBarLayout=0x7f070003; + public static final int Base_Widget_Design_TabLayout=0x7f070004; + public static final int MenuDialog=0x7f070168; + public static final int MenuDialogAnimation=0x7f070169; + public static final int Platform_AppCompat=0x7f070033; + public static final int Platform_AppCompat_Light=0x7f070034; + public static final int Platform_ThemeOverlay_AppCompat=0x7f070098; + public static final int Platform_ThemeOverlay_AppCompat_Dark=0x7f070099; + public static final int Platform_ThemeOverlay_AppCompat_Light=0x7f07009a; + public static final int Platform_V11_AppCompat=0x7f070035; + public static final int Platform_V11_AppCompat_Light=0x7f070036; + public static final int Platform_V14_AppCompat=0x7f07003d; + public static final int Platform_V14_AppCompat_Light=0x7f07003e; + public static final int Platform_Widget_AppCompat_Spinner=0x7f070037; + public static final int RtlOverlay_DialogWindowTitle_AppCompat=0x7f070044; + public static final int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem=0x7f070045; + public static final int RtlOverlay_Widget_AppCompat_DialogTitle_Icon=0x7f070046; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem=0x7f070047; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup=0x7f070048; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text=0x7f070049; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown=0x7f07004a; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1=0x7f07004b; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2=0x7f07004c; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Query=0x7f07004d; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Text=0x7f07004e; + public static final int RtlOverlay_Widget_AppCompat_SearchView_MagIcon=0x7f07004f; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton=0x7f070050; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow=0x7f070051; + public static final int RunTheme=0x7f070166; + public static final int TextAppearance_AppCompat=0x7f0700d8; + public static final int TextAppearance_AppCompat_Body1=0x7f0700d9; + public static final int TextAppearance_AppCompat_Body2=0x7f0700da; + public static final int TextAppearance_AppCompat_Button=0x7f0700db; + public static final int TextAppearance_AppCompat_Caption=0x7f0700dc; + public static final int TextAppearance_AppCompat_Display1=0x7f0700dd; + public static final int TextAppearance_AppCompat_Display2=0x7f0700de; + public static final int TextAppearance_AppCompat_Display3=0x7f0700df; + public static final int TextAppearance_AppCompat_Display4=0x7f0700e0; + public static final int TextAppearance_AppCompat_Headline=0x7f0700e1; + public static final int TextAppearance_AppCompat_Inverse=0x7f0700e2; + public static final int TextAppearance_AppCompat_Large=0x7f0700e3; + public static final int TextAppearance_AppCompat_Large_Inverse=0x7f0700e4; + public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle=0x7f0700e5; + public static final int TextAppearance_AppCompat_Light_SearchResult_Title=0x7f0700e6; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f0700e7; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f0700e8; + public static final int TextAppearance_AppCompat_Medium=0x7f0700e9; + public static final int TextAppearance_AppCompat_Medium_Inverse=0x7f0700ea; + public static final int TextAppearance_AppCompat_Menu=0x7f0700eb; + public static final int TextAppearance_AppCompat_SearchResult_Subtitle=0x7f0700ec; + public static final int TextAppearance_AppCompat_SearchResult_Title=0x7f0700ed; + public static final int TextAppearance_AppCompat_Small=0x7f0700ee; + public static final int TextAppearance_AppCompat_Small_Inverse=0x7f0700ef; + public static final int TextAppearance_AppCompat_Subhead=0x7f0700f0; + public static final int TextAppearance_AppCompat_Subhead_Inverse=0x7f0700f1; + public static final int TextAppearance_AppCompat_Title=0x7f0700f2; + public static final int TextAppearance_AppCompat_Title_Inverse=0x7f0700f3; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f0700f4; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f0700f5; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f0700f6; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f0700f7; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f0700f8; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f0700f9; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse=0x7f0700fa; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f0700fb; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse=0x7f0700fc; + public static final int TextAppearance_AppCompat_Widget_Button=0x7f0700fd; + public static final int TextAppearance_AppCompat_Widget_Button_Inverse=0x7f0700fe; + public static final int TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700ff; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f070100; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f070101; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f070102; + public static final int TextAppearance_AppCompat_Widget_Switch=0x7f070103; + public static final int TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070104; + public static final int TextAppearance_Design_CollapsingToolbar_Expanded=0x7f070005; + public static final int TextAppearance_Design_Counter=0x7f070006; + public static final int TextAppearance_Design_Counter_Overflow=0x7f070007; + public static final int TextAppearance_Design_Error=0x7f070008; + public static final int TextAppearance_Design_Hint=0x7f070009; + public static final int TextAppearance_Design_Snackbar_Message=0x7f07000a; + public static final int TextAppearance_Design_Tab=0x7f07000b; + public static final int TextAppearance_StatusBar_EventContent=0x7f07003f; + public static final int TextAppearance_StatusBar_EventContent_Info=0x7f070040; + public static final int TextAppearance_StatusBar_EventContent_Line2=0x7f070041; + public static final int TextAppearance_StatusBar_EventContent_Time=0x7f070042; + public static final int TextAppearance_StatusBar_EventContent_Title=0x7f070043; + public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f070105; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070106; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070107; + public static final int Theme_AppCompat=0x7f070108; + public static final int Theme_AppCompat_CompactMenu=0x7f070109; + public static final int Theme_AppCompat_DayNight=0x7f07001e; + public static final int Theme_AppCompat_DayNight_DarkActionBar=0x7f07001f; + public static final int Theme_AppCompat_DayNight_Dialog=0x7f070020; + public static final int Theme_AppCompat_DayNight_Dialog_Alert=0x7f070021; + public static final int Theme_AppCompat_DayNight_Dialog_MinWidth=0x7f070022; + public static final int Theme_AppCompat_DayNight_DialogWhenLarge=0x7f070023; + public static final int Theme_AppCompat_DayNight_NoActionBar=0x7f070024; + public static final int Theme_AppCompat_Dialog=0x7f07010a; + public static final int Theme_AppCompat_Dialog_Alert=0x7f07010b; + public static final int Theme_AppCompat_Dialog_MinWidth=0x7f07010c; + public static final int Theme_AppCompat_DialogWhenLarge=0x7f07010d; + public static final int Theme_AppCompat_Light=0x7f07010e; + public static final int Theme_AppCompat_Light_DarkActionBar=0x7f07010f; + public static final int Theme_AppCompat_Light_Dialog=0x7f070110; + public static final int Theme_AppCompat_Light_Dialog_Alert=0x7f070111; + public static final int Theme_AppCompat_Light_Dialog_MinWidth=0x7f070112; + public static final int Theme_AppCompat_Light_DialogWhenLarge=0x7f070113; + public static final int Theme_AppCompat_Light_NoActionBar=0x7f070114; + public static final int Theme_AppCompat_NoActionBar=0x7f070115; + public static final int Theme_Design=0x7f07000c; + public static final int Theme_Design_BottomSheetDialog=0x7f07000d; + public static final int Theme_Design_Light=0x7f07000e; + public static final int Theme_Design_Light_BottomSheetDialog=0x7f07000f; + public static final int Theme_Design_Light_NoActionBar=0x7f070010; + public static final int Theme_Design_NoActionBar=0x7f070011; + public static final int ThemeOverlay_AppCompat=0x7f070116; + public static final int ThemeOverlay_AppCompat_ActionBar=0x7f070117; + public static final int ThemeOverlay_AppCompat_Dark=0x7f070118; + public static final int ThemeOverlay_AppCompat_Dark_ActionBar=0x7f070119; + public static final int ThemeOverlay_AppCompat_Dialog=0x7f07011a; + public static final int ThemeOverlay_AppCompat_Dialog_Alert=0x7f07011b; + public static final int ThemeOverlay_AppCompat_Light=0x7f07011c; + public static final int Widget_AppCompat_ActionBar=0x7f07011d; + public static final int Widget_AppCompat_ActionBar_Solid=0x7f07011e; + public static final int Widget_AppCompat_ActionBar_TabBar=0x7f07011f; + public static final int Widget_AppCompat_ActionBar_TabText=0x7f070120; + public static final int Widget_AppCompat_ActionBar_TabView=0x7f070121; + public static final int Widget_AppCompat_ActionButton=0x7f070122; + public static final int Widget_AppCompat_ActionButton_CloseMode=0x7f070123; + public static final int Widget_AppCompat_ActionButton_Overflow=0x7f070124; + public static final int Widget_AppCompat_ActionMode=0x7f070125; + public static final int Widget_AppCompat_ActivityChooserView=0x7f070126; + public static final int Widget_AppCompat_AutoCompleteTextView=0x7f070127; + public static final int Widget_AppCompat_Button=0x7f070128; + public static final int Widget_AppCompat_Button_Borderless=0x7f070129; + public static final int Widget_AppCompat_Button_Borderless_Colored=0x7f07012a; + public static final int Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f07012b; + public static final int Widget_AppCompat_Button_Colored=0x7f07012c; + public static final int Widget_AppCompat_Button_Small=0x7f07012d; + public static final int Widget_AppCompat_ButtonBar=0x7f07012e; + public static final int Widget_AppCompat_ButtonBar_AlertDialog=0x7f07012f; + public static final int Widget_AppCompat_CompoundButton_CheckBox=0x7f070130; + public static final int Widget_AppCompat_CompoundButton_RadioButton=0x7f070131; + public static final int Widget_AppCompat_CompoundButton_Switch=0x7f070132; + public static final int Widget_AppCompat_DrawerArrowToggle=0x7f070133; + public static final int Widget_AppCompat_DropDownItem_Spinner=0x7f070134; + public static final int Widget_AppCompat_EditText=0x7f070135; + public static final int Widget_AppCompat_ImageButton=0x7f070136; + public static final int Widget_AppCompat_Light_ActionBar=0x7f070137; + public static final int Widget_AppCompat_Light_ActionBar_Solid=0x7f070138; + public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse=0x7f070139; + public static final int Widget_AppCompat_Light_ActionBar_TabBar=0x7f07013a; + public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse=0x7f07013b; + public static final int Widget_AppCompat_Light_ActionBar_TabText=0x7f07013c; + public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f07013d; + public static final int Widget_AppCompat_Light_ActionBar_TabView=0x7f07013e; + public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse=0x7f07013f; + public static final int Widget_AppCompat_Light_ActionButton=0x7f070140; + public static final int Widget_AppCompat_Light_ActionButton_CloseMode=0x7f070141; + public static final int Widget_AppCompat_Light_ActionButton_Overflow=0x7f070142; + public static final int Widget_AppCompat_Light_ActionMode_Inverse=0x7f070143; + public static final int Widget_AppCompat_Light_ActivityChooserView=0x7f070144; + public static final int Widget_AppCompat_Light_AutoCompleteTextView=0x7f070145; + public static final int Widget_AppCompat_Light_DropDownItem_Spinner=0x7f070146; + public static final int Widget_AppCompat_Light_ListPopupWindow=0x7f070147; + public static final int Widget_AppCompat_Light_ListView_DropDown=0x7f070148; + public static final int Widget_AppCompat_Light_PopupMenu=0x7f070149; + public static final int Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07014a; + public static final int Widget_AppCompat_Light_SearchView=0x7f07014b; + public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar=0x7f07014c; + public static final int Widget_AppCompat_ListMenuView=0x7f07014d; + public static final int Widget_AppCompat_ListPopupWindow=0x7f07014e; + public static final int Widget_AppCompat_ListView=0x7f07014f; + public static final int Widget_AppCompat_ListView_DropDown=0x7f070150; + public static final int Widget_AppCompat_ListView_Menu=0x7f070151; + public static final int Widget_AppCompat_PopupMenu=0x7f070152; + public static final int Widget_AppCompat_PopupMenu_Overflow=0x7f070153; + public static final int Widget_AppCompat_PopupWindow=0x7f070154; + public static final int Widget_AppCompat_ProgressBar=0x7f070155; + public static final int Widget_AppCompat_ProgressBar_Horizontal=0x7f070156; + public static final int Widget_AppCompat_RatingBar=0x7f070157; + public static final int Widget_AppCompat_RatingBar_Indicator=0x7f070158; + public static final int Widget_AppCompat_RatingBar_Small=0x7f070159; + public static final int Widget_AppCompat_SearchView=0x7f07015a; + public static final int Widget_AppCompat_SearchView_ActionBar=0x7f07015b; + public static final int Widget_AppCompat_SeekBar=0x7f07015c; + public static final int Widget_AppCompat_SeekBar_Discrete=0x7f07015d; + public static final int Widget_AppCompat_Spinner=0x7f07015e; + public static final int Widget_AppCompat_Spinner_DropDown=0x7f07015f; + public static final int Widget_AppCompat_Spinner_DropDown_ActionBar=0x7f070160; + public static final int Widget_AppCompat_Spinner_Underlined=0x7f070161; + public static final int Widget_AppCompat_TextView_SpinnerItem=0x7f070162; + public static final int Widget_AppCompat_Toolbar=0x7f070163; + public static final int Widget_AppCompat_Toolbar_Button_Navigation=0x7f070164; + public static final int Widget_Design_AppBarLayout=0x7f070001; + public static final int Widget_Design_BottomSheet_Modal=0x7f070012; + public static final int Widget_Design_CollapsingToolbar=0x7f070013; + public static final int Widget_Design_CoordinatorLayout=0x7f070014; + public static final int Widget_Design_FloatingActionButton=0x7f070015; + public static final int Widget_Design_NavigationView=0x7f070016; + public static final int Widget_Design_ScrimInsetsFrameLayout=0x7f070017; + public static final int Widget_Design_Snackbar=0x7f070018; + public static final int Widget_Design_TabLayout=0x7f070000; + public static final int Widget_Design_TextInputLayout=0x7f070019; + } + public static final class styleable { + /** Attributes that can be used with a ActionBar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #ActionBar_background net.kdt.pojavlaunch:background}
{@link #ActionBar_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionBar_backgroundStacked net.kdt.pojavlaunch:backgroundStacked}
{@link #ActionBar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #ActionBar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #ActionBar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #ActionBar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #ActionBar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #ActionBar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #ActionBar_customNavigationLayout net.kdt.pojavlaunch:customNavigationLayout}
{@link #ActionBar_displayOptions net.kdt.pojavlaunch:displayOptions}
{@link #ActionBar_divider net.kdt.pojavlaunch:divider}
{@link #ActionBar_elevation net.kdt.pojavlaunch:elevation}
{@link #ActionBar_height net.kdt.pojavlaunch:height}
{@link #ActionBar_hideOnContentScroll net.kdt.pojavlaunch:hideOnContentScroll}
{@link #ActionBar_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #ActionBar_homeLayout net.kdt.pojavlaunch:homeLayout}
{@link #ActionBar_icon net.kdt.pojavlaunch:icon}
{@link #ActionBar_indeterminateProgressStyle net.kdt.pojavlaunch:indeterminateProgressStyle}
{@link #ActionBar_itemPadding net.kdt.pojavlaunch:itemPadding}
{@link #ActionBar_logo net.kdt.pojavlaunch:logo}
{@link #ActionBar_navigationMode net.kdt.pojavlaunch:navigationMode}
{@link #ActionBar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #ActionBar_progressBarPadding net.kdt.pojavlaunch:progressBarPadding}
{@link #ActionBar_progressBarStyle net.kdt.pojavlaunch:progressBarStyle}
{@link #ActionBar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #ActionBar_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionBar_title net.kdt.pojavlaunch:title}
{@link #ActionBar_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionBar_background + @see #ActionBar_backgroundSplit + @see #ActionBar_backgroundStacked + @see #ActionBar_contentInsetEnd + @see #ActionBar_contentInsetEndWithActions + @see #ActionBar_contentInsetLeft + @see #ActionBar_contentInsetRight + @see #ActionBar_contentInsetStart + @see #ActionBar_contentInsetStartWithNavigation + @see #ActionBar_customNavigationLayout + @see #ActionBar_displayOptions + @see #ActionBar_divider + @see #ActionBar_elevation + @see #ActionBar_height + @see #ActionBar_hideOnContentScroll + @see #ActionBar_homeAsUpIndicator + @see #ActionBar_homeLayout + @see #ActionBar_icon + @see #ActionBar_indeterminateProgressStyle + @see #ActionBar_itemPadding + @see #ActionBar_logo + @see #ActionBar_navigationMode + @see #ActionBar_popupTheme + @see #ActionBar_progressBarPadding + @see #ActionBar_progressBarStyle + @see #ActionBar_subtitle + @see #ActionBar_subtitleTextStyle + @see #ActionBar_title + @see #ActionBar_titleTextStyle + */ + public static final int[] ActionBar = { + 0x7f01004f, 0x7f010051, 0x7f010052, 0x7f010053, + 0x7f010054, 0x7f010055, 0x7f010056, 0x7f010057, + 0x7f010058, 0x7f010059, 0x7f01005a, 0x7f01005b, + 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f, + 0x7f010060, 0x7f010061, 0x7f010062, 0x7f010063, + 0x7f010064, 0x7f010065, 0x7f010066, 0x7f010067, + 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b, + 0x7f0100a8 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionBar_background = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionBar_backgroundSplit = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundStacked} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundStacked + */ + public static final int ActionBar_backgroundStacked = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int ActionBar_contentInsetEnd = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int ActionBar_contentInsetEndWithActions = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int ActionBar_contentInsetLeft = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int ActionBar_contentInsetRight = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int ActionBar_contentInsetStart = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int ActionBar_contentInsetStartWithNavigation = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#customNavigationLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:customNavigationLayout + */ + public static final int ActionBar_customNavigationLayout = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#displayOptions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ @attr name net.kdt.pojavlaunch:displayOptions + */ + public static final int ActionBar_displayOptions = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int ActionBar_divider = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int ActionBar_elevation = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionBar_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hideOnContentScroll} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hideOnContentScroll + */ + public static final int ActionBar_hideOnContentScroll = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int ActionBar_homeAsUpIndicator = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeLayout + */ + public static final int ActionBar_homeLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#icon} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:icon + */ + public static final int ActionBar_icon = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#indeterminateProgressStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:indeterminateProgressStyle + */ + public static final int ActionBar_indeterminateProgressStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemPadding + */ + public static final int ActionBar_itemPadding = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int ActionBar_logo = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationMode} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ @attr name net.kdt.pojavlaunch:navigationMode + */ + public static final int ActionBar_navigationMode = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int ActionBar_popupTheme = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:progressBarPadding + */ + public static final int ActionBar_progressBarPadding = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:progressBarStyle + */ + public static final int ActionBar_progressBarStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int ActionBar_subtitle = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionBar_subtitleTextStyle = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int ActionBar_title = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionBar_titleTextStyle = 5; + /** Attributes that can be used with a ActionBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionBarLayout_android_layout_gravity android:layout_gravity}
+ @see #ActionBarLayout_android_layout_gravity + */ + public static final int[] ActionBarLayout = { + 0x010100b3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #ActionBarLayout} array. + @attr name android:layout_gravity + */ + public static final int ActionBarLayout_android_layout_gravity = 0; + /** Attributes that can be used with a ActionMenuItemView. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionMenuItemView_android_minWidth android:minWidth}
+ @see #ActionMenuItemView_android_minWidth + */ + public static final int[] ActionMenuItemView = { + 0x0101013f + }; + /** +

This symbol is the offset where the {@link android.R.attr#minWidth} + attribute's value can be found in the {@link #ActionMenuItemView} array. + @attr name android:minWidth + */ + public static final int ActionMenuItemView_android_minWidth = 0; + /** Attributes that can be used with a ActionMenuView. + */ + public static final int[] ActionMenuView = { + + }; + /** Attributes that can be used with a ActionMode. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #ActionMode_background net.kdt.pojavlaunch:background}
{@link #ActionMode_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionMode_closeItemLayout net.kdt.pojavlaunch:closeItemLayout}
{@link #ActionMode_height net.kdt.pojavlaunch:height}
{@link #ActionMode_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionMode_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionMode_background + @see #ActionMode_backgroundSplit + @see #ActionMode_closeItemLayout + @see #ActionMode_height + @see #ActionMode_subtitleTextStyle + @see #ActionMode_titleTextStyle + */ + public static final int[] ActionMode = { + 0x7f01004f, 0x7f010055, 0x7f010056, 0x7f01005a, + 0x7f01005c, 0x7f01006c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionMode_background = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionMode} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionMode_backgroundSplit = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeItemLayout} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeItemLayout + */ + public static final int ActionMode_closeItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionMode_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionMode_subtitleTextStyle = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionMode_titleTextStyle = 1; + /** Attributes that can be used with a ActivityChooserView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ActivityChooserView_expandActivityOverflowButtonDrawable net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable}
{@link #ActivityChooserView_initialActivityCount net.kdt.pojavlaunch:initialActivityCount}
+ @see #ActivityChooserView_expandActivityOverflowButtonDrawable + @see #ActivityChooserView_initialActivityCount + */ + public static final int[] ActivityChooserView = { + 0x7f01006d, 0x7f01006e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandActivityOverflowButtonDrawable} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable + */ + public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#initialActivityCount} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:initialActivityCount + */ + public static final int ActivityChooserView_initialActivityCount = 0; + /** Attributes that can be used with a AlertDialog. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #AlertDialog_android_layout android:layout}
{@link #AlertDialog_buttonPanelSideLayout net.kdt.pojavlaunch:buttonPanelSideLayout}
{@link #AlertDialog_listItemLayout net.kdt.pojavlaunch:listItemLayout}
{@link #AlertDialog_listLayout net.kdt.pojavlaunch:listLayout}
{@link #AlertDialog_multiChoiceItemLayout net.kdt.pojavlaunch:multiChoiceItemLayout}
{@link #AlertDialog_singleChoiceItemLayout net.kdt.pojavlaunch:singleChoiceItemLayout}
+ @see #AlertDialog_android_layout + @see #AlertDialog_buttonPanelSideLayout + @see #AlertDialog_listItemLayout + @see #AlertDialog_listLayout + @see #AlertDialog_multiChoiceItemLayout + @see #AlertDialog_singleChoiceItemLayout + */ + public static final int[] AlertDialog = { + 0x010100f2, 0x7f01006f, 0x7f010070, 0x7f010071, + 0x7f010072, 0x7f010073 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #AlertDialog} array. + @attr name android:layout + */ + public static final int AlertDialog_android_layout = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonPanelSideLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonPanelSideLayout + */ + public static final int AlertDialog_buttonPanelSideLayout = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listItemLayout + */ + public static final int AlertDialog_listItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listLayout + */ + public static final int AlertDialog_listLayout = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#multiChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:multiChoiceItemLayout + */ + public static final int AlertDialog_multiChoiceItemLayout = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#singleChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:singleChoiceItemLayout + */ + public static final int AlertDialog_singleChoiceItemLayout = 4; + /** Attributes that can be used with a AppBarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #AppBarLayout_android_background android:background}
{@link #AppBarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #AppBarLayout_expanded net.kdt.pojavlaunch:expanded}
+ @see #AppBarLayout_android_background + @see #AppBarLayout_elevation + @see #AppBarLayout_expanded + */ + public static final int[] AppBarLayout = { + 0x010100d4, 0x7f010004, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #AppBarLayout} array. + @attr name android:background + */ + public static final int AppBarLayout_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int AppBarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expanded} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expanded + */ + public static final int AppBarLayout_expanded = 1; + /** Attributes that can be used with a AppBarLayoutStates. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayoutStates_state_collapsed net.kdt.pojavlaunch:state_collapsed}
{@link #AppBarLayoutStates_state_collapsible net.kdt.pojavlaunch:state_collapsible}
+ @see #AppBarLayoutStates_state_collapsed + @see #AppBarLayoutStates_state_collapsible + */ + public static final int[] AppBarLayoutStates = { + 0x7f010005, 0x7f010006 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsed} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsed + */ + public static final int AppBarLayoutStates_state_collapsed = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsible} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsible + */ + public static final int AppBarLayoutStates_state_collapsible = 1; + /** Attributes that can be used with a AppBarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayout_Layout_layout_scrollFlags net.kdt.pojavlaunch:layout_scrollFlags}
{@link #AppBarLayout_Layout_layout_scrollInterpolator net.kdt.pojavlaunch:layout_scrollInterpolator}
+ @see #AppBarLayout_Layout_layout_scrollFlags + @see #AppBarLayout_Layout_layout_scrollInterpolator + */ + public static final int[] AppBarLayout_Layout = { + 0x7f010007, 0x7f010008 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollFlags} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ @attr name net.kdt.pojavlaunch:layout_scrollFlags + */ + public static final int AppBarLayout_Layout_layout_scrollFlags = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollInterpolator} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_scrollInterpolator + */ + public static final int AppBarLayout_Layout_layout_scrollInterpolator = 1; + /** Attributes that can be used with a AppCompatImageView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatImageView_android_src android:src}
{@link #AppCompatImageView_srcCompat net.kdt.pojavlaunch:srcCompat}
+ @see #AppCompatImageView_android_src + @see #AppCompatImageView_srcCompat + */ + public static final int[] AppCompatImageView = { + 0x01010119, 0x7f010074 + }; + /** +

This symbol is the offset where the {@link android.R.attr#src} + attribute's value can be found in the {@link #AppCompatImageView} array. + @attr name android:src + */ + public static final int AppCompatImageView_android_src = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#srcCompat} + attribute's value can be found in the {@link #AppCompatImageView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:srcCompat + */ + public static final int AppCompatImageView_srcCompat = 1; + /** Attributes that can be used with a AppCompatSeekBar. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #AppCompatSeekBar_android_thumb android:thumb}
{@link #AppCompatSeekBar_tickMark net.kdt.pojavlaunch:tickMark}
{@link #AppCompatSeekBar_tickMarkTint net.kdt.pojavlaunch:tickMarkTint}
{@link #AppCompatSeekBar_tickMarkTintMode net.kdt.pojavlaunch:tickMarkTintMode}
+ @see #AppCompatSeekBar_android_thumb + @see #AppCompatSeekBar_tickMark + @see #AppCompatSeekBar_tickMarkTint + @see #AppCompatSeekBar_tickMarkTintMode + */ + public static final int[] AppCompatSeekBar = { + 0x01010142, 0x7f010075, 0x7f010076, 0x7f010077 + }; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + @attr name android:thumb + */ + public static final int AppCompatSeekBar_android_thumb = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMark} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tickMark + */ + public static final int AppCompatSeekBar_tickMark = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTint} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tickMarkTint + */ + public static final int AppCompatSeekBar_tickMarkTint = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTintMode} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:tickMarkTintMode + */ + public static final int AppCompatSeekBar_tickMarkTintMode = 3; + /** Attributes that can be used with a AppCompatTextView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatTextView_android_textAppearance android:textAppearance}
{@link #AppCompatTextView_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #AppCompatTextView_android_textAppearance + @see #AppCompatTextView_textAllCaps + */ + public static final int[] AppCompatTextView = { + 0x01010034, 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textAppearance} + attribute's value can be found in the {@link #AppCompatTextView} array. + @attr name android:textAppearance + */ + public static final int AppCompatTextView_android_textAppearance = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #AppCompatTextView} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int AppCompatTextView_textAllCaps = 1; + /** Attributes that can be used with a AppCompatTheme. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #AppCompatTheme_actionBarDivider net.kdt.pojavlaunch:actionBarDivider}
{@link #AppCompatTheme_actionBarItemBackground net.kdt.pojavlaunch:actionBarItemBackground}
{@link #AppCompatTheme_actionBarPopupTheme net.kdt.pojavlaunch:actionBarPopupTheme}
{@link #AppCompatTheme_actionBarSize net.kdt.pojavlaunch:actionBarSize}
{@link #AppCompatTheme_actionBarSplitStyle net.kdt.pojavlaunch:actionBarSplitStyle}
{@link #AppCompatTheme_actionBarStyle net.kdt.pojavlaunch:actionBarStyle}
{@link #AppCompatTheme_actionBarTabBarStyle net.kdt.pojavlaunch:actionBarTabBarStyle}
{@link #AppCompatTheme_actionBarTabStyle net.kdt.pojavlaunch:actionBarTabStyle}
{@link #AppCompatTheme_actionBarTabTextStyle net.kdt.pojavlaunch:actionBarTabTextStyle}
{@link #AppCompatTheme_actionBarTheme net.kdt.pojavlaunch:actionBarTheme}
{@link #AppCompatTheme_actionBarWidgetTheme net.kdt.pojavlaunch:actionBarWidgetTheme}
{@link #AppCompatTheme_actionButtonStyle net.kdt.pojavlaunch:actionButtonStyle}
{@link #AppCompatTheme_actionDropDownStyle net.kdt.pojavlaunch:actionDropDownStyle}
{@link #AppCompatTheme_actionMenuTextAppearance net.kdt.pojavlaunch:actionMenuTextAppearance}
{@link #AppCompatTheme_actionMenuTextColor net.kdt.pojavlaunch:actionMenuTextColor}
{@link #AppCompatTheme_actionModeBackground net.kdt.pojavlaunch:actionModeBackground}
{@link #AppCompatTheme_actionModeCloseButtonStyle net.kdt.pojavlaunch:actionModeCloseButtonStyle}
{@link #AppCompatTheme_actionModeCloseDrawable net.kdt.pojavlaunch:actionModeCloseDrawable}
{@link #AppCompatTheme_actionModeCopyDrawable net.kdt.pojavlaunch:actionModeCopyDrawable}
{@link #AppCompatTheme_actionModeCutDrawable net.kdt.pojavlaunch:actionModeCutDrawable}
{@link #AppCompatTheme_actionModeFindDrawable net.kdt.pojavlaunch:actionModeFindDrawable}
{@link #AppCompatTheme_actionModePasteDrawable net.kdt.pojavlaunch:actionModePasteDrawable}
{@link #AppCompatTheme_actionModePopupWindowStyle net.kdt.pojavlaunch:actionModePopupWindowStyle}
{@link #AppCompatTheme_actionModeSelectAllDrawable net.kdt.pojavlaunch:actionModeSelectAllDrawable}
{@link #AppCompatTheme_actionModeShareDrawable net.kdt.pojavlaunch:actionModeShareDrawable}
{@link #AppCompatTheme_actionModeSplitBackground net.kdt.pojavlaunch:actionModeSplitBackground}
{@link #AppCompatTheme_actionModeStyle net.kdt.pojavlaunch:actionModeStyle}
{@link #AppCompatTheme_actionModeWebSearchDrawable net.kdt.pojavlaunch:actionModeWebSearchDrawable}
{@link #AppCompatTheme_actionOverflowButtonStyle net.kdt.pojavlaunch:actionOverflowButtonStyle}
{@link #AppCompatTheme_actionOverflowMenuStyle net.kdt.pojavlaunch:actionOverflowMenuStyle}
{@link #AppCompatTheme_activityChooserViewStyle net.kdt.pojavlaunch:activityChooserViewStyle}
{@link #AppCompatTheme_alertDialogButtonGroupStyle net.kdt.pojavlaunch:alertDialogButtonGroupStyle}
{@link #AppCompatTheme_alertDialogCenterButtons net.kdt.pojavlaunch:alertDialogCenterButtons}
{@link #AppCompatTheme_alertDialogStyle net.kdt.pojavlaunch:alertDialogStyle}
{@link #AppCompatTheme_alertDialogTheme net.kdt.pojavlaunch:alertDialogTheme}
{@link #AppCompatTheme_android_windowAnimationStyle android:windowAnimationStyle}
{@link #AppCompatTheme_android_windowIsFloating android:windowIsFloating}
{@link #AppCompatTheme_autoCompleteTextViewStyle net.kdt.pojavlaunch:autoCompleteTextViewStyle}
{@link #AppCompatTheme_borderlessButtonStyle net.kdt.pojavlaunch:borderlessButtonStyle}
{@link #AppCompatTheme_buttonBarButtonStyle net.kdt.pojavlaunch:buttonBarButtonStyle}
{@link #AppCompatTheme_buttonBarNegativeButtonStyle net.kdt.pojavlaunch:buttonBarNegativeButtonStyle}
{@link #AppCompatTheme_buttonBarNeutralButtonStyle net.kdt.pojavlaunch:buttonBarNeutralButtonStyle}
{@link #AppCompatTheme_buttonBarPositiveButtonStyle net.kdt.pojavlaunch:buttonBarPositiveButtonStyle}
{@link #AppCompatTheme_buttonBarStyle net.kdt.pojavlaunch:buttonBarStyle}
{@link #AppCompatTheme_buttonStyle net.kdt.pojavlaunch:buttonStyle}
{@link #AppCompatTheme_buttonStyleSmall net.kdt.pojavlaunch:buttonStyleSmall}
{@link #AppCompatTheme_checkboxStyle net.kdt.pojavlaunch:checkboxStyle}
{@link #AppCompatTheme_checkedTextViewStyle net.kdt.pojavlaunch:checkedTextViewStyle}
{@link #AppCompatTheme_colorAccent net.kdt.pojavlaunch:colorAccent}
{@link #AppCompatTheme_colorBackgroundFloating net.kdt.pojavlaunch:colorBackgroundFloating}
{@link #AppCompatTheme_colorButtonNormal net.kdt.pojavlaunch:colorButtonNormal}
{@link #AppCompatTheme_colorControlActivated net.kdt.pojavlaunch:colorControlActivated}
{@link #AppCompatTheme_colorControlHighlight net.kdt.pojavlaunch:colorControlHighlight}
{@link #AppCompatTheme_colorControlNormal net.kdt.pojavlaunch:colorControlNormal}
{@link #AppCompatTheme_colorPrimary net.kdt.pojavlaunch:colorPrimary}
{@link #AppCompatTheme_colorPrimaryDark net.kdt.pojavlaunch:colorPrimaryDark}
{@link #AppCompatTheme_colorSwitchThumbNormal net.kdt.pojavlaunch:colorSwitchThumbNormal}
{@link #AppCompatTheme_controlBackground net.kdt.pojavlaunch:controlBackground}
{@link #AppCompatTheme_dialogPreferredPadding net.kdt.pojavlaunch:dialogPreferredPadding}
{@link #AppCompatTheme_dialogTheme net.kdt.pojavlaunch:dialogTheme}
{@link #AppCompatTheme_dividerHorizontal net.kdt.pojavlaunch:dividerHorizontal}
{@link #AppCompatTheme_dividerVertical net.kdt.pojavlaunch:dividerVertical}
{@link #AppCompatTheme_dropDownListViewStyle net.kdt.pojavlaunch:dropDownListViewStyle}
{@link #AppCompatTheme_dropdownListPreferredItemHeight net.kdt.pojavlaunch:dropdownListPreferredItemHeight}
{@link #AppCompatTheme_editTextBackground net.kdt.pojavlaunch:editTextBackground}
{@link #AppCompatTheme_editTextColor net.kdt.pojavlaunch:editTextColor}
{@link #AppCompatTheme_editTextStyle net.kdt.pojavlaunch:editTextStyle}
{@link #AppCompatTheme_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #AppCompatTheme_imageButtonStyle net.kdt.pojavlaunch:imageButtonStyle}
{@link #AppCompatTheme_listChoiceBackgroundIndicator net.kdt.pojavlaunch:listChoiceBackgroundIndicator}
{@link #AppCompatTheme_listDividerAlertDialog net.kdt.pojavlaunch:listDividerAlertDialog}
{@link #AppCompatTheme_listMenuViewStyle net.kdt.pojavlaunch:listMenuViewStyle}
{@link #AppCompatTheme_listPopupWindowStyle net.kdt.pojavlaunch:listPopupWindowStyle}
{@link #AppCompatTheme_listPreferredItemHeight net.kdt.pojavlaunch:listPreferredItemHeight}
{@link #AppCompatTheme_listPreferredItemHeightLarge net.kdt.pojavlaunch:listPreferredItemHeightLarge}
{@link #AppCompatTheme_listPreferredItemHeightSmall net.kdt.pojavlaunch:listPreferredItemHeightSmall}
{@link #AppCompatTheme_listPreferredItemPaddingLeft net.kdt.pojavlaunch:listPreferredItemPaddingLeft}
{@link #AppCompatTheme_listPreferredItemPaddingRight net.kdt.pojavlaunch:listPreferredItemPaddingRight}
{@link #AppCompatTheme_panelBackground net.kdt.pojavlaunch:panelBackground}
{@link #AppCompatTheme_panelMenuListTheme net.kdt.pojavlaunch:panelMenuListTheme}
{@link #AppCompatTheme_panelMenuListWidth net.kdt.pojavlaunch:panelMenuListWidth}
{@link #AppCompatTheme_popupMenuStyle net.kdt.pojavlaunch:popupMenuStyle}
{@link #AppCompatTheme_popupWindowStyle net.kdt.pojavlaunch:popupWindowStyle}
{@link #AppCompatTheme_radioButtonStyle net.kdt.pojavlaunch:radioButtonStyle}
{@link #AppCompatTheme_ratingBarStyle net.kdt.pojavlaunch:ratingBarStyle}
{@link #AppCompatTheme_ratingBarStyleIndicator net.kdt.pojavlaunch:ratingBarStyleIndicator}
{@link #AppCompatTheme_ratingBarStyleSmall net.kdt.pojavlaunch:ratingBarStyleSmall}
{@link #AppCompatTheme_searchViewStyle net.kdt.pojavlaunch:searchViewStyle}
{@link #AppCompatTheme_seekBarStyle net.kdt.pojavlaunch:seekBarStyle}
{@link #AppCompatTheme_selectableItemBackground net.kdt.pojavlaunch:selectableItemBackground}
{@link #AppCompatTheme_selectableItemBackgroundBorderless net.kdt.pojavlaunch:selectableItemBackgroundBorderless}
{@link #AppCompatTheme_spinnerDropDownItemStyle net.kdt.pojavlaunch:spinnerDropDownItemStyle}
{@link #AppCompatTheme_spinnerStyle net.kdt.pojavlaunch:spinnerStyle}
{@link #AppCompatTheme_switchStyle net.kdt.pojavlaunch:switchStyle}
{@link #AppCompatTheme_textAppearanceLargePopupMenu net.kdt.pojavlaunch:textAppearanceLargePopupMenu}
{@link #AppCompatTheme_textAppearanceListItem net.kdt.pojavlaunch:textAppearanceListItem}
{@link #AppCompatTheme_textAppearanceListItemSmall net.kdt.pojavlaunch:textAppearanceListItemSmall}
{@link #AppCompatTheme_textAppearancePopupMenuHeader net.kdt.pojavlaunch:textAppearancePopupMenuHeader}
{@link #AppCompatTheme_textAppearanceSearchResultSubtitle net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle}
{@link #AppCompatTheme_textAppearanceSearchResultTitle net.kdt.pojavlaunch:textAppearanceSearchResultTitle}
{@link #AppCompatTheme_textAppearanceSmallPopupMenu net.kdt.pojavlaunch:textAppearanceSmallPopupMenu}
{@link #AppCompatTheme_textColorAlertDialogListItem net.kdt.pojavlaunch:textColorAlertDialogListItem}
{@link #AppCompatTheme_textColorSearchUrl net.kdt.pojavlaunch:textColorSearchUrl}
{@link #AppCompatTheme_toolbarNavigationButtonStyle net.kdt.pojavlaunch:toolbarNavigationButtonStyle}
{@link #AppCompatTheme_toolbarStyle net.kdt.pojavlaunch:toolbarStyle}
{@link #AppCompatTheme_windowActionBar net.kdt.pojavlaunch:windowActionBar}
{@link #AppCompatTheme_windowActionBarOverlay net.kdt.pojavlaunch:windowActionBarOverlay}
{@link #AppCompatTheme_windowActionModeOverlay net.kdt.pojavlaunch:windowActionModeOverlay}
{@link #AppCompatTheme_windowFixedHeightMajor net.kdt.pojavlaunch:windowFixedHeightMajor}
{@link #AppCompatTheme_windowFixedHeightMinor net.kdt.pojavlaunch:windowFixedHeightMinor}
{@link #AppCompatTheme_windowFixedWidthMajor net.kdt.pojavlaunch:windowFixedWidthMajor}
{@link #AppCompatTheme_windowFixedWidthMinor net.kdt.pojavlaunch:windowFixedWidthMinor}
{@link #AppCompatTheme_windowMinWidthMajor net.kdt.pojavlaunch:windowMinWidthMajor}
{@link #AppCompatTheme_windowMinWidthMinor net.kdt.pojavlaunch:windowMinWidthMinor}
{@link #AppCompatTheme_windowNoTitle net.kdt.pojavlaunch:windowNoTitle}
+ @see #AppCompatTheme_actionBarDivider + @see #AppCompatTheme_actionBarItemBackground + @see #AppCompatTheme_actionBarPopupTheme + @see #AppCompatTheme_actionBarSize + @see #AppCompatTheme_actionBarSplitStyle + @see #AppCompatTheme_actionBarStyle + @see #AppCompatTheme_actionBarTabBarStyle + @see #AppCompatTheme_actionBarTabStyle + @see #AppCompatTheme_actionBarTabTextStyle + @see #AppCompatTheme_actionBarTheme + @see #AppCompatTheme_actionBarWidgetTheme + @see #AppCompatTheme_actionButtonStyle + @see #AppCompatTheme_actionDropDownStyle + @see #AppCompatTheme_actionMenuTextAppearance + @see #AppCompatTheme_actionMenuTextColor + @see #AppCompatTheme_actionModeBackground + @see #AppCompatTheme_actionModeCloseButtonStyle + @see #AppCompatTheme_actionModeCloseDrawable + @see #AppCompatTheme_actionModeCopyDrawable + @see #AppCompatTheme_actionModeCutDrawable + @see #AppCompatTheme_actionModeFindDrawable + @see #AppCompatTheme_actionModePasteDrawable + @see #AppCompatTheme_actionModePopupWindowStyle + @see #AppCompatTheme_actionModeSelectAllDrawable + @see #AppCompatTheme_actionModeShareDrawable + @see #AppCompatTheme_actionModeSplitBackground + @see #AppCompatTheme_actionModeStyle + @see #AppCompatTheme_actionModeWebSearchDrawable + @see #AppCompatTheme_actionOverflowButtonStyle + @see #AppCompatTheme_actionOverflowMenuStyle + @see #AppCompatTheme_activityChooserViewStyle + @see #AppCompatTheme_alertDialogButtonGroupStyle + @see #AppCompatTheme_alertDialogCenterButtons + @see #AppCompatTheme_alertDialogStyle + @see #AppCompatTheme_alertDialogTheme + @see #AppCompatTheme_android_windowAnimationStyle + @see #AppCompatTheme_android_windowIsFloating + @see #AppCompatTheme_autoCompleteTextViewStyle + @see #AppCompatTheme_borderlessButtonStyle + @see #AppCompatTheme_buttonBarButtonStyle + @see #AppCompatTheme_buttonBarNegativeButtonStyle + @see #AppCompatTheme_buttonBarNeutralButtonStyle + @see #AppCompatTheme_buttonBarPositiveButtonStyle + @see #AppCompatTheme_buttonBarStyle + @see #AppCompatTheme_buttonStyle + @see #AppCompatTheme_buttonStyleSmall + @see #AppCompatTheme_checkboxStyle + @see #AppCompatTheme_checkedTextViewStyle + @see #AppCompatTheme_colorAccent + @see #AppCompatTheme_colorBackgroundFloating + @see #AppCompatTheme_colorButtonNormal + @see #AppCompatTheme_colorControlActivated + @see #AppCompatTheme_colorControlHighlight + @see #AppCompatTheme_colorControlNormal + @see #AppCompatTheme_colorPrimary + @see #AppCompatTheme_colorPrimaryDark + @see #AppCompatTheme_colorSwitchThumbNormal + @see #AppCompatTheme_controlBackground + @see #AppCompatTheme_dialogPreferredPadding + @see #AppCompatTheme_dialogTheme + @see #AppCompatTheme_dividerHorizontal + @see #AppCompatTheme_dividerVertical + @see #AppCompatTheme_dropDownListViewStyle + @see #AppCompatTheme_dropdownListPreferredItemHeight + @see #AppCompatTheme_editTextBackground + @see #AppCompatTheme_editTextColor + @see #AppCompatTheme_editTextStyle + @see #AppCompatTheme_homeAsUpIndicator + @see #AppCompatTheme_imageButtonStyle + @see #AppCompatTheme_listChoiceBackgroundIndicator + @see #AppCompatTheme_listDividerAlertDialog + @see #AppCompatTheme_listMenuViewStyle + @see #AppCompatTheme_listPopupWindowStyle + @see #AppCompatTheme_listPreferredItemHeight + @see #AppCompatTheme_listPreferredItemHeightLarge + @see #AppCompatTheme_listPreferredItemHeightSmall + @see #AppCompatTheme_listPreferredItemPaddingLeft + @see #AppCompatTheme_listPreferredItemPaddingRight + @see #AppCompatTheme_panelBackground + @see #AppCompatTheme_panelMenuListTheme + @see #AppCompatTheme_panelMenuListWidth + @see #AppCompatTheme_popupMenuStyle + @see #AppCompatTheme_popupWindowStyle + @see #AppCompatTheme_radioButtonStyle + @see #AppCompatTheme_ratingBarStyle + @see #AppCompatTheme_ratingBarStyleIndicator + @see #AppCompatTheme_ratingBarStyleSmall + @see #AppCompatTheme_searchViewStyle + @see #AppCompatTheme_seekBarStyle + @see #AppCompatTheme_selectableItemBackground + @see #AppCompatTheme_selectableItemBackgroundBorderless + @see #AppCompatTheme_spinnerDropDownItemStyle + @see #AppCompatTheme_spinnerStyle + @see #AppCompatTheme_switchStyle + @see #AppCompatTheme_textAppearanceLargePopupMenu + @see #AppCompatTheme_textAppearanceListItem + @see #AppCompatTheme_textAppearanceListItemSmall + @see #AppCompatTheme_textAppearancePopupMenuHeader + @see #AppCompatTheme_textAppearanceSearchResultSubtitle + @see #AppCompatTheme_textAppearanceSearchResultTitle + @see #AppCompatTheme_textAppearanceSmallPopupMenu + @see #AppCompatTheme_textColorAlertDialogListItem + @see #AppCompatTheme_textColorSearchUrl + @see #AppCompatTheme_toolbarNavigationButtonStyle + @see #AppCompatTheme_toolbarStyle + @see #AppCompatTheme_windowActionBar + @see #AppCompatTheme_windowActionBarOverlay + @see #AppCompatTheme_windowActionModeOverlay + @see #AppCompatTheme_windowFixedHeightMajor + @see #AppCompatTheme_windowFixedHeightMinor + @see #AppCompatTheme_windowFixedWidthMajor + @see #AppCompatTheme_windowFixedWidthMinor + @see #AppCompatTheme_windowMinWidthMajor + @see #AppCompatTheme_windowMinWidthMinor + @see #AppCompatTheme_windowNoTitle + */ + public static final int[] AppCompatTheme = { + 0x01010057, 0x010100ae, 0x7f010079, 0x7f01007a, + 0x7f01007b, 0x7f01007c, 0x7f01007d, 0x7f01007e, + 0x7f01007f, 0x7f010080, 0x7f010081, 0x7f010082, + 0x7f010083, 0x7f010084, 0x7f010085, 0x7f010086, + 0x7f010087, 0x7f010088, 0x7f010089, 0x7f01008a, + 0x7f01008b, 0x7f01008c, 0x7f01008d, 0x7f01008e, + 0x7f01008f, 0x7f010090, 0x7f010091, 0x7f010092, + 0x7f010093, 0x7f010094, 0x7f010095, 0x7f010096, + 0x7f010097, 0x7f010098, 0x7f010099, 0x7f01009a, + 0x7f01009b, 0x7f01009c, 0x7f01009d, 0x7f01009e, + 0x7f01009f, 0x7f0100a0, 0x7f0100a1, 0x7f0100a2, + 0x7f0100a3, 0x7f0100a4, 0x7f0100a5, 0x7f0100a6, + 0x7f0100a7, 0x7f0100a8, 0x7f0100a9, 0x7f0100aa, + 0x7f0100ab, 0x7f0100ac, 0x7f0100ad, 0x7f0100ae, + 0x7f0100af, 0x7f0100b0, 0x7f0100b1, 0x7f0100b2, + 0x7f0100b3, 0x7f0100b4, 0x7f0100b5, 0x7f0100b6, + 0x7f0100b7, 0x7f0100b8, 0x7f0100b9, 0x7f0100ba, + 0x7f0100bb, 0x7f0100bc, 0x7f0100bd, 0x7f0100be, + 0x7f0100bf, 0x7f0100c0, 0x7f0100c1, 0x7f0100c2, + 0x7f0100c3, 0x7f0100c4, 0x7f0100c5, 0x7f0100c6, + 0x7f0100c7, 0x7f0100c8, 0x7f0100c9, 0x7f0100ca, + 0x7f0100cb, 0x7f0100cc, 0x7f0100cd, 0x7f0100ce, + 0x7f0100cf, 0x7f0100d0, 0x7f0100d1, 0x7f0100d2, + 0x7f0100d3, 0x7f0100d4, 0x7f0100d5, 0x7f0100d6, + 0x7f0100d7, 0x7f0100d8, 0x7f0100d9, 0x7f0100da, + 0x7f0100db, 0x7f0100dc, 0x7f0100dd, 0x7f0100de, + 0x7f0100df, 0x7f0100e0, 0x7f0100e1, 0x7f0100e2, + 0x7f0100e3, 0x7f0100e4, 0x7f0100e5, 0x7f0100e6, + 0x7f0100e7, 0x7f0100e8, 0x7f0100e9 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarDivider} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarDivider + */ + public static final int AppCompatTheme_actionBarDivider = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarItemBackground + */ + public static final int AppCompatTheme_actionBarItemBackground = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarPopupTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarPopupTheme + */ + public static final int AppCompatTheme_actionBarPopupTheme = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSize} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ @attr name net.kdt.pojavlaunch:actionBarSize + */ + public static final int AppCompatTheme_actionBarSize = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSplitStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarSplitStyle + */ + public static final int AppCompatTheme_actionBarSplitStyle = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarStyle + */ + public static final int AppCompatTheme_actionBarStyle = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabBarStyle + */ + public static final int AppCompatTheme_actionBarTabBarStyle = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabStyle + */ + public static final int AppCompatTheme_actionBarTabStyle = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabTextStyle + */ + public static final int AppCompatTheme_actionBarTabTextStyle = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTheme + */ + public static final int AppCompatTheme_actionBarTheme = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarWidgetTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarWidgetTheme + */ + public static final int AppCompatTheme_actionBarWidgetTheme = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionButtonStyle + */ + public static final int AppCompatTheme_actionButtonStyle = 50; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionDropDownStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionDropDownStyle + */ + public static final int AppCompatTheme_actionDropDownStyle = 46; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextAppearance} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionMenuTextAppearance + */ + public static final int AppCompatTheme_actionMenuTextAppearance = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:actionMenuTextColor + */ + public static final int AppCompatTheme_actionMenuTextColor = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeBackground + */ + public static final int AppCompatTheme_actionModeBackground = 29; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseButtonStyle + */ + public static final int AppCompatTheme_actionModeCloseButtonStyle = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseDrawable + */ + public static final int AppCompatTheme_actionModeCloseDrawable = 31; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCopyDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCopyDrawable + */ + public static final int AppCompatTheme_actionModeCopyDrawable = 33; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCutDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCutDrawable + */ + public static final int AppCompatTheme_actionModeCutDrawable = 32; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeFindDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeFindDrawable + */ + public static final int AppCompatTheme_actionModeFindDrawable = 37; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePasteDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePasteDrawable + */ + public static final int AppCompatTheme_actionModePasteDrawable = 34; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePopupWindowStyle + */ + public static final int AppCompatTheme_actionModePopupWindowStyle = 39; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSelectAllDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSelectAllDrawable + */ + public static final int AppCompatTheme_actionModeSelectAllDrawable = 35; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeShareDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeShareDrawable + */ + public static final int AppCompatTheme_actionModeShareDrawable = 36; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSplitBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSplitBackground + */ + public static final int AppCompatTheme_actionModeSplitBackground = 30; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeStyle + */ + public static final int AppCompatTheme_actionModeStyle = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeWebSearchDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeWebSearchDrawable + */ + public static final int AppCompatTheme_actionModeWebSearchDrawable = 38; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowButtonStyle + */ + public static final int AppCompatTheme_actionOverflowButtonStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowMenuStyle + */ + public static final int AppCompatTheme_actionOverflowMenuStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#activityChooserViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:activityChooserViewStyle + */ + public static final int AppCompatTheme_activityChooserViewStyle = 58; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogButtonGroupStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogButtonGroupStyle + */ + public static final int AppCompatTheme_alertDialogButtonGroupStyle = 94; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogCenterButtons} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alertDialogCenterButtons + */ + public static final int AppCompatTheme_alertDialogCenterButtons = 95; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogStyle + */ + public static final int AppCompatTheme_alertDialogStyle = 93; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogTheme + */ + public static final int AppCompatTheme_alertDialogTheme = 96; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowAnimationStyle + */ + public static final int AppCompatTheme_android_windowAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#windowIsFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowIsFloating + */ + public static final int AppCompatTheme_android_windowIsFloating = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#autoCompleteTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:autoCompleteTextViewStyle + */ + public static final int AppCompatTheme_autoCompleteTextViewStyle = 101; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderlessButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:borderlessButtonStyle + */ + public static final int AppCompatTheme_borderlessButtonStyle = 55; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarButtonStyle + */ + public static final int AppCompatTheme_buttonBarButtonStyle = 52; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNegativeButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNegativeButtonStyle + */ + public static final int AppCompatTheme_buttonBarNegativeButtonStyle = 99; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNeutralButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNeutralButtonStyle + */ + public static final int AppCompatTheme_buttonBarNeutralButtonStyle = 100; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarPositiveButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarPositiveButtonStyle + */ + public static final int AppCompatTheme_buttonBarPositiveButtonStyle = 98; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarStyle + */ + public static final int AppCompatTheme_buttonBarStyle = 51; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyle + */ + public static final int AppCompatTheme_buttonStyle = 102; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyleSmall + */ + public static final int AppCompatTheme_buttonStyleSmall = 103; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkboxStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkboxStyle + */ + public static final int AppCompatTheme_checkboxStyle = 104; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkedTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkedTextViewStyle + */ + public static final int AppCompatTheme_checkedTextViewStyle = 105; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorAccent} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorAccent + */ + public static final int AppCompatTheme_colorAccent = 85; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorBackgroundFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorBackgroundFloating + */ + public static final int AppCompatTheme_colorBackgroundFloating = 92; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorButtonNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorButtonNormal + */ + public static final int AppCompatTheme_colorButtonNormal = 89; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlActivated} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlActivated + */ + public static final int AppCompatTheme_colorControlActivated = 87; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlHighlight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlHighlight + */ + public static final int AppCompatTheme_colorControlHighlight = 88; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlNormal + */ + public static final int AppCompatTheme_colorControlNormal = 86; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimary} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimary + */ + public static final int AppCompatTheme_colorPrimary = 83; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimaryDark} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimaryDark + */ + public static final int AppCompatTheme_colorPrimaryDark = 84; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorSwitchThumbNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorSwitchThumbNormal + */ + public static final int AppCompatTheme_colorSwitchThumbNormal = 90; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#controlBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:controlBackground + */ + public static final int AppCompatTheme_controlBackground = 91; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogPreferredPadding} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dialogPreferredPadding + */ + public static final int AppCompatTheme_dialogPreferredPadding = 44; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dialogTheme + */ + public static final int AppCompatTheme_dialogTheme = 43; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerHorizontal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerHorizontal + */ + public static final int AppCompatTheme_dividerHorizontal = 57; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerVertical} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerVertical + */ + public static final int AppCompatTheme_dividerVertical = 56; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropDownListViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dropDownListViewStyle + */ + public static final int AppCompatTheme_dropDownListViewStyle = 75; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropdownListPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dropdownListPreferredItemHeight + */ + public static final int AppCompatTheme_dropdownListPreferredItemHeight = 47; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextBackground + */ + public static final int AppCompatTheme_editTextBackground = 64; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:editTextColor + */ + public static final int AppCompatTheme_editTextColor = 63; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextStyle + */ + public static final int AppCompatTheme_editTextStyle = 106; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int AppCompatTheme_homeAsUpIndicator = 49; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#imageButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:imageButtonStyle + */ + public static final int AppCompatTheme_imageButtonStyle = 65; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listChoiceBackgroundIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listChoiceBackgroundIndicator + */ + public static final int AppCompatTheme_listChoiceBackgroundIndicator = 82; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listDividerAlertDialog} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listDividerAlertDialog + */ + public static final int AppCompatTheme_listDividerAlertDialog = 45; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listMenuViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listMenuViewStyle + */ + public static final int AppCompatTheme_listMenuViewStyle = 114; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listPopupWindowStyle + */ + public static final int AppCompatTheme_listPopupWindowStyle = 76; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeight + */ + public static final int AppCompatTheme_listPreferredItemHeight = 70; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightLarge} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightLarge + */ + public static final int AppCompatTheme_listPreferredItemHeightLarge = 72; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightSmall + */ + public static final int AppCompatTheme_listPreferredItemHeightSmall = 71; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingLeft} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingLeft + */ + public static final int AppCompatTheme_listPreferredItemPaddingLeft = 73; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingRight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingRight + */ + public static final int AppCompatTheme_listPreferredItemPaddingRight = 74; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelBackground + */ + public static final int AppCompatTheme_panelBackground = 79; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelMenuListTheme + */ + public static final int AppCompatTheme_panelMenuListTheme = 81; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListWidth} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:panelMenuListWidth + */ + public static final int AppCompatTheme_panelMenuListWidth = 80; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupMenuStyle + */ + public static final int AppCompatTheme_popupMenuStyle = 61; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupWindowStyle + */ + public static final int AppCompatTheme_popupWindowStyle = 62; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#radioButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:radioButtonStyle + */ + public static final int AppCompatTheme_radioButtonStyle = 107; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyle + */ + public static final int AppCompatTheme_ratingBarStyle = 108; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleIndicator + */ + public static final int AppCompatTheme_ratingBarStyleIndicator = 109; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleSmall + */ + public static final int AppCompatTheme_ratingBarStyleSmall = 110; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchViewStyle + */ + public static final int AppCompatTheme_searchViewStyle = 69; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#seekBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:seekBarStyle + */ + public static final int AppCompatTheme_seekBarStyle = 111; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackground + */ + public static final int AppCompatTheme_selectableItemBackground = 53; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackgroundBorderless} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackgroundBorderless + */ + public static final int AppCompatTheme_selectableItemBackgroundBorderless = 54; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerDropDownItemStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerDropDownItemStyle + */ + public static final int AppCompatTheme_spinnerDropDownItemStyle = 48; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerStyle + */ + public static final int AppCompatTheme_spinnerStyle = 112; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchStyle + */ + public static final int AppCompatTheme_switchStyle = 113; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceLargePopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceLargePopupMenu + */ + public static final int AppCompatTheme_textAppearanceLargePopupMenu = 40; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItem + */ + public static final int AppCompatTheme_textAppearanceListItem = 77; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItemSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItemSmall + */ + public static final int AppCompatTheme_textAppearanceListItemSmall = 78; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearancePopupMenuHeader} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearancePopupMenuHeader + */ + public static final int AppCompatTheme_textAppearancePopupMenuHeader = 42; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultSubtitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultTitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultTitle = 66; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSmallPopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSmallPopupMenu + */ + public static final int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorAlertDialogListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorAlertDialogListItem + */ + public static final int AppCompatTheme_textColorAlertDialogListItem = 97; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorSearchUrl} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorSearchUrl + */ + public static final int AppCompatTheme_textColorSearchUrl = 68; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarNavigationButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarNavigationButtonStyle + */ + public static final int AppCompatTheme_toolbarNavigationButtonStyle = 60; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarStyle + */ + public static final int AppCompatTheme_toolbarStyle = 59; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBar} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBar + */ + public static final int AppCompatTheme_windowActionBar = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBarOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBarOverlay + */ + public static final int AppCompatTheme_windowActionBarOverlay = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionModeOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionModeOverlay + */ + public static final int AppCompatTheme_windowActionModeOverlay = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMajor + */ + public static final int AppCompatTheme_windowFixedHeightMajor = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMinor + */ + public static final int AppCompatTheme_windowFixedHeightMinor = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMajor + */ + public static final int AppCompatTheme_windowFixedWidthMajor = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMinor + */ + public static final int AppCompatTheme_windowFixedWidthMinor = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMajor + */ + public static final int AppCompatTheme_windowMinWidthMajor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMinor + */ + public static final int AppCompatTheme_windowMinWidthMinor = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowNoTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowNoTitle + */ + public static final int AppCompatTheme_windowNoTitle = 3; + /** Attributes that can be used with a BottomSheetBehavior_Layout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #BottomSheetBehavior_Layout_behavior_hideable net.kdt.pojavlaunch:behavior_hideable}
{@link #BottomSheetBehavior_Layout_behavior_peekHeight net.kdt.pojavlaunch:behavior_peekHeight}
{@link #BottomSheetBehavior_Layout_behavior_skipCollapsed net.kdt.pojavlaunch:behavior_skipCollapsed}
+ @see #BottomSheetBehavior_Layout_behavior_hideable + @see #BottomSheetBehavior_Layout_behavior_peekHeight + @see #BottomSheetBehavior_Layout_behavior_skipCollapsed + */ + public static final int[] BottomSheetBehavior_Layout = { + 0x7f010009, 0x7f01000a, 0x7f01000b + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_hideable} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_hideable + */ + public static final int BottomSheetBehavior_Layout_behavior_hideable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_peekHeight} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_peekHeight + */ + public static final int BottomSheetBehavior_Layout_behavior_peekHeight = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_skipCollapsed} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_skipCollapsed + */ + public static final int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2; + /** Attributes that can be used with a ButtonBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ButtonBarLayout_allowStacking net.kdt.pojavlaunch:allowStacking}
+ @see #ButtonBarLayout_allowStacking + */ + public static final int[] ButtonBarLayout = { + 0x7f0100ea + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#allowStacking} + attribute's value can be found in the {@link #ButtonBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:allowStacking + */ + public static final int ButtonBarLayout_allowStacking = 0; + /** Attributes that can be used with a CollapsingToolbarLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_collapsedTitleGravity net.kdt.pojavlaunch:collapsedTitleGravity}
{@link #CollapsingToolbarLayout_collapsedTitleTextAppearance net.kdt.pojavlaunch:collapsedTitleTextAppearance}
{@link #CollapsingToolbarLayout_contentScrim net.kdt.pojavlaunch:contentScrim}
{@link #CollapsingToolbarLayout_expandedTitleGravity net.kdt.pojavlaunch:expandedTitleGravity}
{@link #CollapsingToolbarLayout_expandedTitleMargin net.kdt.pojavlaunch:expandedTitleMargin}
{@link #CollapsingToolbarLayout_expandedTitleMarginBottom net.kdt.pojavlaunch:expandedTitleMarginBottom}
{@link #CollapsingToolbarLayout_expandedTitleMarginEnd net.kdt.pojavlaunch:expandedTitleMarginEnd}
{@link #CollapsingToolbarLayout_expandedTitleMarginStart net.kdt.pojavlaunch:expandedTitleMarginStart}
{@link #CollapsingToolbarLayout_expandedTitleMarginTop net.kdt.pojavlaunch:expandedTitleMarginTop}
{@link #CollapsingToolbarLayout_expandedTitleTextAppearance net.kdt.pojavlaunch:expandedTitleTextAppearance}
{@link #CollapsingToolbarLayout_scrimAnimationDuration net.kdt.pojavlaunch:scrimAnimationDuration}
{@link #CollapsingToolbarLayout_scrimVisibleHeightTrigger net.kdt.pojavlaunch:scrimVisibleHeightTrigger}
{@link #CollapsingToolbarLayout_statusBarScrim net.kdt.pojavlaunch:statusBarScrim}
{@link #CollapsingToolbarLayout_title net.kdt.pojavlaunch:title}
{@link #CollapsingToolbarLayout_titleEnabled net.kdt.pojavlaunch:titleEnabled}
{@link #CollapsingToolbarLayout_toolbarId net.kdt.pojavlaunch:toolbarId}
+ @see #CollapsingToolbarLayout_collapsedTitleGravity + @see #CollapsingToolbarLayout_collapsedTitleTextAppearance + @see #CollapsingToolbarLayout_contentScrim + @see #CollapsingToolbarLayout_expandedTitleGravity + @see #CollapsingToolbarLayout_expandedTitleMargin + @see #CollapsingToolbarLayout_expandedTitleMarginBottom + @see #CollapsingToolbarLayout_expandedTitleMarginEnd + @see #CollapsingToolbarLayout_expandedTitleMarginStart + @see #CollapsingToolbarLayout_expandedTitleMarginTop + @see #CollapsingToolbarLayout_expandedTitleTextAppearance + @see #CollapsingToolbarLayout_scrimAnimationDuration + @see #CollapsingToolbarLayout_scrimVisibleHeightTrigger + @see #CollapsingToolbarLayout_statusBarScrim + @see #CollapsingToolbarLayout_title + @see #CollapsingToolbarLayout_titleEnabled + @see #CollapsingToolbarLayout_toolbarId + */ + public static final int[] CollapsingToolbarLayout = { + 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, + 0x7f010010, 0x7f010011, 0x7f010012, 0x7f010013, + 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, + 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f010051 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:collapsedTitleGravity + */ + public static final int CollapsingToolbarLayout_collapsedTitleGravity = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapsedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_collapsedTitleTextAppearance = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentScrim + */ + public static final int CollapsingToolbarLayout_contentScrim = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:expandedTitleGravity + */ + public static final int CollapsingToolbarLayout_expandedTitleGravity = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMargin} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMargin + */ + public static final int CollapsingToolbarLayout_expandedTitleMargin = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginBottom} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginBottom + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginBottom = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginEnd} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginEnd + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginStart} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginStart + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginStart = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginTop} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginTop + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginTop = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_expandedTitleTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimAnimationDuration} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimAnimationDuration + */ + public static final int CollapsingToolbarLayout_scrimAnimationDuration = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimVisibleHeightTrigger} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimVisibleHeightTrigger + */ + public static final int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:statusBarScrim + */ + public static final int CollapsingToolbarLayout_statusBarScrim = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int CollapsingToolbarLayout_title = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleEnabled} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleEnabled + */ + public static final int CollapsingToolbarLayout_titleEnabled = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarId} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarId + */ + public static final int CollapsingToolbarLayout_toolbarId = 9; + /** Attributes that can be used with a CollapsingToolbarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_Layout_layout_collapseMode net.kdt.pojavlaunch:layout_collapseMode}
{@link #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier net.kdt.pojavlaunch:layout_collapseParallaxMultiplier}
+ @see #CollapsingToolbarLayout_Layout_layout_collapseMode + @see #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier + */ + public static final int[] CollapsingToolbarLayout_Layout = { + 0x7f01001b, 0x7f01001c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseMode} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ @attr name net.kdt.pojavlaunch:layout_collapseMode + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseMode = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseParallaxMultiplier} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_collapseParallaxMultiplier + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1; + /** Attributes that can be used with a ColorStateListItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ColorStateListItem_alpha net.kdt.pojavlaunch:alpha}
{@link #ColorStateListItem_android_alpha android:alpha}
{@link #ColorStateListItem_android_color android:color}
+ @see #ColorStateListItem_alpha + @see #ColorStateListItem_android_alpha + @see #ColorStateListItem_android_color + */ + public static final int[] ColorStateListItem = { + 0x010101a5, 0x0101031f, 0x7f0100eb + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alpha + */ + public static final int ColorStateListItem_alpha = 2; + /** +

This symbol is the offset where the {@link android.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:alpha + */ + public static final int ColorStateListItem_android_alpha = 1; + /** +

This symbol is the offset where the {@link android.R.attr#color} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:color + */ + public static final int ColorStateListItem_android_color = 0; + /** Attributes that can be used with a CompoundButton. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #CompoundButton_android_button android:button}
{@link #CompoundButton_buttonTint net.kdt.pojavlaunch:buttonTint}
{@link #CompoundButton_buttonTintMode net.kdt.pojavlaunch:buttonTintMode}
+ @see #CompoundButton_android_button + @see #CompoundButton_buttonTint + @see #CompoundButton_buttonTintMode + */ + public static final int[] CompoundButton = { + 0x01010107, 0x7f0100ec, 0x7f0100ed + }; + /** +

This symbol is the offset where the {@link android.R.attr#button} + attribute's value can be found in the {@link #CompoundButton} array. + @attr name android:button + */ + public static final int CompoundButton_android_button = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTint} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:buttonTint + */ + public static final int CompoundButton_buttonTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTintMode} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:buttonTintMode + */ + public static final int CompoundButton_buttonTintMode = 2; + /** Attributes that can be used with a CoordinatorLayout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CoordinatorLayout_keylines net.kdt.pojavlaunch:keylines}
{@link #CoordinatorLayout_statusBarBackground net.kdt.pojavlaunch:statusBarBackground}
+ @see #CoordinatorLayout_keylines + @see #CoordinatorLayout_statusBarBackground + */ + public static final int[] CoordinatorLayout = { + 0x7f01001d, 0x7f01001e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#keylines} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:keylines + */ + public static final int CoordinatorLayout_keylines = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarBackground} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:statusBarBackground + */ + public static final int CoordinatorLayout_statusBarBackground = 1; + /** Attributes that can be used with a CoordinatorLayout_Layout. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #CoordinatorLayout_Layout_android_layout_gravity android:layout_gravity}
{@link #CoordinatorLayout_Layout_layout_anchor net.kdt.pojavlaunch:layout_anchor}
{@link #CoordinatorLayout_Layout_layout_anchorGravity net.kdt.pojavlaunch:layout_anchorGravity}
{@link #CoordinatorLayout_Layout_layout_behavior net.kdt.pojavlaunch:layout_behavior}
{@link #CoordinatorLayout_Layout_layout_keyline net.kdt.pojavlaunch:layout_keyline}
+ @see #CoordinatorLayout_Layout_android_layout_gravity + @see #CoordinatorLayout_Layout_layout_anchor + @see #CoordinatorLayout_Layout_layout_anchorGravity + @see #CoordinatorLayout_Layout_layout_behavior + @see #CoordinatorLayout_Layout_layout_keyline + */ + public static final int[] CoordinatorLayout_Layout = { + 0x010100b3, 0x7f01001f, 0x7f010020, 0x7f010021, + 0x7f010022 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + @attr name android:layout_gravity + */ + public static final int CoordinatorLayout_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchor} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_anchor + */ + public static final int CoordinatorLayout_Layout_layout_anchor = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchorGravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:layout_anchorGravity + */ + public static final int CoordinatorLayout_Layout_layout_anchorGravity = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_behavior} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_behavior + */ + public static final int CoordinatorLayout_Layout_layout_behavior = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_keyline} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_keyline + */ + public static final int CoordinatorLayout_Layout_layout_keyline = 3; + /** Attributes that can be used with a DesignTheme. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #DesignTheme_bottomSheetDialogTheme net.kdt.pojavlaunch:bottomSheetDialogTheme}
{@link #DesignTheme_bottomSheetStyle net.kdt.pojavlaunch:bottomSheetStyle}
{@link #DesignTheme_textColorError net.kdt.pojavlaunch:textColorError}
+ @see #DesignTheme_bottomSheetDialogTheme + @see #DesignTheme_bottomSheetStyle + @see #DesignTheme_textColorError + */ + public static final int[] DesignTheme = { + 0x7f010023, 0x7f010024, 0x7f010025 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetDialogTheme} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetDialogTheme + */ + public static final int DesignTheme_bottomSheetDialogTheme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetStyle} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetStyle + */ + public static final int DesignTheme_bottomSheetStyle = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorError} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:textColorError + */ + public static final int DesignTheme_textColorError = 2; + /** Attributes that can be used with a DrawerArrowToggle. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #DrawerArrowToggle_arrowHeadLength net.kdt.pojavlaunch:arrowHeadLength}
{@link #DrawerArrowToggle_arrowShaftLength net.kdt.pojavlaunch:arrowShaftLength}
{@link #DrawerArrowToggle_barLength net.kdt.pojavlaunch:barLength}
{@link #DrawerArrowToggle_color net.kdt.pojavlaunch:color}
{@link #DrawerArrowToggle_drawableSize net.kdt.pojavlaunch:drawableSize}
{@link #DrawerArrowToggle_gapBetweenBars net.kdt.pojavlaunch:gapBetweenBars}
{@link #DrawerArrowToggle_spinBars net.kdt.pojavlaunch:spinBars}
{@link #DrawerArrowToggle_thickness net.kdt.pojavlaunch:thickness}
+ @see #DrawerArrowToggle_arrowHeadLength + @see #DrawerArrowToggle_arrowShaftLength + @see #DrawerArrowToggle_barLength + @see #DrawerArrowToggle_color + @see #DrawerArrowToggle_drawableSize + @see #DrawerArrowToggle_gapBetweenBars + @see #DrawerArrowToggle_spinBars + @see #DrawerArrowToggle_thickness + */ + public static final int[] DrawerArrowToggle = { + 0x7f0100ee, 0x7f0100ef, 0x7f0100f0, 0x7f0100f1, + 0x7f0100f2, 0x7f0100f3, 0x7f0100f4, 0x7f0100f5 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowHeadLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowHeadLength + */ + public static final int DrawerArrowToggle_arrowHeadLength = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowShaftLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowShaftLength + */ + public static final int DrawerArrowToggle_arrowShaftLength = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#barLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:barLength + */ + public static final int DrawerArrowToggle_barLength = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#color} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:color + */ + public static final int DrawerArrowToggle_color = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#drawableSize} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:drawableSize + */ + public static final int DrawerArrowToggle_drawableSize = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#gapBetweenBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:gapBetweenBars + */ + public static final int DrawerArrowToggle_gapBetweenBars = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spinBars + */ + public static final int DrawerArrowToggle_spinBars = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thickness} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thickness + */ + public static final int DrawerArrowToggle_thickness = 7; + /** Attributes that can be used with a FloatingActionButton. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #FloatingActionButton_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #FloatingActionButton_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
{@link #FloatingActionButton_borderWidth net.kdt.pojavlaunch:borderWidth}
{@link #FloatingActionButton_elevation net.kdt.pojavlaunch:elevation}
{@link #FloatingActionButton_fabSize net.kdt.pojavlaunch:fabSize}
{@link #FloatingActionButton_pressedTranslationZ net.kdt.pojavlaunch:pressedTranslationZ}
{@link #FloatingActionButton_rippleColor net.kdt.pojavlaunch:rippleColor}
{@link #FloatingActionButton_useCompatPadding net.kdt.pojavlaunch:useCompatPadding}
+ @see #FloatingActionButton_backgroundTint + @see #FloatingActionButton_backgroundTintMode + @see #FloatingActionButton_borderWidth + @see #FloatingActionButton_elevation + @see #FloatingActionButton_fabSize + @see #FloatingActionButton_pressedTranslationZ + @see #FloatingActionButton_rippleColor + @see #FloatingActionButton_useCompatPadding + */ + public static final int[] FloatingActionButton = { + 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, + 0x7f01002a, 0x7f01006a, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int FloatingActionButton_backgroundTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int FloatingActionButton_backgroundTintMode = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderWidth} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:borderWidth + */ + public static final int FloatingActionButton_borderWidth = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int FloatingActionButton_elevation = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#fabSize} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ @attr name net.kdt.pojavlaunch:fabSize + */ + public static final int FloatingActionButton_fabSize = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#pressedTranslationZ} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:pressedTranslationZ + */ + public static final int FloatingActionButton_pressedTranslationZ = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#rippleColor} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:rippleColor + */ + public static final int FloatingActionButton_rippleColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#useCompatPadding} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:useCompatPadding + */ + public static final int FloatingActionButton_useCompatPadding = 4; + /** Attributes that can be used with a ForegroundLinearLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ForegroundLinearLayout_android_foreground android:foreground}
{@link #ForegroundLinearLayout_android_foregroundGravity android:foregroundGravity}
{@link #ForegroundLinearLayout_foregroundInsidePadding net.kdt.pojavlaunch:foregroundInsidePadding}
+ @see #ForegroundLinearLayout_android_foreground + @see #ForegroundLinearLayout_android_foregroundGravity + @see #ForegroundLinearLayout_foregroundInsidePadding + */ + public static final int[] ForegroundLinearLayout = { + 0x01010109, 0x01010200, 0x7f01002b + }; + /** +

This symbol is the offset where the {@link android.R.attr#foreground} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foreground + */ + public static final int ForegroundLinearLayout_android_foreground = 0; + /** +

This symbol is the offset where the {@link android.R.attr#foregroundGravity} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foregroundGravity + */ + public static final int ForegroundLinearLayout_android_foregroundGravity = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#foregroundInsidePadding} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:foregroundInsidePadding + */ + public static final int ForegroundLinearLayout_foregroundInsidePadding = 2; + /** Attributes that can be used with a LinearLayoutCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_android_baselineAligned android:baselineAligned}
{@link #LinearLayoutCompat_android_baselineAlignedChildIndex android:baselineAlignedChildIndex}
{@link #LinearLayoutCompat_android_gravity android:gravity}
{@link #LinearLayoutCompat_android_orientation android:orientation}
{@link #LinearLayoutCompat_android_weightSum android:weightSum}
{@link #LinearLayoutCompat_divider net.kdt.pojavlaunch:divider}
{@link #LinearLayoutCompat_dividerPadding net.kdt.pojavlaunch:dividerPadding}
{@link #LinearLayoutCompat_measureWithLargestChild net.kdt.pojavlaunch:measureWithLargestChild}
{@link #LinearLayoutCompat_showDividers net.kdt.pojavlaunch:showDividers}
+ @see #LinearLayoutCompat_android_baselineAligned + @see #LinearLayoutCompat_android_baselineAlignedChildIndex + @see #LinearLayoutCompat_android_gravity + @see #LinearLayoutCompat_android_orientation + @see #LinearLayoutCompat_android_weightSum + @see #LinearLayoutCompat_divider + @see #LinearLayoutCompat_dividerPadding + @see #LinearLayoutCompat_measureWithLargestChild + @see #LinearLayoutCompat_showDividers + */ + public static final int[] LinearLayoutCompat = { + 0x010100af, 0x010100c4, 0x01010126, 0x01010127, + 0x01010128, 0x7f010059, 0x7f0100f6, 0x7f0100f7, + 0x7f0100f8 + }; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAligned} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAligned + */ + public static final int LinearLayoutCompat_android_baselineAligned = 2; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAlignedChildIndex} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAlignedChildIndex + */ + public static final int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:gravity + */ + public static final int LinearLayoutCompat_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:orientation + */ + public static final int LinearLayoutCompat_android_orientation = 1; + /** +

This symbol is the offset where the {@link android.R.attr#weightSum} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:weightSum + */ + public static final int LinearLayoutCompat_android_weightSum = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int LinearLayoutCompat_divider = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerPadding} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dividerPadding + */ + public static final int LinearLayoutCompat_dividerPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#measureWithLargestChild} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:measureWithLargestChild + */ + public static final int LinearLayoutCompat_measureWithLargestChild = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showDividers} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ @attr name net.kdt.pojavlaunch:showDividers + */ + public static final int LinearLayoutCompat_showDividers = 7; + /** Attributes that can be used with a LinearLayoutCompat_Layout. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_Layout_android_layout_gravity android:layout_gravity}
{@link #LinearLayoutCompat_Layout_android_layout_height android:layout_height}
{@link #LinearLayoutCompat_Layout_android_layout_weight android:layout_weight}
{@link #LinearLayoutCompat_Layout_android_layout_width android:layout_width}
+ @see #LinearLayoutCompat_Layout_android_layout_gravity + @see #LinearLayoutCompat_Layout_android_layout_height + @see #LinearLayoutCompat_Layout_android_layout_weight + @see #LinearLayoutCompat_Layout_android_layout_width + */ + public static final int[] LinearLayoutCompat_Layout = { + 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_gravity + */ + public static final int LinearLayoutCompat_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout_height} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_height + */ + public static final int LinearLayoutCompat_Layout_android_layout_height = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout_weight} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_weight + */ + public static final int LinearLayoutCompat_Layout_android_layout_weight = 3; + /** +

This symbol is the offset where the {@link android.R.attr#layout_width} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_width + */ + public static final int LinearLayoutCompat_Layout_android_layout_width = 1; + /** Attributes that can be used with a ListPopupWindow. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ListPopupWindow_android_dropDownHorizontalOffset android:dropDownHorizontalOffset}
{@link #ListPopupWindow_android_dropDownVerticalOffset android:dropDownVerticalOffset}
+ @see #ListPopupWindow_android_dropDownHorizontalOffset + @see #ListPopupWindow_android_dropDownVerticalOffset + */ + public static final int[] ListPopupWindow = { + 0x010102ac, 0x010102ad + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownHorizontalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownHorizontalOffset + */ + public static final int ListPopupWindow_android_dropDownHorizontalOffset = 0; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownVerticalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownVerticalOffset + */ + public static final int ListPopupWindow_android_dropDownVerticalOffset = 1; + /** Attributes that can be used with a MenuGroup. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #MenuGroup_android_checkableBehavior android:checkableBehavior}
{@link #MenuGroup_android_enabled android:enabled}
{@link #MenuGroup_android_id android:id}
{@link #MenuGroup_android_menuCategory android:menuCategory}
{@link #MenuGroup_android_orderInCategory android:orderInCategory}
{@link #MenuGroup_android_visible android:visible}
+ @see #MenuGroup_android_checkableBehavior + @see #MenuGroup_android_enabled + @see #MenuGroup_android_id + @see #MenuGroup_android_menuCategory + @see #MenuGroup_android_orderInCategory + @see #MenuGroup_android_visible + */ + public static final int[] MenuGroup = { + 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, + 0x010101df, 0x010101e0 + }; + /** +

This symbol is the offset where the {@link android.R.attr#checkableBehavior} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:checkableBehavior + */ + public static final int MenuGroup_android_checkableBehavior = 5; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:enabled + */ + public static final int MenuGroup_android_enabled = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:id + */ + public static final int MenuGroup_android_id = 1; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:menuCategory + */ + public static final int MenuGroup_android_menuCategory = 3; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:orderInCategory + */ + public static final int MenuGroup_android_orderInCategory = 4; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:visible + */ + public static final int MenuGroup_android_visible = 2; + /** Attributes that can be used with a MenuItem. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #MenuItem_actionLayout net.kdt.pojavlaunch:actionLayout}
{@link #MenuItem_actionProviderClass net.kdt.pojavlaunch:actionProviderClass}
{@link #MenuItem_actionViewClass net.kdt.pojavlaunch:actionViewClass}
{@link #MenuItem_android_alphabeticShortcut android:alphabeticShortcut}
{@link #MenuItem_android_checkable android:checkable}
{@link #MenuItem_android_checked android:checked}
{@link #MenuItem_android_enabled android:enabled}
{@link #MenuItem_android_icon android:icon}
{@link #MenuItem_android_id android:id}
{@link #MenuItem_android_menuCategory android:menuCategory}
{@link #MenuItem_android_numericShortcut android:numericShortcut}
{@link #MenuItem_android_onClick android:onClick}
{@link #MenuItem_android_orderInCategory android:orderInCategory}
{@link #MenuItem_android_title android:title}
{@link #MenuItem_android_titleCondensed android:titleCondensed}
{@link #MenuItem_android_visible android:visible}
{@link #MenuItem_showAsAction net.kdt.pojavlaunch:showAsAction}
+ @see #MenuItem_actionLayout + @see #MenuItem_actionProviderClass + @see #MenuItem_actionViewClass + @see #MenuItem_android_alphabeticShortcut + @see #MenuItem_android_checkable + @see #MenuItem_android_checked + @see #MenuItem_android_enabled + @see #MenuItem_android_icon + @see #MenuItem_android_id + @see #MenuItem_android_menuCategory + @see #MenuItem_android_numericShortcut + @see #MenuItem_android_onClick + @see #MenuItem_android_orderInCategory + @see #MenuItem_android_title + @see #MenuItem_android_titleCondensed + @see #MenuItem_android_visible + @see #MenuItem_showAsAction + */ + public static final int[] MenuItem = { + 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, + 0x01010194, 0x010101de, 0x010101df, 0x010101e1, + 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, + 0x0101026f, 0x7f0100f9, 0x7f0100fa, 0x7f0100fb, + 0x7f0100fc + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionLayout} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionLayout + */ + public static final int MenuItem_actionLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionProviderClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionProviderClass + */ + public static final int MenuItem_actionProviderClass = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionViewClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionViewClass + */ + public static final int MenuItem_actionViewClass = 15; + /** +

This symbol is the offset where the {@link android.R.attr#alphabeticShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:alphabeticShortcut + */ + public static final int MenuItem_android_alphabeticShortcut = 9; + /** +

This symbol is the offset where the {@link android.R.attr#checkable} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checkable + */ + public static final int MenuItem_android_checkable = 11; + /** +

This symbol is the offset where the {@link android.R.attr#checked} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checked + */ + public static final int MenuItem_android_checked = 3; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:enabled + */ + public static final int MenuItem_android_enabled = 1; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:icon + */ + public static final int MenuItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:id + */ + public static final int MenuItem_android_id = 2; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:menuCategory + */ + public static final int MenuItem_android_menuCategory = 5; + /** +

This symbol is the offset where the {@link android.R.attr#numericShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:numericShortcut + */ + public static final int MenuItem_android_numericShortcut = 10; + /** +

This symbol is the offset where the {@link android.R.attr#onClick} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:onClick + */ + public static final int MenuItem_android_onClick = 12; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:orderInCategory + */ + public static final int MenuItem_android_orderInCategory = 6; + /** +

This symbol is the offset where the {@link android.R.attr#title} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:title + */ + public static final int MenuItem_android_title = 7; + /** +

This symbol is the offset where the {@link android.R.attr#titleCondensed} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:titleCondensed + */ + public static final int MenuItem_android_titleCondensed = 8; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:visible + */ + public static final int MenuItem_android_visible = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showAsAction} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ @attr name net.kdt.pojavlaunch:showAsAction + */ + public static final int MenuItem_showAsAction = 13; + /** Attributes that can be used with a MenuView. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #MenuView_android_headerBackground android:headerBackground}
{@link #MenuView_android_horizontalDivider android:horizontalDivider}
{@link #MenuView_android_itemBackground android:itemBackground}
{@link #MenuView_android_itemIconDisabledAlpha android:itemIconDisabledAlpha}
{@link #MenuView_android_itemTextAppearance android:itemTextAppearance}
{@link #MenuView_android_verticalDivider android:verticalDivider}
{@link #MenuView_android_windowAnimationStyle android:windowAnimationStyle}
{@link #MenuView_preserveIconSpacing net.kdt.pojavlaunch:preserveIconSpacing}
{@link #MenuView_subMenuArrow net.kdt.pojavlaunch:subMenuArrow}
+ @see #MenuView_android_headerBackground + @see #MenuView_android_horizontalDivider + @see #MenuView_android_itemBackground + @see #MenuView_android_itemIconDisabledAlpha + @see #MenuView_android_itemTextAppearance + @see #MenuView_android_verticalDivider + @see #MenuView_android_windowAnimationStyle + @see #MenuView_preserveIconSpacing + @see #MenuView_subMenuArrow + */ + public static final int[] MenuView = { + 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, + 0x0101012f, 0x01010130, 0x01010131, 0x7f0100fd, + 0x7f0100fe + }; + /** +

This symbol is the offset where the {@link android.R.attr#headerBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:headerBackground + */ + public static final int MenuView_android_headerBackground = 4; + /** +

This symbol is the offset where the {@link android.R.attr#horizontalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:horizontalDivider + */ + public static final int MenuView_android_horizontalDivider = 2; + /** +

This symbol is the offset where the {@link android.R.attr#itemBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemBackground + */ + public static final int MenuView_android_itemBackground = 5; + /** +

This symbol is the offset where the {@link android.R.attr#itemIconDisabledAlpha} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemIconDisabledAlpha + */ + public static final int MenuView_android_itemIconDisabledAlpha = 6; + /** +

This symbol is the offset where the {@link android.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemTextAppearance + */ + public static final int MenuView_android_itemTextAppearance = 1; + /** +

This symbol is the offset where the {@link android.R.attr#verticalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:verticalDivider + */ + public static final int MenuView_android_verticalDivider = 3; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:windowAnimationStyle + */ + public static final int MenuView_android_windowAnimationStyle = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#preserveIconSpacing} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:preserveIconSpacing + */ + public static final int MenuView_preserveIconSpacing = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subMenuArrow} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subMenuArrow + */ + public static final int MenuView_subMenuArrow = 8; + /** Attributes that can be used with a NavigationView. +

Includes the following attributes:

+ + + + + + + + + + + + + + +
AttributeDescription
{@link #NavigationView_android_background android:background}
{@link #NavigationView_android_fitsSystemWindows android:fitsSystemWindows}
{@link #NavigationView_android_maxWidth android:maxWidth}
{@link #NavigationView_elevation net.kdt.pojavlaunch:elevation}
{@link #NavigationView_headerLayout net.kdt.pojavlaunch:headerLayout}
{@link #NavigationView_itemBackground net.kdt.pojavlaunch:itemBackground}
{@link #NavigationView_itemIconTint net.kdt.pojavlaunch:itemIconTint}
{@link #NavigationView_itemTextAppearance net.kdt.pojavlaunch:itemTextAppearance}
{@link #NavigationView_itemTextColor net.kdt.pojavlaunch:itemTextColor}
{@link #NavigationView_menu net.kdt.pojavlaunch:menu}
+ @see #NavigationView_android_background + @see #NavigationView_android_fitsSystemWindows + @see #NavigationView_android_maxWidth + @see #NavigationView_elevation + @see #NavigationView_headerLayout + @see #NavigationView_itemBackground + @see #NavigationView_itemIconTint + @see #NavigationView_itemTextAppearance + @see #NavigationView_itemTextColor + @see #NavigationView_menu + */ + public static final int[] NavigationView = { + 0x010100d4, 0x010100dd, 0x0101011f, 0x7f01002c, + 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, + 0x7f010031, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:background + */ + public static final int NavigationView_android_background = 0; + /** +

This symbol is the offset where the {@link android.R.attr#fitsSystemWindows} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:fitsSystemWindows + */ + public static final int NavigationView_android_fitsSystemWindows = 1; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:maxWidth + */ + public static final int NavigationView_android_maxWidth = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int NavigationView_elevation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#headerLayout} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:headerLayout + */ + public static final int NavigationView_headerLayout = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemBackground} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemBackground + */ + public static final int NavigationView_itemBackground = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemIconTint} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemIconTint + */ + public static final int NavigationView_itemIconTint = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemTextAppearance + */ + public static final int NavigationView_itemTextAppearance = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextColor} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemTextColor + */ + public static final int NavigationView_itemTextColor = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#menu} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:menu + */ + public static final int NavigationView_menu = 3; + /** Attributes that can be used with a PopupWindow. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #PopupWindow_android_popupAnimationStyle android:popupAnimationStyle}
{@link #PopupWindow_android_popupBackground android:popupBackground}
{@link #PopupWindow_overlapAnchor net.kdt.pojavlaunch:overlapAnchor}
+ @see #PopupWindow_android_popupAnimationStyle + @see #PopupWindow_android_popupBackground + @see #PopupWindow_overlapAnchor + */ + public static final int[] PopupWindow = { + 0x01010176, 0x010102c9, 0x7f0100ff + }; + /** +

This symbol is the offset where the {@link android.R.attr#popupAnimationStyle} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupAnimationStyle + */ + public static final int PopupWindow_android_popupAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupBackground + */ + public static final int PopupWindow_android_popupBackground = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#overlapAnchor} + attribute's value can be found in the {@link #PopupWindow} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:overlapAnchor + */ + public static final int PopupWindow_overlapAnchor = 2; + /** Attributes that can be used with a PopupWindowBackgroundState. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #PopupWindowBackgroundState_state_above_anchor net.kdt.pojavlaunch:state_above_anchor}
+ @see #PopupWindowBackgroundState_state_above_anchor + */ + public static final int[] PopupWindowBackgroundState = { + 0x7f010100 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_above_anchor} + attribute's value can be found in the {@link #PopupWindowBackgroundState} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_above_anchor + */ + public static final int PopupWindowBackgroundState_state_above_anchor = 0; + /** Attributes that can be used with a RecyclerView. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #RecyclerView_android_descendantFocusability android:descendantFocusability}
{@link #RecyclerView_android_orientation android:orientation}
{@link #RecyclerView_layoutManager net.kdt.pojavlaunch:layoutManager}
{@link #RecyclerView_reverseLayout net.kdt.pojavlaunch:reverseLayout}
{@link #RecyclerView_spanCount net.kdt.pojavlaunch:spanCount}
{@link #RecyclerView_stackFromEnd net.kdt.pojavlaunch:stackFromEnd}
+ @see #RecyclerView_android_descendantFocusability + @see #RecyclerView_android_orientation + @see #RecyclerView_layoutManager + @see #RecyclerView_reverseLayout + @see #RecyclerView_spanCount + @see #RecyclerView_stackFromEnd + */ + public static final int[] RecyclerView = { + 0x010100c4, 0x010100f1, 0x7f010000, 0x7f010001, + 0x7f010002, 0x7f010003 + }; + /** +

This symbol is the offset where the {@link android.R.attr#descendantFocusability} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:descendantFocusability + */ + public static final int RecyclerView_android_descendantFocusability = 1; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:orientation + */ + public static final int RecyclerView_android_orientation = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layoutManager} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layoutManager + */ + public static final int RecyclerView_layoutManager = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#reverseLayout} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:reverseLayout + */ + public static final int RecyclerView_reverseLayout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spanCount} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spanCount + */ + public static final int RecyclerView_spanCount = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#stackFromEnd} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:stackFromEnd + */ + public static final int RecyclerView_stackFromEnd = 5; + /** Attributes that can be used with a ScrimInsetsFrameLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrimInsetsFrameLayout_insetForeground net.kdt.pojavlaunch:insetForeground}
+ @see #ScrimInsetsFrameLayout_insetForeground + */ + public static final int[] ScrimInsetsFrameLayout = { + 0x7f010032 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#insetForeground} + attribute's value can be found in the {@link #ScrimInsetsFrameLayout} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:insetForeground + */ + public static final int ScrimInsetsFrameLayout_insetForeground = 0; + /** Attributes that can be used with a ScrollingViewBehavior_Layout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrollingViewBehavior_Layout_behavior_overlapTop net.kdt.pojavlaunch:behavior_overlapTop}
+ @see #ScrollingViewBehavior_Layout_behavior_overlapTop + */ + public static final int[] ScrollingViewBehavior_Layout = { + 0x7f010033 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_overlapTop} + attribute's value can be found in the {@link #ScrollingViewBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_overlapTop + */ + public static final int ScrollingViewBehavior_Layout_behavior_overlapTop = 0; + /** Attributes that can be used with a SearchView. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SearchView_android_focusable android:focusable}
{@link #SearchView_android_imeOptions android:imeOptions}
{@link #SearchView_android_inputType android:inputType}
{@link #SearchView_android_maxWidth android:maxWidth}
{@link #SearchView_closeIcon net.kdt.pojavlaunch:closeIcon}
{@link #SearchView_commitIcon net.kdt.pojavlaunch:commitIcon}
{@link #SearchView_defaultQueryHint net.kdt.pojavlaunch:defaultQueryHint}
{@link #SearchView_goIcon net.kdt.pojavlaunch:goIcon}
{@link #SearchView_iconifiedByDefault net.kdt.pojavlaunch:iconifiedByDefault}
{@link #SearchView_layout net.kdt.pojavlaunch:layout}
{@link #SearchView_queryBackground net.kdt.pojavlaunch:queryBackground}
{@link #SearchView_queryHint net.kdt.pojavlaunch:queryHint}
{@link #SearchView_searchHintIcon net.kdt.pojavlaunch:searchHintIcon}
{@link #SearchView_searchIcon net.kdt.pojavlaunch:searchIcon}
{@link #SearchView_submitBackground net.kdt.pojavlaunch:submitBackground}
{@link #SearchView_suggestionRowLayout net.kdt.pojavlaunch:suggestionRowLayout}
{@link #SearchView_voiceIcon net.kdt.pojavlaunch:voiceIcon}
+ @see #SearchView_android_focusable + @see #SearchView_android_imeOptions + @see #SearchView_android_inputType + @see #SearchView_android_maxWidth + @see #SearchView_closeIcon + @see #SearchView_commitIcon + @see #SearchView_defaultQueryHint + @see #SearchView_goIcon + @see #SearchView_iconifiedByDefault + @see #SearchView_layout + @see #SearchView_queryBackground + @see #SearchView_queryHint + @see #SearchView_searchHintIcon + @see #SearchView_searchIcon + @see #SearchView_submitBackground + @see #SearchView_suggestionRowLayout + @see #SearchView_voiceIcon + */ + public static final int[] SearchView = { + 0x010100da, 0x0101011f, 0x01010220, 0x01010264, + 0x7f010101, 0x7f010102, 0x7f010103, 0x7f010104, + 0x7f010105, 0x7f010106, 0x7f010107, 0x7f010108, + 0x7f010109, 0x7f01010a, 0x7f01010b, 0x7f01010c, + 0x7f01010d + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:focusable + */ + public static final int SearchView_android_focusable = 0; + /** +

This symbol is the offset where the {@link android.R.attr#imeOptions} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:imeOptions + */ + public static final int SearchView_android_imeOptions = 3; + /** +

This symbol is the offset where the {@link android.R.attr#inputType} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:inputType + */ + public static final int SearchView_android_inputType = 2; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:maxWidth + */ + public static final int SearchView_android_maxWidth = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeIcon + */ + public static final int SearchView_closeIcon = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#commitIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:commitIcon + */ + public static final int SearchView_commitIcon = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#defaultQueryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:defaultQueryHint + */ + public static final int SearchView_defaultQueryHint = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#goIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:goIcon + */ + public static final int SearchView_goIcon = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#iconifiedByDefault} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:iconifiedByDefault + */ + public static final int SearchView_iconifiedByDefault = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout + */ + public static final int SearchView_layout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:queryBackground + */ + public static final int SearchView_queryBackground = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:queryHint + */ + public static final int SearchView_queryHint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchHintIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchHintIcon + */ + public static final int SearchView_searchHintIcon = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchIcon + */ + public static final int SearchView_searchIcon = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#submitBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:submitBackground + */ + public static final int SearchView_submitBackground = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#suggestionRowLayout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:suggestionRowLayout + */ + public static final int SearchView_suggestionRowLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#voiceIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:voiceIcon + */ + public static final int SearchView_voiceIcon = 12; + /** Attributes that can be used with a SnackbarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #SnackbarLayout_android_maxWidth android:maxWidth}
{@link #SnackbarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #SnackbarLayout_maxActionInlineWidth net.kdt.pojavlaunch:maxActionInlineWidth}
+ @see #SnackbarLayout_android_maxWidth + @see #SnackbarLayout_elevation + @see #SnackbarLayout_maxActionInlineWidth + */ + public static final int[] SnackbarLayout = { + 0x0101011f, 0x7f010034, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + @attr name android:maxWidth + */ + public static final int SnackbarLayout_android_maxWidth = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int SnackbarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxActionInlineWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxActionInlineWidth + */ + public static final int SnackbarLayout_maxActionInlineWidth = 1; + /** Attributes that can be used with a Spinner. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #Spinner_android_dropDownWidth android:dropDownWidth}
{@link #Spinner_android_entries android:entries}
{@link #Spinner_android_popupBackground android:popupBackground}
{@link #Spinner_android_prompt android:prompt}
{@link #Spinner_popupTheme net.kdt.pojavlaunch:popupTheme}
+ @see #Spinner_android_dropDownWidth + @see #Spinner_android_entries + @see #Spinner_android_popupBackground + @see #Spinner_android_prompt + @see #Spinner_popupTheme + */ + public static final int[] Spinner = { + 0x010100b2, 0x01010176, 0x0101017b, 0x01010262, + 0x7f01006b + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownWidth} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:dropDownWidth + */ + public static final int Spinner_android_dropDownWidth = 3; + /** +

This symbol is the offset where the {@link android.R.attr#entries} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:entries + */ + public static final int Spinner_android_entries = 0; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:popupBackground + */ + public static final int Spinner_android_popupBackground = 1; + /** +

This symbol is the offset where the {@link android.R.attr#prompt} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:prompt + */ + public static final int Spinner_android_prompt = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Spinner} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Spinner_popupTheme = 4; + /** Attributes that can be used with a SwitchCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SwitchCompat_android_textOff android:textOff}
{@link #SwitchCompat_android_textOn android:textOn}
{@link #SwitchCompat_android_thumb android:thumb}
{@link #SwitchCompat_showText net.kdt.pojavlaunch:showText}
{@link #SwitchCompat_splitTrack net.kdt.pojavlaunch:splitTrack}
{@link #SwitchCompat_switchMinWidth net.kdt.pojavlaunch:switchMinWidth}
{@link #SwitchCompat_switchPadding net.kdt.pojavlaunch:switchPadding}
{@link #SwitchCompat_switchTextAppearance net.kdt.pojavlaunch:switchTextAppearance}
{@link #SwitchCompat_thumbTextPadding net.kdt.pojavlaunch:thumbTextPadding}
{@link #SwitchCompat_thumbTint net.kdt.pojavlaunch:thumbTint}
{@link #SwitchCompat_thumbTintMode net.kdt.pojavlaunch:thumbTintMode}
{@link #SwitchCompat_track net.kdt.pojavlaunch:track}
{@link #SwitchCompat_trackTint net.kdt.pojavlaunch:trackTint}
{@link #SwitchCompat_trackTintMode net.kdt.pojavlaunch:trackTintMode}
+ @see #SwitchCompat_android_textOff + @see #SwitchCompat_android_textOn + @see #SwitchCompat_android_thumb + @see #SwitchCompat_showText + @see #SwitchCompat_splitTrack + @see #SwitchCompat_switchMinWidth + @see #SwitchCompat_switchPadding + @see #SwitchCompat_switchTextAppearance + @see #SwitchCompat_thumbTextPadding + @see #SwitchCompat_thumbTint + @see #SwitchCompat_thumbTintMode + @see #SwitchCompat_track + @see #SwitchCompat_trackTint + @see #SwitchCompat_trackTintMode + */ + public static final int[] SwitchCompat = { + 0x01010124, 0x01010125, 0x01010142, 0x7f01010e, + 0x7f01010f, 0x7f010110, 0x7f010111, 0x7f010112, + 0x7f010113, 0x7f010114, 0x7f010115, 0x7f010116, + 0x7f010117, 0x7f010118 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textOff} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOff + */ + public static final int SwitchCompat_android_textOff = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textOn} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOn + */ + public static final int SwitchCompat_android_textOn = 0; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:thumb + */ + public static final int SwitchCompat_android_thumb = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showText} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:showText + */ + public static final int SwitchCompat_showText = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#splitTrack} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:splitTrack + */ + public static final int SwitchCompat_splitTrack = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchMinWidth} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchMinWidth + */ + public static final int SwitchCompat_switchMinWidth = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchPadding + */ + public static final int SwitchCompat_switchPadding = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchTextAppearance} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchTextAppearance + */ + public static final int SwitchCompat_switchTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTextPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTextPadding + */ + public static final int SwitchCompat_thumbTextPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTint + */ + public static final int SwitchCompat_thumbTint = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:thumbTintMode + */ + public static final int SwitchCompat_thumbTintMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#track} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:track + */ + public static final int SwitchCompat_track = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:trackTint + */ + public static final int SwitchCompat_trackTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:trackTintMode + */ + public static final int SwitchCompat_trackTintMode = 7; + /** Attributes that can be used with a TabItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #TabItem_android_icon android:icon}
{@link #TabItem_android_layout android:layout}
{@link #TabItem_android_text android:text}
+ @see #TabItem_android_icon + @see #TabItem_android_layout + @see #TabItem_android_text + */ + public static final int[] TabItem = { + 0x01010002, 0x010100f2, 0x0101014f + }; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:icon + */ + public static final int TabItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:layout + */ + public static final int TabItem_android_layout = 1; + /** +

This symbol is the offset where the {@link android.R.attr#text} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:text + */ + public static final int TabItem_android_text = 2; + /** Attributes that can be used with a TabLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #TabLayout_tabBackground net.kdt.pojavlaunch:tabBackground}
{@link #TabLayout_tabContentStart net.kdt.pojavlaunch:tabContentStart}
{@link #TabLayout_tabGravity net.kdt.pojavlaunch:tabGravity}
{@link #TabLayout_tabIndicatorColor net.kdt.pojavlaunch:tabIndicatorColor}
{@link #TabLayout_tabIndicatorHeight net.kdt.pojavlaunch:tabIndicatorHeight}
{@link #TabLayout_tabMaxWidth net.kdt.pojavlaunch:tabMaxWidth}
{@link #TabLayout_tabMinWidth net.kdt.pojavlaunch:tabMinWidth}
{@link #TabLayout_tabMode net.kdt.pojavlaunch:tabMode}
{@link #TabLayout_tabPadding net.kdt.pojavlaunch:tabPadding}
{@link #TabLayout_tabPaddingBottom net.kdt.pojavlaunch:tabPaddingBottom}
{@link #TabLayout_tabPaddingEnd net.kdt.pojavlaunch:tabPaddingEnd}
{@link #TabLayout_tabPaddingStart net.kdt.pojavlaunch:tabPaddingStart}
{@link #TabLayout_tabPaddingTop net.kdt.pojavlaunch:tabPaddingTop}
{@link #TabLayout_tabSelectedTextColor net.kdt.pojavlaunch:tabSelectedTextColor}
{@link #TabLayout_tabTextAppearance net.kdt.pojavlaunch:tabTextAppearance}
{@link #TabLayout_tabTextColor net.kdt.pojavlaunch:tabTextColor}
+ @see #TabLayout_tabBackground + @see #TabLayout_tabContentStart + @see #TabLayout_tabGravity + @see #TabLayout_tabIndicatorColor + @see #TabLayout_tabIndicatorHeight + @see #TabLayout_tabMaxWidth + @see #TabLayout_tabMinWidth + @see #TabLayout_tabMode + @see #TabLayout_tabPadding + @see #TabLayout_tabPaddingBottom + @see #TabLayout_tabPaddingEnd + @see #TabLayout_tabPaddingStart + @see #TabLayout_tabPaddingTop + @see #TabLayout_tabSelectedTextColor + @see #TabLayout_tabTextAppearance + @see #TabLayout_tabTextColor + */ + public static final int[] TabLayout = { + 0x7f010035, 0x7f010036, 0x7f010037, 0x7f010038, + 0x7f010039, 0x7f01003a, 0x7f01003b, 0x7f01003c, + 0x7f01003d, 0x7f01003e, 0x7f01003f, 0x7f010040, + 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabBackground} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabBackground + */ + public static final int TabLayout_tabBackground = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabContentStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabContentStart + */ + public static final int TabLayout_tabContentStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabGravity} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ @attr name net.kdt.pojavlaunch:tabGravity + */ + public static final int TabLayout_tabGravity = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorColor + */ + public static final int TabLayout_tabIndicatorColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorHeight} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorHeight + */ + public static final int TabLayout_tabIndicatorHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMaxWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMaxWidth + */ + public static final int TabLayout_tabMaxWidth = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMinWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMinWidth + */ + public static final int TabLayout_tabMinWidth = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMode} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ @attr name net.kdt.pojavlaunch:tabMode + */ + public static final int TabLayout_tabMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPadding} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPadding + */ + public static final int TabLayout_tabPadding = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingBottom} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingBottom + */ + public static final int TabLayout_tabPaddingBottom = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingEnd} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingEnd + */ + public static final int TabLayout_tabPaddingEnd = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingStart + */ + public static final int TabLayout_tabPaddingStart = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingTop} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingTop + */ + public static final int TabLayout_tabPaddingTop = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabSelectedTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabSelectedTextColor + */ + public static final int TabLayout_tabSelectedTextColor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextAppearance} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabTextAppearance + */ + public static final int TabLayout_tabTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabTextColor + */ + public static final int TabLayout_tabTextColor = 9; + /** Attributes that can be used with a TextAppearance. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #TextAppearance_android_shadowColor android:shadowColor}
{@link #TextAppearance_android_shadowDx android:shadowDx}
{@link #TextAppearance_android_shadowDy android:shadowDy}
{@link #TextAppearance_android_shadowRadius android:shadowRadius}
{@link #TextAppearance_android_textColor android:textColor}
{@link #TextAppearance_android_textSize android:textSize}
{@link #TextAppearance_android_textStyle android:textStyle}
{@link #TextAppearance_android_typeface android:typeface}
{@link #TextAppearance_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #TextAppearance_android_shadowColor + @see #TextAppearance_android_shadowDx + @see #TextAppearance_android_shadowDy + @see #TextAppearance_android_shadowRadius + @see #TextAppearance_android_textColor + @see #TextAppearance_android_textSize + @see #TextAppearance_android_textStyle + @see #TextAppearance_android_typeface + @see #TextAppearance_textAllCaps + */ + public static final int[] TextAppearance = { + 0x01010095, 0x01010096, 0x01010097, 0x01010098, + 0x01010161, 0x01010162, 0x01010163, 0x01010164, + 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#shadowColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowColor + */ + public static final int TextAppearance_android_shadowColor = 4; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDx} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDx + */ + public static final int TextAppearance_android_shadowDx = 5; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDy} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDy + */ + public static final int TextAppearance_android_shadowDy = 6; + /** +

This symbol is the offset where the {@link android.R.attr#shadowRadius} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowRadius + */ + public static final int TextAppearance_android_shadowRadius = 7; + /** +

This symbol is the offset where the {@link android.R.attr#textColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textColor + */ + public static final int TextAppearance_android_textColor = 3; + /** +

This symbol is the offset where the {@link android.R.attr#textSize} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textSize + */ + public static final int TextAppearance_android_textSize = 0; + /** +

This symbol is the offset where the {@link android.R.attr#textStyle} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textStyle + */ + public static final int TextAppearance_android_textStyle = 2; + /** +

This symbol is the offset where the {@link android.R.attr#typeface} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:typeface + */ + public static final int TextAppearance_android_typeface = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #TextAppearance} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int TextAppearance_textAllCaps = 8; + /** Attributes that can be used with a TextInputLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + +
AttributeDescription
{@link #TextInputLayout_android_hint android:hint}
{@link #TextInputLayout_android_textColorHint android:textColorHint}
{@link #TextInputLayout_counterEnabled net.kdt.pojavlaunch:counterEnabled}
{@link #TextInputLayout_counterMaxLength net.kdt.pojavlaunch:counterMaxLength}
{@link #TextInputLayout_counterOverflowTextAppearance net.kdt.pojavlaunch:counterOverflowTextAppearance}
{@link #TextInputLayout_counterTextAppearance net.kdt.pojavlaunch:counterTextAppearance}
{@link #TextInputLayout_errorEnabled net.kdt.pojavlaunch:errorEnabled}
{@link #TextInputLayout_errorTextAppearance net.kdt.pojavlaunch:errorTextAppearance}
{@link #TextInputLayout_hintAnimationEnabled net.kdt.pojavlaunch:hintAnimationEnabled}
{@link #TextInputLayout_hintEnabled net.kdt.pojavlaunch:hintEnabled}
{@link #TextInputLayout_hintTextAppearance net.kdt.pojavlaunch:hintTextAppearance}
+ @see #TextInputLayout_android_hint + @see #TextInputLayout_android_textColorHint + @see #TextInputLayout_counterEnabled + @see #TextInputLayout_counterMaxLength + @see #TextInputLayout_counterOverflowTextAppearance + @see #TextInputLayout_counterTextAppearance + @see #TextInputLayout_errorEnabled + @see #TextInputLayout_errorTextAppearance + @see #TextInputLayout_hintAnimationEnabled + @see #TextInputLayout_hintEnabled + @see #TextInputLayout_hintTextAppearance + */ + public static final int[] TextInputLayout = { + 0x0101009a, 0x01010150, 0x7f010045, 0x7f010046, + 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, + 0x7f01004b, 0x7f01004c, 0x7f01004d + }; + /** +

This symbol is the offset where the {@link android.R.attr#hint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:hint + */ + public static final int TextInputLayout_android_hint = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textColorHint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:textColorHint + */ + public static final int TextInputLayout_android_textColorHint = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterEnabled + */ + public static final int TextInputLayout_counterEnabled = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterMaxLength} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterMaxLength + */ + public static final int TextInputLayout_counterMaxLength = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterOverflowTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterOverflowTextAppearance + */ + public static final int TextInputLayout_counterOverflowTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterTextAppearance + */ + public static final int TextInputLayout_counterTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:errorEnabled + */ + public static final int TextInputLayout_errorEnabled = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:errorTextAppearance + */ + public static final int TextInputLayout_errorTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintAnimationEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintAnimationEnabled + */ + public static final int TextInputLayout_hintAnimationEnabled = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintEnabled + */ + public static final int TextInputLayout_hintEnabled = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:hintTextAppearance + */ + public static final int TextInputLayout_hintTextAppearance = 2; + /** Attributes that can be used with a Toolbar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #Toolbar_android_gravity android:gravity}
{@link #Toolbar_android_minHeight android:minHeight}
{@link #Toolbar_buttonGravity net.kdt.pojavlaunch:buttonGravity}
{@link #Toolbar_collapseContentDescription net.kdt.pojavlaunch:collapseContentDescription}
{@link #Toolbar_collapseIcon net.kdt.pojavlaunch:collapseIcon}
{@link #Toolbar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #Toolbar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #Toolbar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #Toolbar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #Toolbar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #Toolbar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #Toolbar_logo net.kdt.pojavlaunch:logo}
{@link #Toolbar_logoDescription net.kdt.pojavlaunch:logoDescription}
{@link #Toolbar_maxButtonHeight net.kdt.pojavlaunch:maxButtonHeight}
{@link #Toolbar_navigationContentDescription net.kdt.pojavlaunch:navigationContentDescription}
{@link #Toolbar_navigationIcon net.kdt.pojavlaunch:navigationIcon}
{@link #Toolbar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #Toolbar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #Toolbar_subtitleTextAppearance net.kdt.pojavlaunch:subtitleTextAppearance}
{@link #Toolbar_subtitleTextColor net.kdt.pojavlaunch:subtitleTextColor}
{@link #Toolbar_title net.kdt.pojavlaunch:title}
{@link #Toolbar_titleMargin net.kdt.pojavlaunch:titleMargin}
{@link #Toolbar_titleMarginBottom net.kdt.pojavlaunch:titleMarginBottom}
{@link #Toolbar_titleMarginEnd net.kdt.pojavlaunch:titleMarginEnd}
{@link #Toolbar_titleMarginStart net.kdt.pojavlaunch:titleMarginStart}
{@link #Toolbar_titleMarginTop net.kdt.pojavlaunch:titleMarginTop}
{@link #Toolbar_titleMargins net.kdt.pojavlaunch:titleMargins}
{@link #Toolbar_titleTextAppearance net.kdt.pojavlaunch:titleTextAppearance}
{@link #Toolbar_titleTextColor net.kdt.pojavlaunch:titleTextColor}
+ @see #Toolbar_android_gravity + @see #Toolbar_android_minHeight + @see #Toolbar_buttonGravity + @see #Toolbar_collapseContentDescription + @see #Toolbar_collapseIcon + @see #Toolbar_contentInsetEnd + @see #Toolbar_contentInsetEndWithActions + @see #Toolbar_contentInsetLeft + @see #Toolbar_contentInsetRight + @see #Toolbar_contentInsetStart + @see #Toolbar_contentInsetStartWithNavigation + @see #Toolbar_logo + @see #Toolbar_logoDescription + @see #Toolbar_maxButtonHeight + @see #Toolbar_navigationContentDescription + @see #Toolbar_navigationIcon + @see #Toolbar_popupTheme + @see #Toolbar_subtitle + @see #Toolbar_subtitleTextAppearance + @see #Toolbar_subtitleTextColor + @see #Toolbar_title + @see #Toolbar_titleMargin + @see #Toolbar_titleMarginBottom + @see #Toolbar_titleMarginEnd + @see #Toolbar_titleMarginStart + @see #Toolbar_titleMarginTop + @see #Toolbar_titleMargins + @see #Toolbar_titleTextAppearance + @see #Toolbar_titleTextColor + */ + public static final int[] Toolbar = { + 0x010100af, 0x01010140, 0x7f010051, 0x7f010054, + 0x7f010058, 0x7f010064, 0x7f010065, 0x7f010066, + 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006b, + 0x7f010119, 0x7f01011a, 0x7f01011b, 0x7f01011c, + 0x7f01011d, 0x7f01011e, 0x7f01011f, 0x7f010120, + 0x7f010121, 0x7f010122, 0x7f010123, 0x7f010124, + 0x7f010125, 0x7f010126, 0x7f010127, 0x7f010128, + 0x7f010129 + }; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:gravity + */ + public static final int Toolbar_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#minHeight} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:minHeight + */ + public static final int Toolbar_android_minHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonGravity} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ @attr name net.kdt.pojavlaunch:buttonGravity + */ + public static final int Toolbar_buttonGravity = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:collapseContentDescription + */ + public static final int Toolbar_collapseContentDescription = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapseIcon + */ + public static final int Toolbar_collapseIcon = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int Toolbar_contentInsetEnd = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int Toolbar_contentInsetEndWithActions = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int Toolbar_contentInsetLeft = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int Toolbar_contentInsetRight = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int Toolbar_contentInsetStart = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int Toolbar_contentInsetStartWithNavigation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int Toolbar_logo = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logoDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:logoDescription + */ + public static final int Toolbar_logoDescription = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxButtonHeight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxButtonHeight + */ + public static final int Toolbar_maxButtonHeight = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:navigationContentDescription + */ + public static final int Toolbar_navigationContentDescription = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:navigationIcon + */ + public static final int Toolbar_navigationIcon = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Toolbar_popupTheme = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int Toolbar_subtitle = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextAppearance + */ + public static final int Toolbar_subtitleTextAppearance = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitleTextColor + */ + public static final int Toolbar_subtitleTextColor = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int Toolbar_title = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargin} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargin + */ + public static final int Toolbar_titleMargin = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginBottom} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginBottom + */ + public static final int Toolbar_titleMarginBottom = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginEnd + */ + public static final int Toolbar_titleMarginEnd = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginStart + */ + public static final int Toolbar_titleMarginStart = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginTop} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginTop + */ + public static final int Toolbar_titleMarginTop = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargins} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargins + */ + public static final int Toolbar_titleMargins = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextAppearance + */ + public static final int Toolbar_titleTextAppearance = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleTextColor + */ + public static final int Toolbar_titleTextColor = 27; + /** Attributes that can be used with a View. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #View_android_focusable android:focusable}
{@link #View_android_theme android:theme}
{@link #View_paddingEnd net.kdt.pojavlaunch:paddingEnd}
{@link #View_paddingStart net.kdt.pojavlaunch:paddingStart}
{@link #View_theme net.kdt.pojavlaunch:theme}
+ @see #View_android_focusable + @see #View_android_theme + @see #View_paddingEnd + @see #View_paddingStart + @see #View_theme + */ + public static final int[] View = { + 0x01010000, 0x010100da, 0x7f01012a, 0x7f01012b, + 0x7f01012c + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #View} array. + @attr name android:focusable + */ + public static final int View_android_focusable = 1; + /** +

This symbol is the offset where the {@link android.R.attr#theme} + attribute's value can be found in the {@link #View} array. + @attr name android:theme + */ + public static final int View_android_theme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingEnd} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingEnd + */ + public static final int View_paddingEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingStart} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingStart + */ + public static final int View_paddingStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#theme} + attribute's value can be found in the {@link #View} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:theme + */ + public static final int View_theme = 4; + /** Attributes that can be used with a ViewBackgroundHelper. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewBackgroundHelper_android_background android:background}
{@link #ViewBackgroundHelper_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #ViewBackgroundHelper_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
+ @see #ViewBackgroundHelper_android_background + @see #ViewBackgroundHelper_backgroundTint + @see #ViewBackgroundHelper_backgroundTintMode + */ + public static final int[] ViewBackgroundHelper = { + 0x010100d4, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + @attr name android:background + */ + public static final int ViewBackgroundHelper_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int ViewBackgroundHelper_backgroundTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int ViewBackgroundHelper_backgroundTintMode = 2; + /** Attributes that can be used with a ViewStubCompat. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewStubCompat_android_id android:id}
{@link #ViewStubCompat_android_inflatedId android:inflatedId}
{@link #ViewStubCompat_android_layout android:layout}
+ @see #ViewStubCompat_android_id + @see #ViewStubCompat_android_inflatedId + @see #ViewStubCompat_android_layout + */ + public static final int[] ViewStubCompat = { + 0x010100d0, 0x010100f2, 0x010100f3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:id + */ + public static final int ViewStubCompat_android_id = 0; + /** +

This symbol is the offset where the {@link android.R.attr#inflatedId} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:inflatedId + */ + public static final int ViewStubCompat_android_inflatedId = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:layout + */ + public static final int ViewStubCompat_android_layout = 1; + }; +} diff --git a/app/build/gen/android/support/v7/recyclerview/R.java b/app/build/gen/android/support/v7/recyclerview/R.java new file mode 100644 index 000000000..f76023f18 --- /dev/null +++ b/app/build/gen/android/support/v7/recyclerview/R.java @@ -0,0 +1,9644 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package android.support.v7.recyclerview; + +public final class R { + public static final class anim { + public static final int abc_fade_in=0x7f040000; + public static final int abc_fade_out=0x7f040001; + public static final int abc_grow_fade_in_from_bottom=0x7f040002; + public static final int abc_popup_enter=0x7f040003; + public static final int abc_popup_exit=0x7f040004; + public static final int abc_shrink_fade_out_from_bottom=0x7f040005; + public static final int abc_slide_in_bottom=0x7f040006; + public static final int abc_slide_in_top=0x7f040007; + public static final int abc_slide_out_bottom=0x7f040008; + public static final int abc_slide_out_top=0x7f040009; + public static final int design_appbar_state_list_animator=0x7f04000a; + public static final int design_bottom_sheet_slide_in=0x7f04000b; + public static final int design_bottom_sheet_slide_out=0x7f04000c; + public static final int design_fab_in=0x7f04000d; + public static final int design_fab_out=0x7f04000e; + public static final int design_snackbar_in=0x7f04000f; + public static final int design_snackbar_out=0x7f040010; + public static final int translate_left_side=0x7f040011; + public static final int translate_right_side=0x7f040012; + } + public static final class array { + public static final int mcl_options=0x7f0c0000; + } + public static final class attr { + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarDivider=0x7f01008e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarItemBackground=0x7f01008f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarPopupTheme=0x7f010088; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ */ + public static final int actionBarSize=0x7f01008d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarSplitStyle=0x7f01008a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarStyle=0x7f010089; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabBarStyle=0x7f010084; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabStyle=0x7f010083; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabTextStyle=0x7f010085; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTheme=0x7f01008b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarWidgetTheme=0x7f01008c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionButtonStyle=0x7f0100a9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionDropDownStyle=0x7f0100a5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionLayout=0x7f0100fa; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionMenuTextAppearance=0x7f010090; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int actionMenuTextColor=0x7f010091; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeBackground=0x7f010094; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseButtonStyle=0x7f010093; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseDrawable=0x7f010096; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCopyDrawable=0x7f010098; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCutDrawable=0x7f010097; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeFindDrawable=0x7f01009c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePasteDrawable=0x7f010099; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePopupWindowStyle=0x7f01009e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSelectAllDrawable=0x7f01009a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeShareDrawable=0x7f01009b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSplitBackground=0x7f010095; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeStyle=0x7f010092; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeWebSearchDrawable=0x7f01009d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowButtonStyle=0x7f010086; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowMenuStyle=0x7f010087; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionProviderClass=0x7f0100fc; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionViewClass=0x7f0100fb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int activityChooserViewStyle=0x7f0100b1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogButtonGroupStyle=0x7f0100d5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alertDialogCenterButtons=0x7f0100d6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogStyle=0x7f0100d4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogTheme=0x7f0100d7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int allowStacking=0x7f0100ea; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alpha=0x7f0100eb; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowHeadLength=0x7f0100f2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowShaftLength=0x7f0100f3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int autoCompleteTextViewStyle=0x7f0100dc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int background=0x7f01005a; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundSplit=0x7f01005c; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundStacked=0x7f01005b; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int backgroundTint=0x7f01012d; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int backgroundTintMode=0x7f01012e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int barLength=0x7f0100f4; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_hideable=0x7f01000a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_overlapTop=0x7f010033; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_peekHeight=0x7f010009; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_skipCollapsed=0x7f01000b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int borderWidth=0x7f010029; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int borderlessButtonStyle=0x7f0100ae; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetDialogTheme=0x7f010023; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetStyle=0x7f010024; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarButtonStyle=0x7f0100ab; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNegativeButtonStyle=0x7f0100da; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNeutralButtonStyle=0x7f0100db; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarPositiveButtonStyle=0x7f0100d9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarStyle=0x7f0100aa; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ */ + public static final int buttonGravity=0x7f010122; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonPanelSideLayout=0x7f01006f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyle=0x7f0100dd; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyleSmall=0x7f0100de; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int buttonTint=0x7f0100ec; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int buttonTintMode=0x7f0100ed; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkboxStyle=0x7f0100df; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkedTextViewStyle=0x7f0100e0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeIcon=0x7f010105; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeItemLayout=0x7f01006c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int collapseContentDescription=0x7f010124; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapseIcon=0x7f010123; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int collapsedTitleGravity=0x7f010018; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapsedTitleTextAppearance=0x7f010012; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int color=0x7f0100ee; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorAccent=0x7f0100cc; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorBackgroundFloating=0x7f0100d3; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorButtonNormal=0x7f0100d0; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlActivated=0x7f0100ce; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlHighlight=0x7f0100cf; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlNormal=0x7f0100cd; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimary=0x7f0100ca; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimaryDark=0x7f0100cb; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorSwitchThumbNormal=0x7f0100d1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int commitIcon=0x7f01010a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEnd=0x7f010065; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEndWithActions=0x7f010069; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetLeft=0x7f010066; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetRight=0x7f010067; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStart=0x7f010064; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStartWithNavigation=0x7f010068; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentScrim=0x7f010013; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int controlBackground=0x7f0100d2; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterEnabled=0x7f010049; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterMaxLength=0x7f01004a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterOverflowTextAppearance=0x7f01004c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterTextAppearance=0x7f01004b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int customNavigationLayout=0x7f01005d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int defaultQueryHint=0x7f010104; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dialogPreferredPadding=0x7f0100a3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dialogTheme=0x7f0100a2; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ */ + public static final int displayOptions=0x7f010053; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int divider=0x7f010059; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerHorizontal=0x7f0100b0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dividerPadding=0x7f0100f8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerVertical=0x7f0100af; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int drawableSize=0x7f0100f0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int drawerArrowStyle=0x7f01004e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dropDownListViewStyle=0x7f0100c2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dropdownListPreferredItemHeight=0x7f0100a6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextBackground=0x7f0100b7; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int editTextColor=0x7f0100b6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextStyle=0x7f0100e1; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int elevation=0x7f01006a; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int errorEnabled=0x7f010047; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int errorTextAppearance=0x7f010048; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandActivityOverflowButtonDrawable=0x7f01006e; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expanded=0x7f010004; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int expandedTitleGravity=0x7f010019; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMargin=0x7f01000c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginBottom=0x7f010010; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginEnd=0x7f01000f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginStart=0x7f01000d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginTop=0x7f01000e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandedTitleTextAppearance=0x7f010011; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ */ + public static final int fabSize=0x7f010027; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int foregroundInsidePadding=0x7f01002b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int gapBetweenBars=0x7f0100f1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int goIcon=0x7f010106; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int headerLayout=0x7f010031; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int height=0x7f01004f; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hideOnContentScroll=0x7f010063; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintAnimationEnabled=0x7f01004d; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintEnabled=0x7f010046; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int hintTextAppearance=0x7f010045; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeAsUpIndicator=0x7f0100a8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeLayout=0x7f01005e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int icon=0x7f010057; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int iconifiedByDefault=0x7f010102; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int imageButtonStyle=0x7f0100b8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int indeterminateProgressStyle=0x7f010060; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int initialActivityCount=0x7f01006d; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int insetForeground=0x7f010032; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int isLightTheme=0x7f010050; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemBackground=0x7f01002f; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemIconTint=0x7f01002d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemPadding=0x7f010062; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemTextAppearance=0x7f010030; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemTextColor=0x7f01002e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int keylines=0x7f01001d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout=0x7f010101; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layoutManager=0x7f010000; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_anchor=0x7f010020; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ */ + public static final int layout_anchorGravity=0x7f010022; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_behavior=0x7f01001f; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ */ + public static final int layout_collapseMode=0x7f01001b; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_collapseParallaxMultiplier=0x7f01001c; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_keyline=0x7f010021; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ */ + public static final int layout_scrollFlags=0x7f010007; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_scrollInterpolator=0x7f010008; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listChoiceBackgroundIndicator=0x7f0100c9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listDividerAlertDialog=0x7f0100a4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listItemLayout=0x7f010073; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listLayout=0x7f010070; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listMenuViewStyle=0x7f0100e9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listPopupWindowStyle=0x7f0100c3; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeight=0x7f0100bd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightLarge=0x7f0100bf; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightSmall=0x7f0100be; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingLeft=0x7f0100c0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingRight=0x7f0100c1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int logo=0x7f010058; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int logoDescription=0x7f010127; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxActionInlineWidth=0x7f010034; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxButtonHeight=0x7f010121; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int measureWithLargestChild=0x7f0100f6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int menu=0x7f01002c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int multiChoiceItemLayout=0x7f010071; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int navigationContentDescription=0x7f010126; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int navigationIcon=0x7f010125; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ */ + public static final int navigationMode=0x7f010052; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int overlapAnchor=0x7f0100ff; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingEnd=0x7f01012b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingStart=0x7f01012a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelBackground=0x7f0100c6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelMenuListTheme=0x7f0100c8; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int panelMenuListWidth=0x7f0100c7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupMenuStyle=0x7f0100b4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupTheme=0x7f01006b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupWindowStyle=0x7f0100b5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int preserveIconSpacing=0x7f0100fd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int pressedTranslationZ=0x7f010028; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int progressBarPadding=0x7f010061; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int progressBarStyle=0x7f01005f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int queryBackground=0x7f01010c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int queryHint=0x7f010103; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int radioButtonStyle=0x7f0100e2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyle=0x7f0100e3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleIndicator=0x7f0100e4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleSmall=0x7f0100e5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int reverseLayout=0x7f010002; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int rippleColor=0x7f010026; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimAnimationDuration=0x7f010017; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimVisibleHeightTrigger=0x7f010016; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchHintIcon=0x7f010108; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchIcon=0x7f010107; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchViewStyle=0x7f0100bc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int seekBarStyle=0x7f0100e6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackground=0x7f0100ac; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackgroundBorderless=0x7f0100ad; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ */ + public static final int showAsAction=0x7f0100f9; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ */ + public static final int showDividers=0x7f0100f7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int showText=0x7f010118; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int singleChoiceItemLayout=0x7f010072; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spanCount=0x7f010001; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spinBars=0x7f0100ef; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerDropDownItemStyle=0x7f0100a7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerStyle=0x7f0100e7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int splitTrack=0x7f010117; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int srcCompat=0x7f010074; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int stackFromEnd=0x7f010003; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_above_anchor=0x7f010100; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsed=0x7f010005; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsible=0x7f010006; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int statusBarBackground=0x7f01001e; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int statusBarScrim=0x7f010014; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subMenuArrow=0x7f0100fe; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int submitBackground=0x7f01010d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitle=0x7f010054; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextAppearance=0x7f01011a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitleTextColor=0x7f010129; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextStyle=0x7f010056; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int suggestionRowLayout=0x7f01010b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchMinWidth=0x7f010115; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchPadding=0x7f010116; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchStyle=0x7f0100e8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchTextAppearance=0x7f010114; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabBackground=0x7f010038; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabContentStart=0x7f010037; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ */ + public static final int tabGravity=0x7f01003a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorColor=0x7f010035; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorHeight=0x7f010036; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMaxWidth=0x7f01003c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMinWidth=0x7f01003b; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ */ + public static final int tabMode=0x7f010039; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPadding=0x7f010044; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingBottom=0x7f010043; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingEnd=0x7f010042; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingStart=0x7f010040; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingTop=0x7f010041; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabSelectedTextColor=0x7f01003f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabTextAppearance=0x7f01003d; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabTextColor=0x7f01003e; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + */ + public static final int textAllCaps=0x7f010078; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceLargePopupMenu=0x7f01009f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItem=0x7f0100c4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItemSmall=0x7f0100c5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearancePopupMenuHeader=0x7f0100a1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultSubtitle=0x7f0100ba; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultTitle=0x7f0100b9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSmallPopupMenu=0x7f0100a0; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorAlertDialogListItem=0x7f0100d8; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int textColorError=0x7f010025; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorSearchUrl=0x7f0100bb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int theme=0x7f01012c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thickness=0x7f0100f5; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTextPadding=0x7f010113; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTint=0x7f01010e; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int thumbTintMode=0x7f01010f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tickMark=0x7f010075; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tickMarkTint=0x7f010076; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int tickMarkTintMode=0x7f010077; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int title=0x7f010051; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleEnabled=0x7f01001a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargin=0x7f01011b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginBottom=0x7f01011f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginEnd=0x7f01011d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginStart=0x7f01011c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginTop=0x7f01011e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargins=0x7f010120; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextAppearance=0x7f010119; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleTextColor=0x7f010128; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextStyle=0x7f010055; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarId=0x7f010015; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarNavigationButtonStyle=0x7f0100b3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarStyle=0x7f0100b2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int track=0x7f010110; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int trackTint=0x7f010111; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int trackTintMode=0x7f010112; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int useCompatPadding=0x7f01002a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int voiceIcon=0x7f010109; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBar=0x7f010079; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBarOverlay=0x7f01007b; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionModeOverlay=0x7f01007c; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMajor=0x7f010080; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMinor=0x7f01007e; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMajor=0x7f01007d; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMinor=0x7f01007f; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMajor=0x7f010081; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMinor=0x7f010082; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowNoTitle=0x7f01007a; + } + public static final class bool { + public static final int abc_action_bar_embed_tabs=0x7f0b0000; + public static final int abc_allow_stacked_button_bar=0x7f0b0001; + public static final int abc_config_actionMenuItemAllCaps=0x7f0b0002; + public static final int abc_config_closeDialogWhenTouchOutside=0x7f0b0003; + public static final int abc_config_showMenuShortcutsWhenKeyboardPresent=0x7f0b0004; + } + public static final class color { + public static final int abc_background_cache_hint_selector_material_dark=0x7f090044; + public static final int abc_background_cache_hint_selector_material_light=0x7f090045; + public static final int abc_btn_colored_borderless_text_material=0x7f090046; + public static final int abc_color_highlight_material=0x7f090047; + public static final int abc_input_method_navigation_guard=0x7f09000a; + public static final int abc_primary_text_disable_only_material_dark=0x7f090048; + public static final int abc_primary_text_disable_only_material_light=0x7f090049; + public static final int abc_primary_text_material_dark=0x7f09004a; + public static final int abc_primary_text_material_light=0x7f09004b; + public static final int abc_search_url_text=0x7f09004c; + public static final int abc_search_url_text_normal=0x7f09000b; + public static final int abc_search_url_text_pressed=0x7f09000c; + public static final int abc_search_url_text_selected=0x7f09000d; + public static final int abc_secondary_text_material_dark=0x7f09004d; + public static final int abc_secondary_text_material_light=0x7f09004e; + public static final int abc_tint_btn_checkable=0x7f09004f; + public static final int abc_tint_default=0x7f090050; + public static final int abc_tint_edittext=0x7f090051; + public static final int abc_tint_seek_thumb=0x7f090052; + public static final int abc_tint_spinner=0x7f090053; + public static final int abc_tint_switch_thumb=0x7f090054; + public static final int abc_tint_switch_track=0x7f090055; + public static final int accent_material_dark=0x7f09000e; + public static final int accent_material_light=0x7f09000f; + public static final int background_floating_material_dark=0x7f090010; + public static final int background_floating_material_light=0x7f090011; + public static final int background_material_dark=0x7f090012; + public static final int background_material_light=0x7f090013; + public static final int bright_foreground_disabled_material_dark=0x7f090014; + public static final int bright_foreground_disabled_material_light=0x7f090015; + public static final int bright_foreground_inverse_material_dark=0x7f090016; + public static final int bright_foreground_inverse_material_light=0x7f090017; + public static final int bright_foreground_material_dark=0x7f090018; + public static final int bright_foreground_material_light=0x7f090019; + public static final int button_material_dark=0x7f09001a; + public static final int button_material_light=0x7f09001b; + public static final int design_fab_shadow_end_color=0x7f090000; + public static final int design_fab_shadow_mid_color=0x7f090001; + public static final int design_fab_shadow_start_color=0x7f090002; + public static final int design_fab_stroke_end_inner_color=0x7f090003; + public static final int design_fab_stroke_end_outer_color=0x7f090004; + public static final int design_fab_stroke_top_inner_color=0x7f090005; + public static final int design_fab_stroke_top_outer_color=0x7f090006; + public static final int design_snackbar_background_color=0x7f090007; + public static final int design_textinput_error_color_dark=0x7f090008; + public static final int design_textinput_error_color_light=0x7f090009; + public static final int dim_foreground_disabled_material_dark=0x7f09001c; + public static final int dim_foreground_disabled_material_light=0x7f09001d; + public static final int dim_foreground_material_dark=0x7f09001e; + public static final int dim_foreground_material_light=0x7f09001f; + public static final int foreground_material_dark=0x7f090020; + public static final int foreground_material_light=0x7f090021; + public static final int highlighted_text_material_dark=0x7f090022; + public static final int highlighted_text_material_light=0x7f090023; + public static final int hint_foreground_material_dark=0x7f090024; + public static final int hint_foreground_material_light=0x7f090025; + public static final int material_blue_grey_800=0x7f090026; + public static final int material_blue_grey_900=0x7f090027; + public static final int material_blue_grey_950=0x7f090028; + public static final int material_deep_teal_200=0x7f090029; + public static final int material_deep_teal_500=0x7f09002a; + public static final int material_grey_100=0x7f09002b; + public static final int material_grey_300=0x7f09002c; + public static final int material_grey_50=0x7f09002d; + public static final int material_grey_600=0x7f09002e; + public static final int material_grey_800=0x7f09002f; + public static final int material_grey_850=0x7f090030; + public static final int material_grey_900=0x7f090031; + public static final int primary_dark_material_dark=0x7f090032; + public static final int primary_dark_material_light=0x7f090033; + public static final int primary_material_dark=0x7f090034; + public static final int primary_material_light=0x7f090035; + public static final int primary_text_default_material_dark=0x7f090036; + public static final int primary_text_default_material_light=0x7f090037; + public static final int primary_text_disabled_material_dark=0x7f090038; + public static final int primary_text_disabled_material_light=0x7f090039; + public static final int ripple_material_dark=0x7f09003a; + public static final int ripple_material_light=0x7f09003b; + public static final int secondary_text_default_material_dark=0x7f09003c; + public static final int secondary_text_default_material_light=0x7f09003d; + public static final int secondary_text_disabled_material_dark=0x7f09003e; + public static final int secondary_text_disabled_material_light=0x7f09003f; + public static final int switch_thumb_disabled_material_dark=0x7f090040; + public static final int switch_thumb_disabled_material_light=0x7f090041; + public static final int switch_thumb_material_dark=0x7f090056; + public static final int switch_thumb_material_light=0x7f090057; + public static final int switch_thumb_normal_material_dark=0x7f090042; + public static final int switch_thumb_normal_material_light=0x7f090043; + } + public static final class dimen { + public static final int abc_action_bar_content_inset_material=0x7f05002c; + public static final int abc_action_bar_content_inset_with_nav=0x7f05002d; + public static final int abc_action_bar_default_height_material=0x7f050021; + public static final int abc_action_bar_default_padding_end_material=0x7f05002e; + public static final int abc_action_bar_default_padding_start_material=0x7f05002f; + public static final int abc_action_bar_icon_vertical_padding_material=0x7f050031; + public static final int abc_action_bar_overflow_padding_end_material=0x7f050032; + public static final int abc_action_bar_overflow_padding_start_material=0x7f050033; + public static final int abc_action_bar_progress_bar_size=0x7f050022; + public static final int abc_action_bar_stacked_max_height=0x7f050034; + public static final int abc_action_bar_stacked_tab_max_width=0x7f050035; + public static final int abc_action_bar_subtitle_bottom_margin_material=0x7f050036; + public static final int abc_action_bar_subtitle_top_margin_material=0x7f050037; + public static final int abc_action_button_min_height_material=0x7f050038; + public static final int abc_action_button_min_width_material=0x7f050039; + public static final int abc_action_button_min_width_overflow_material=0x7f05003a; + public static final int abc_alert_dialog_button_bar_height=0x7f050020; + public static final int abc_button_inset_horizontal_material=0x7f05003b; + public static final int abc_button_inset_vertical_material=0x7f05003c; + public static final int abc_button_padding_horizontal_material=0x7f05003d; + public static final int abc_button_padding_vertical_material=0x7f05003e; + public static final int abc_cascading_menus_min_smallest_width=0x7f05003f; + public static final int abc_config_prefDialogWidth=0x7f050025; + public static final int abc_control_corner_material=0x7f050040; + public static final int abc_control_inset_material=0x7f050041; + public static final int abc_control_padding_material=0x7f050042; + public static final int abc_dialog_fixed_height_major=0x7f050026; + public static final int abc_dialog_fixed_height_minor=0x7f050027; + public static final int abc_dialog_fixed_width_major=0x7f050028; + public static final int abc_dialog_fixed_width_minor=0x7f050029; + public static final int abc_dialog_list_padding_vertical_material=0x7f050043; + public static final int abc_dialog_min_width_major=0x7f05002a; + public static final int abc_dialog_min_width_minor=0x7f05002b; + public static final int abc_dialog_padding_material=0x7f050044; + public static final int abc_dialog_padding_top_material=0x7f050045; + public static final int abc_disabled_alpha_material_dark=0x7f050046; + public static final int abc_disabled_alpha_material_light=0x7f050047; + public static final int abc_dropdownitem_icon_width=0x7f050048; + public static final int abc_dropdownitem_text_padding_left=0x7f050049; + public static final int abc_dropdownitem_text_padding_right=0x7f05004a; + public static final int abc_edit_text_inset_bottom_material=0x7f05004b; + public static final int abc_edit_text_inset_horizontal_material=0x7f05004c; + public static final int abc_edit_text_inset_top_material=0x7f05004d; + public static final int abc_floating_window_z=0x7f05004e; + public static final int abc_list_item_padding_horizontal_material=0x7f05004f; + public static final int abc_panel_menu_list_width=0x7f050050; + public static final int abc_progress_bar_height_material=0x7f050051; + public static final int abc_search_view_preferred_height=0x7f050052; + public static final int abc_search_view_preferred_width=0x7f050053; + public static final int abc_seekbar_track_background_height_material=0x7f050054; + public static final int abc_seekbar_track_progress_height_material=0x7f050055; + public static final int abc_select_dialog_padding_start_material=0x7f050056; + public static final int abc_switch_padding=0x7f050030; + public static final int abc_text_size_body_1_material=0x7f050057; + public static final int abc_text_size_body_2_material=0x7f050058; + public static final int abc_text_size_button_material=0x7f050059; + public static final int abc_text_size_caption_material=0x7f05005a; + public static final int abc_text_size_display_1_material=0x7f05005b; + public static final int abc_text_size_display_2_material=0x7f05005c; + public static final int abc_text_size_display_3_material=0x7f05005d; + public static final int abc_text_size_display_4_material=0x7f05005e; + public static final int abc_text_size_headline_material=0x7f05005f; + public static final int abc_text_size_large_material=0x7f050060; + public static final int abc_text_size_medium_material=0x7f050061; + public static final int abc_text_size_menu_header_material=0x7f050062; + public static final int abc_text_size_menu_material=0x7f050063; + public static final int abc_text_size_small_material=0x7f050064; + public static final int abc_text_size_subhead_material=0x7f050065; + public static final int abc_text_size_subtitle_material_toolbar=0x7f050023; + public static final int abc_text_size_title_material=0x7f050066; + public static final int abc_text_size_title_material_toolbar=0x7f050024; + /** Default screen margins, per the Android Design guidelines. + */ + public static final int activity_horizontal_margin=0x7f05006f; + public static final int activity_vertical_margin=0x7f050070; + public static final int design_appbar_elevation=0x7f05000b; + public static final int design_bottom_sheet_modal_elevation=0x7f05000c; + public static final int design_bottom_sheet_modal_peek_height=0x7f05000d; + public static final int design_fab_border_width=0x7f05000e; + public static final int design_fab_elevation=0x7f05000f; + public static final int design_fab_image_size=0x7f050010; + public static final int design_fab_size_mini=0x7f050011; + public static final int design_fab_size_normal=0x7f050012; + public static final int design_fab_translation_z_pressed=0x7f050013; + public static final int design_navigation_elevation=0x7f050014; + public static final int design_navigation_icon_padding=0x7f050015; + public static final int design_navigation_icon_size=0x7f050016; + public static final int design_navigation_max_width=0x7f050003; + public static final int design_navigation_padding_bottom=0x7f050017; + public static final int design_navigation_separator_vertical_padding=0x7f050018; + public static final int design_snackbar_action_inline_max_width=0x7f050004; + public static final int design_snackbar_background_corner_radius=0x7f050005; + public static final int design_snackbar_elevation=0x7f050019; + public static final int design_snackbar_extra_spacing_horizontal=0x7f050006; + public static final int design_snackbar_max_width=0x7f050007; + public static final int design_snackbar_min_width=0x7f050008; + public static final int design_snackbar_padding_horizontal=0x7f05001a; + public static final int design_snackbar_padding_vertical=0x7f05001b; + public static final int design_snackbar_padding_vertical_2lines=0x7f050009; + public static final int design_snackbar_text_size=0x7f05001c; + public static final int design_tab_max_width=0x7f05001d; + public static final int design_tab_scrollable_min_width=0x7f05000a; + public static final int design_tab_text_size=0x7f05001e; + public static final int design_tab_text_size_2line=0x7f05001f; + public static final int disabled_alpha_material_dark=0x7f050067; + public static final int disabled_alpha_material_light=0x7f050068; + public static final int empty_icon_height=0x7f050079; + /** Main Activity components + */ + public static final int empty_icon_width=0x7f050078; + public static final int highlight_alpha_material_colored=0x7f050069; + public static final int highlight_alpha_material_dark=0x7f05006a; + public static final int highlight_alpha_material_light=0x7f05006b; + public static final int item_touch_helper_max_drag_scroll_per_frame=0x7f050000; + public static final int item_touch_helper_swipe_escape_max_velocity=0x7f050001; + public static final int item_touch_helper_swipe_escape_velocity=0x7f050002; + public static final int navigation_header_height=0x7f05007a; + public static final int navigation_item_height=0x7f05007b; + public static final int navigation_item_icon_size=0x7f05007c; + public static final int notification_large_icon_height=0x7f05006c; + public static final int notification_large_icon_width=0x7f05006d; + public static final int notification_subtext_size=0x7f05006e; + public static final int padding_extra_extra_large=0x7f050077; + public static final int padding_extra_large=0x7f050076; + public static final int padding_large=0x7f050075; + public static final int padding_medium=0x7f050074; + public static final int padding_small=0x7f050073; + /** Padding + */ + public static final int padding_tiny=0x7f050071; + public static final int padding_tiny_plus_one=0x7f050072; + } + public static final class drawable { + public static final int abc_ab_share_pack_mtrl_alpha=0x7f020000; + public static final int abc_action_bar_item_background_material=0x7f020001; + public static final int abc_btn_borderless_material=0x7f020002; + public static final int abc_btn_check_material=0x7f020003; + public static final int abc_btn_check_to_on_mtrl_000=0x7f020004; + public static final int abc_btn_check_to_on_mtrl_015=0x7f020005; + public static final int abc_btn_colored_material=0x7f020006; + public static final int abc_btn_default_mtrl_shape=0x7f020007; + public static final int abc_btn_radio_material=0x7f020008; + public static final int abc_btn_radio_to_on_mtrl_000=0x7f020009; + public static final int abc_btn_radio_to_on_mtrl_015=0x7f02000a; + public static final int abc_btn_switch_to_on_mtrl_00001=0x7f02000b; + public static final int abc_btn_switch_to_on_mtrl_00012=0x7f02000c; + public static final int abc_cab_background_internal_bg=0x7f02000d; + public static final int abc_cab_background_top_material=0x7f02000e; + public static final int abc_cab_background_top_mtrl_alpha=0x7f02000f; + public static final int abc_control_background_material=0x7f020010; + public static final int abc_dialog_material_background=0x7f020011; + public static final int abc_edit_text_material=0x7f020012; + public static final int abc_ic_ab_back_material=0x7f020013; + public static final int abc_ic_arrow_drop_right_black_24dp=0x7f020014; + public static final int abc_ic_clear_material=0x7f020015; + public static final int abc_ic_commit_search_api_mtrl_alpha=0x7f020016; + public static final int abc_ic_go_search_api_material=0x7f020017; + public static final int abc_ic_menu_copy_mtrl_am_alpha=0x7f020018; + public static final int abc_ic_menu_cut_mtrl_alpha=0x7f020019; + public static final int abc_ic_menu_overflow_material=0x7f02001a; + public static final int abc_ic_menu_paste_mtrl_am_alpha=0x7f02001b; + public static final int abc_ic_menu_selectall_mtrl_alpha=0x7f02001c; + public static final int abc_ic_menu_share_mtrl_alpha=0x7f02001d; + public static final int abc_ic_search_api_material=0x7f02001e; + public static final int abc_ic_star_black_16dp=0x7f02001f; + public static final int abc_ic_star_black_36dp=0x7f020020; + public static final int abc_ic_star_black_48dp=0x7f020021; + public static final int abc_ic_star_half_black_16dp=0x7f020022; + public static final int abc_ic_star_half_black_36dp=0x7f020023; + public static final int abc_ic_star_half_black_48dp=0x7f020024; + public static final int abc_ic_voice_search_api_material=0x7f020025; + public static final int abc_item_background_holo_dark=0x7f020026; + public static final int abc_item_background_holo_light=0x7f020027; + public static final int abc_list_divider_mtrl_alpha=0x7f020028; + public static final int abc_list_focused_holo=0x7f020029; + public static final int abc_list_longpressed_holo=0x7f02002a; + public static final int abc_list_pressed_holo_dark=0x7f02002b; + public static final int abc_list_pressed_holo_light=0x7f02002c; + public static final int abc_list_selector_background_transition_holo_dark=0x7f02002d; + public static final int abc_list_selector_background_transition_holo_light=0x7f02002e; + public static final int abc_list_selector_disabled_holo_dark=0x7f02002f; + public static final int abc_list_selector_disabled_holo_light=0x7f020030; + public static final int abc_list_selector_holo_dark=0x7f020031; + public static final int abc_list_selector_holo_light=0x7f020032; + public static final int abc_menu_hardkey_panel_mtrl_mult=0x7f020033; + public static final int abc_popup_background_mtrl_mult=0x7f020034; + public static final int abc_ratingbar_indicator_material=0x7f020035; + public static final int abc_ratingbar_material=0x7f020036; + public static final int abc_ratingbar_small_material=0x7f020037; + public static final int abc_scrubber_control_off_mtrl_alpha=0x7f020038; + public static final int abc_scrubber_control_to_pressed_mtrl_000=0x7f020039; + public static final int abc_scrubber_control_to_pressed_mtrl_005=0x7f02003a; + public static final int abc_scrubber_primary_mtrl_alpha=0x7f02003b; + public static final int abc_scrubber_track_mtrl_alpha=0x7f02003c; + public static final int abc_seekbar_thumb_material=0x7f02003d; + public static final int abc_seekbar_tick_mark_material=0x7f02003e; + public static final int abc_seekbar_track_material=0x7f02003f; + public static final int abc_spinner_mtrl_am_alpha=0x7f020040; + public static final int abc_spinner_textfield_background_material=0x7f020041; + public static final int abc_switch_thumb_material=0x7f020042; + public static final int abc_switch_track_mtrl_alpha=0x7f020043; + public static final int abc_tab_indicator_material=0x7f020044; + public static final int abc_tab_indicator_mtrl_alpha=0x7f020045; + public static final int abc_text_cursor_material=0x7f020046; + public static final int abc_textfield_activated_mtrl_alpha=0x7f020047; + public static final int abc_textfield_default_mtrl_alpha=0x7f020048; + public static final int abc_textfield_search_activated_mtrl_alpha=0x7f020049; + public static final int abc_textfield_search_default_mtrl_alpha=0x7f02004a; + public static final int abc_textfield_search_material=0x7f02004b; + public static final int bg_wool_dark=0x7f02004c; + public static final int bitmap_wool_dark=0x7f02004d; + public static final int border_edittext=0x7f02004e; + public static final int control_button=0x7f02004f; + public static final int control_button_normal=0x7f020050; + public static final int control_button_pressed=0x7f020051; + public static final int design_fab_background=0x7f020052; + public static final int design_snackbar_background=0x7f020053; + public static final int ic_close=0x7f020054; + public static final int ic_file=0x7f020055; + public static final int ic_folder=0x7f020056; + public static final int ic_launcher=0x7f020057; + public static final int ic_minimize=0x7f020058; + public static final int logo=0x7f020059; + public static final int mcbtn_normal=0x7f02005a; + public static final int mcbtn_pressed=0x7f02005b; + public static final int mcbutton=0x7f02005c; + public static final int menu_hamburger=0x7f02005d; + public static final int mojang_logo=0x7f02005e; + public static final int mouse_pointer=0x7f02005f; + public static final int notification_template_icon_bg=0x7f020060; + } + public static final class id { + public static final int action0=0x7f06009b; + public static final int action_bar=0x7f06005d; + public static final int action_bar_activity_content=0x7f060002; + public static final int action_bar_container=0x7f06005c; + public static final int action_bar_root=0x7f060058; + public static final int action_bar_spinner=0x7f060003; + public static final int action_bar_subtitle=0x7f06003d; + public static final int action_bar_title=0x7f06003c; + public static final int action_context_bar=0x7f06005e; + public static final int action_divider=0x7f06009f; + public static final int action_menu_divider=0x7f060004; + public static final int action_menu_presenter=0x7f060005; + public static final int action_mode_bar=0x7f06005a; + public static final int action_mode_bar_stub=0x7f060059; + public static final int action_mode_close_button=0x7f06003e; + public static final int activity_chooser_view_content=0x7f06003f; + public static final int add=0x7f06002e; + public static final int alertTitle=0x7f06004b; + public static final int always=0x7f060037; + public static final int auto=0x7f060021; + public static final int beginning=0x7f060035; + public static final int bottom=0x7f060010; + public static final int bottombar_author_logo=0x7f06006d; + public static final int bottombar_version_view=0x7f06006c; + public static final int buttonPanel=0x7f060046; + public static final int cancel_action=0x7f06009c; + public static final int center=0x7f060011; + public static final int center_horizontal=0x7f060012; + public static final int center_vertical=0x7f060013; + public static final int checkbox=0x7f060054; + public static final int chronometer=0x7f0600a2; + public static final int clip_horizontal=0x7f06001d; + public static final int clip_vertical=0x7f06001e; + public static final int collapseActionView=0x7f060038; + public static final int contentPanel=0x7f06004c; + public static final int content_frame=0x7f060090; + public static final int content_log_close_button=0x7f060097; + public static final int content_log_layout=0x7f060096; + public static final int content_log_scroll=0x7f060099; + public static final int content_log_toggle_scrolldown=0x7f060098; + public static final int control_debug=0x7f0600a8; + public static final int control_down=0x7f0600ae; + public static final int control_inventory=0x7f0600b6; + public static final int control_jump=0x7f0600b2; + public static final int control_keyboard=0x7f0600aa; + public static final int control_left=0x7f0600b0; + public static final int control_listplayers=0x7f0600ad; + public static final int control_mouse_toggle=0x7f0600b7; + public static final int control_primary=0x7f0600b3; + public static final int control_right=0x7f0600b1; + public static final int control_screenshot=0x7f0600ac; + public static final int control_secondary=0x7f0600b4; + public static final int control_shift=0x7f0600b5; + public static final int control_talk=0x7f0600a9; + public static final int control_thirdperson=0x7f0600ab; + public static final int control_up=0x7f0600af; + public static final int custom=0x7f060052; + public static final int customPanel=0x7f060051; + public static final int decor_content_parent=0x7f06005b; + public static final int default_activity_button=0x7f060042; + public static final int design_bottom_sheet=0x7f06006f; + public static final int design_menu_item_action_area=0x7f060076; + public static final int design_menu_item_action_area_stub=0x7f060075; + public static final int design_menu_item_text=0x7f060074; + public static final int design_navigation_view=0x7f060073; + public static final int disableHome=0x7f060028; + public static final int edit_query=0x7f06005f; + public static final int end=0x7f060014; + public static final int end_padder=0x7f0600a7; + public static final int enterAlways=0x7f06000b; + public static final int enterAlwaysCollapsed=0x7f06000c; + public static final int exitUntilCollapsed=0x7f06000d; + public static final int expand_activities_button=0x7f060040; + public static final int expanded_menu=0x7f060053; + public static final int fill=0x7f06001f; + public static final int fill_horizontal=0x7f060020; + public static final int fill_vertical=0x7f060015; + public static final int fixed=0x7f060024; + public static final int home=0x7f060006; + public static final int homeAsUp=0x7f060029; + public static final int icon=0x7f060044; + public static final int ifRoom=0x7f060039; + public static final int image=0x7f060041; + public static final int info=0x7f0600a6; + public static final int item_touch_helper_previous_elevation=0x7f060000; + public static final int lMTVVer=0x7f060082; + public static final int launcherAccEmail=0x7f060077; + public static final int launcherAccOffSwitch=0x7f06007a; + public static final int launcherAccPassword=0x7f060078; + public static final int launcherAccProgress=0x7f06007b; + public static final int launcherAccRememberSwitch=0x7f060079; + public static final int launcherAccUsername=0x7f06008b; + public static final int launcherMainExitbtns=0x7f060088; + public static final int launcherMainLeftLayout=0x7f060081; + public static final int launcherMainPlayButton=0x7f060084; + public static final int launcherMainRightLayout=0x7f060085; + public static final int launcherMainSelectVersion=0x7f060083; + public static final int launcherMainUsernameView=0x7f060086; + public static final int launcherMainVersionView=0x7f060087; + public static final int launchermainFragmentTabView=0x7f06007c; + public static final int launchermainTabLayout=0x7f06007d; + public static final int launchermainTabPager=0x7f06007e; + public static final int launcherupdateLogView=0x7f06008a; + public static final int launcherupdateProgressBar=0x7f060089; + public static final int left=0x7f060016; + public static final int line1=0x7f0600a0; + public static final int line3=0x7f0600a4; + public static final int listMode=0x7f060026; + public static final int list_item=0x7f060043; + public static final int lmaintabconsoleLogCrashTextView=0x7f06008d; + public static final int lmaintabconsoleLogTextView=0x7f06008c; + public static final int lmaintabnewsNewsView=0x7f06008e; + public static final int main_control_overlay=0x7f060095; + public static final int main_drawer_options=0x7f06008f; + public static final int main_game_render_view=0x7f060092; + public static final int main_log_behind_GL=0x7f060091; + public static final int main_mouse_pointer=0x7f060094; + public static final int main_navigation_view=0x7f06009a; + public static final int main_touchpad=0x7f060093; + public static final int media_actions=0x7f06009e; + public static final int middle=0x7f060036; + public static final int mini=0x7f060022; + public static final int multiply=0x7f06002f; + public static final int nav_forceclose=0x7f0600c0; + public static final int nav_more3=0x7f0600c3; + public static final int nav_viewcanvas=0x7f0600c2; + public static final int nav_viewlog=0x7f0600c1; + public static final int navigation_header_container=0x7f060072; + public static final int never=0x7f06003a; + public static final int none=0x7f06001a; + public static final int normal=0x7f060023; + public static final int parallax=0x7f06001b; + public static final int parentPanel=0x7f060048; + public static final int pin=0x7f06001c; + public static final int progressDownloadBar=0x7f06007f; + public static final int progressDownloadText=0x7f060080; + public static final int progress_circular=0x7f060007; + public static final int progress_horizontal=0x7f060008; + public static final int radio=0x7f060056; + public static final int right=0x7f060017; + public static final int screen=0x7f060030; + public static final int scroll=0x7f06000e; + public static final int scrollIndicatorDown=0x7f060050; + public static final int scrollIndicatorUp=0x7f06004d; + public static final int scrollView=0x7f06004e; + public static final int scrollable=0x7f060025; + public static final int search_badge=0x7f060061; + public static final int search_bar=0x7f060060; + public static final int search_button=0x7f060062; + public static final int search_close_btn=0x7f060067; + public static final int search_edit_frame=0x7f060063; + public static final int search_go_btn=0x7f060069; + public static final int search_mag_icon=0x7f060064; + public static final int search_plate=0x7f060065; + public static final int search_src_text=0x7f060066; + public static final int search_voice_btn=0x7f06006a; + public static final int select_dialog_listview=0x7f06006b; + public static final int shortcut=0x7f060055; + public static final int showCustom=0x7f06002a; + public static final int showHome=0x7f06002b; + public static final int showTitle=0x7f06002c; + public static final int snackbar_action=0x7f060071; + public static final int snackbar_text=0x7f060070; + public static final int snap=0x7f06000f; + public static final int spacer=0x7f060047; + public static final int split_action_bar=0x7f060009; + public static final int src_atop=0x7f060031; + public static final int src_in=0x7f060032; + public static final int src_over=0x7f060033; + public static final int start=0x7f060018; + public static final int startscreenLinearLayout1=0x7f0600b8; + public static final int startscreenProgress=0x7f0600b9; + public static final int status_bar_latest_event_content=0x7f06009d; + public static final int submenuarrow=0x7f060057; + public static final int submit_area=0x7f060068; + public static final int tabMode=0x7f060027; + public static final int text=0x7f0600a5; + public static final int text2=0x7f0600a3; + public static final int textSpacerNoButtons=0x7f06004f; + public static final int time=0x7f0600a1; + public static final int title=0x7f060045; + public static final int title_template=0x7f06004a; + public static final int top=0x7f060019; + public static final int topPanel=0x7f060049; + public static final int topbar_earth_icon=0x7f0600ba; + public static final int topbar_help_text=0x7f0600bc; + public static final int topbar_language_text=0x7f0600bb; + public static final int topbar_logo=0x7f0600bd; + public static final int topbar_navmenu_icon=0x7f0600be; + public static final int topbar_undertop_view=0x7f0600bf; + public static final int touch_outside=0x7f06006e; + public static final int up=0x7f06000a; + public static final int useLogo=0x7f06002d; + public static final int view_offset_helper=0x7f060001; + public static final int vso_clone=0x7f0600c4; + public static final int vso_edit=0x7f0600c5; + public static final int vso_remove=0x7f0600c6; + public static final int withText=0x7f06003b; + public static final int wrap_content=0x7f060034; + } + public static final class integer { + public static final int abc_config_activityDefaultDur=0x7f080002; + public static final int abc_config_activityShortDur=0x7f080003; + public static final int bottom_sheet_slide_duration=0x7f080001; + public static final int cancel_button_image_alpha=0x7f080004; + public static final int design_snackbar_text_max_lines=0x7f080000; + public static final int status_bar_notification_info_maxnum=0x7f080005; + } + public static final class layout { + public static final int abc_action_bar_title_item=0x7f030000; + public static final int abc_action_bar_up_container=0x7f030001; + public static final int abc_action_bar_view_list_nav_layout=0x7f030002; + public static final int abc_action_menu_item_layout=0x7f030003; + public static final int abc_action_menu_layout=0x7f030004; + public static final int abc_action_mode_bar=0x7f030005; + public static final int abc_action_mode_close_item_material=0x7f030006; + public static final int abc_activity_chooser_view=0x7f030007; + public static final int abc_activity_chooser_view_list_item=0x7f030008; + public static final int abc_alert_dialog_button_bar_material=0x7f030009; + public static final int abc_alert_dialog_material=0x7f03000a; + public static final int abc_dialog_title_material=0x7f03000b; + public static final int abc_expanded_menu_layout=0x7f03000c; + public static final int abc_list_menu_item_checkbox=0x7f03000d; + public static final int abc_list_menu_item_icon=0x7f03000e; + public static final int abc_list_menu_item_layout=0x7f03000f; + public static final int abc_list_menu_item_radio=0x7f030010; + public static final int abc_popup_menu_header_item_layout=0x7f030011; + public static final int abc_popup_menu_item_layout=0x7f030012; + public static final int abc_screen_content_include=0x7f030013; + public static final int abc_screen_simple=0x7f030014; + public static final int abc_screen_simple_overlay_action_mode=0x7f030015; + public static final int abc_screen_toolbar=0x7f030016; + public static final int abc_search_dropdown_item_icons_2line=0x7f030017; + public static final int abc_search_view=0x7f030018; + public static final int abc_select_dialog_material=0x7f030019; + public static final int bottom_bar=0x7f03001a; + public static final int design_bottom_sheet_dialog=0x7f03001b; + public static final int design_layout_snackbar=0x7f03001c; + public static final int design_layout_snackbar_include=0x7f03001d; + public static final int design_layout_tab_icon=0x7f03001e; + public static final int design_layout_tab_text=0x7f03001f; + public static final int design_menu_item_action_area=0x7f030020; + public static final int design_navigation_item=0x7f030021; + public static final int design_navigation_item_header=0x7f030022; + public static final int design_navigation_item_separator=0x7f030023; + public static final int design_navigation_item_subheader=0x7f030024; + public static final int design_navigation_menu=0x7f030025; + public static final int design_navigation_menu_item=0x7f030026; + public static final int launcher_login=0x7f030027; + public static final int launcher_main=0x7f030028; + public static final int launcher_update=0x7f030029; + public static final int launcher_user=0x7f03002a; + public static final int lmaintab_consolelog=0x7f03002b; + public static final int lmaintab_crashlog=0x7f03002c; + public static final int lmaintab_news=0x7f03002d; + public static final int main=0x7f03002e; + public static final int notification_media_action=0x7f03002f; + public static final int notification_media_cancel_action=0x7f030030; + public static final int notification_template_big_media=0x7f030031; + public static final int notification_template_big_media_narrow=0x7f030032; + public static final int notification_template_lines=0x7f030033; + public static final int notification_template_media=0x7f030034; + public static final int notification_template_part_chronometer=0x7f030035; + public static final int notification_template_part_time=0x7f030036; + public static final int overlay=0x7f030037; + public static final int select_dialog_item_material=0x7f030038; + public static final int select_dialog_multichoice_material=0x7f030039; + public static final int select_dialog_singlechoice_material=0x7f03003a; + public static final int start_screen=0x7f03003b; + public static final int support_simple_spinner_dropdown_item=0x7f03003c; + public static final int top_bar=0x7f03003d; + } + public static final class menu { + public static final int menu_runopt=0x7f0d0000; + public static final int menu_versionopt=0x7f0d0001; + } + public static final class string { + public static final int abc_action_bar_home_description=0x7f0a0003; + public static final int abc_action_bar_home_description_format=0x7f0a0004; + public static final int abc_action_bar_home_subtitle_description_format=0x7f0a0005; + public static final int abc_action_bar_up_description=0x7f0a0006; + public static final int abc_action_menu_overflow_description=0x7f0a0007; + public static final int abc_action_mode_done=0x7f0a0008; + public static final int abc_activity_chooser_view_see_all=0x7f0a0009; + public static final int abc_activitychooserview_choose_application=0x7f0a000a; + public static final int abc_capital_off=0x7f0a000b; + public static final int abc_capital_on=0x7f0a000c; + public static final int abc_font_family_body_1_material=0x7f0a0017; + public static final int abc_font_family_body_2_material=0x7f0a0018; + public static final int abc_font_family_button_material=0x7f0a0019; + public static final int abc_font_family_caption_material=0x7f0a001a; + public static final int abc_font_family_display_1_material=0x7f0a001b; + public static final int abc_font_family_display_2_material=0x7f0a001c; + public static final int abc_font_family_display_3_material=0x7f0a001d; + public static final int abc_font_family_display_4_material=0x7f0a001e; + public static final int abc_font_family_headline_material=0x7f0a001f; + public static final int abc_font_family_menu_material=0x7f0a0020; + public static final int abc_font_family_subhead_material=0x7f0a0021; + public static final int abc_font_family_title_material=0x7f0a0022; + public static final int abc_search_hint=0x7f0a000d; + public static final int abc_searchview_description_clear=0x7f0a000e; + public static final int abc_searchview_description_query=0x7f0a000f; + public static final int abc_searchview_description_search=0x7f0a0010; + public static final int abc_searchview_description_submit=0x7f0a0011; + public static final int abc_searchview_description_voice=0x7f0a0012; + public static final int abc_shareactionprovider_share_with=0x7f0a0013; + public static final int abc_shareactionprovider_share_with_application=0x7f0a0014; + public static final int abc_toolbar_collapse_description=0x7f0a0015; + /** Action bar part + */ + public static final int actionbar_help=0x7f0a0025; + /** App name part + */ + public static final int app_name=0x7f0a0023; + public static final int app_short_name=0x7f0a0024; + public static final int appbar_scrolling_view_behavior=0x7f0a0000; + public static final int bottom_sheet_behavior=0x7f0a0001; + public static final int character_counter_pattern=0x7f0a0002; + public static final int control_chat=0x7f0a0061; + public static final int control_debug=0x7f0a0062; + public static final int control_down=0x7f0a006c; + /** MainActivity: Menu advanced controls + */ + public static final int control_forceclose=0x7f0a0072; + public static final int control_inventory=0x7f0a0068; + public static final int control_jump=0x7f0a006d; + /** MainActivity: Control buttons + */ + public static final int control_keyboard=0x7f0a0060; + public static final int control_left=0x7f0a006a; + public static final int control_listplayers=0x7f0a006f; + public static final int control_more2=0x7f0a0074; + public static final int control_more3=0x7f0a0075; + public static final int control_more4=0x7f0a0076; + public static final int control_mouseoff=0x7f0a0070; + public static final int control_mouseon=0x7f0a0071; + public static final int control_primary=0x7f0a0065; + public static final int control_right=0x7f0a006b; + public static final int control_screenshot=0x7f0a0063; + public static final int control_secondary=0x7f0a0066; + public static final int control_shift=0x7f0a0067; + public static final int control_thirdperson=0x7f0a006e; + public static final int control_up=0x7f0a0069; + public static final int control_viewout=0x7f0a0073; + public static final int controls=0x7f0a0064; + /** Error messages + */ + public static final int error_checklog=0x7f0a003e; + public static final int error_convert_client=0x7f0a0043; + public static final int error_convert_lib=0x7f0a0042; + public static final int error_load_version=0x7f0a0041; + public static final int error_no_version=0x7f0a0040; + public static final int error_show_less=0x7f0a0045; + public static final int error_show_more=0x7f0a0044; + public static final int error_title=0x7f0a003f; + /** Hint + */ + public static final int hint_select_account=0x7f0a0036; + /** Languages list part + */ + public static final int language_name=0x7f0a0026; + /** Logging output + */ + public static final int log_title=0x7f0a0027; + public static final int login_error_empty_username=0x7f0a0032; + public static final int login_error_exist_username=0x7f0a0034; + public static final int login_error_short_username=0x7f0a0033; + public static final int login_offline_alert_skip=0x7f0a0031; + public static final int login_offline_switch=0x7f0a002f; + public static final int login_offline_warning_1=0x7f0a0030; + public static final int login_online_create_account=0x7f0a002e; + public static final int login_online_login_label=0x7f0a002d; + public static final int login_online_password_hint=0x7f0a002a; + public static final int login_online_password_question=0x7f0a002b; + public static final int login_online_remember=0x7f0a002c; + /** Login strings + */ + public static final int login_online_username_hint=0x7f0a0028; + public static final int login_online_username_question=0x7f0a0029; + public static final int login_select_account=0x7f0a0035; + public static final int mcl_launch_cleancache=0x7f0a004c; + public static final int mcl_launch_convert_client=0x7f0a0051; + public static final int mcl_launch_convert_lib=0x7f0a0050; + public static final int mcl_launch_download_assets=0x7f0a0053; + public static final int mcl_launch_download_client=0x7f0a004f; + public static final int mcl_launch_download_lib=0x7f0a004e; + public static final int mcl_launch_downloading=0x7f0a004d; + public static final int mcl_launch_patch_client=0x7f0a0052; + public static final int mcl_option_about=0x7f0a0057; + public static final int mcl_option_checkupdate=0x7f0a0056; + public static final int mcl_option_modmgr=0x7f0a0055; + public static final int mcl_options=0x7f0a0054; + public static final int mcl_tab_console=0x7f0a0049; + public static final int mcl_tab_crash=0x7f0a004a; + /** + Exit + Exit + + MCLauncherActivity: Tabs + */ + public static final int mcl_tab_news=0x7f0a0048; + public static final int mcl_version_clone=0x7f0a0058; + public static final int mcl_version_edit=0x7f0a0059; + /** MCLauncherActivity: Strings + */ + public static final int mcl_version_msg=0x7f0a004b; + public static final int mcl_version_remove=0x7f0a005a; + public static final int mcn_exit_call=0x7f0a005c; + public static final int mcn_exit_confirm=0x7f0a005f; + public static final int mcn_exit_crash=0x7f0a005d; + public static final int mcn_exit_errcrash=0x7f0a005e; + /** + +%1$s BETA (Minecraft Java launcher for Android), version " + PathTools.usingVerName + "\n" + + " - by Khanh Duy Tran (based from \"Boardwalk\" app)\n" + + //"© 2019 Khanh Duy Tran\n" + + "Using libraries:\n" + + " • LWJGL " + org.lwjgl.Sys.getVersion() + "\n" + + //" • Boardwalk memory manager (not used now).\n" + + " • gl4es: OpenGL for OpenGL ES devices by lunixbochs and ptitSeb.\n" + + " • dx: tool to convert.\n" + + " • Java AWT Implementation includes:\n" + + " - Boardwalk's makeshift.\n" + + " - Apache Harmony AWT Framework.\n" + + " - OpenJDK 7 codes implementation.\n" + + " - Developer code implement (copy text, open browser,...)\n" + + "\n" + + "* Notes:\n" + + " - This app is currently BETA, it will not be stable.\n" + + //"* This app will unstable on Android 7.0 or higher devices.\n" + + " - This app only use LWJGL2 and don't have a JRE8 desugar, so doesn't support 1.13 or higher versions.\n" + + " - This app is not affiliated with Minecraft, Mojang or Microsoft.\n") + + + MainActivity: strings + */ + public static final int mcn_exit_title=0x7f0a005b; + public static final int status_bar_notification_info_overflow=0x7f0a0016; + public static final int toast_login_error=0x7f0a0047; + /** Toast messages + */ + public static final int toast_permission_denied=0x7f0a0046; + /** Update part (unused now) + */ + public static final int update_console=0x7f0a0077; + public static final int warning_action_exit=0x7f0a003c; + public static final int warning_action_install=0x7f0a003a; + public static final int warning_action_tryanyway=0x7f0a003b; + public static final int warning_msg=0x7f0a0038; + public static final int warning_noshowagain=0x7f0a0039; + public static final int warning_remove_account=0x7f0a003d; + /** Warning + */ + public static final int warning_title=0x7f0a0037; + } + public static final class style { + public static final int AlertDialog_AppCompat=0x7f0700a4; + public static final int AlertDialog_AppCompat_Light=0x7f0700a5; + public static final int AlertTheme=0x7f070167; + public static final int Animation_AppCompat_Dialog=0x7f0700a6; + public static final int Animation_AppCompat_DropDownUp=0x7f0700a7; + public static final int Animation_Design_BottomSheetDialog=0x7f070002; + public static final int AppTheme=0x7f070165; + public static final int Base_AlertDialog_AppCompat=0x7f0700a8; + public static final int Base_AlertDialog_AppCompat_Light=0x7f0700a9; + public static final int Base_Animation_AppCompat_Dialog=0x7f0700aa; + public static final int Base_Animation_AppCompat_DropDownUp=0x7f0700ab; + public static final int Base_DialogWindowTitle_AppCompat=0x7f0700ac; + public static final int Base_DialogWindowTitleBackground_AppCompat=0x7f0700ad; + public static final int Base_TextAppearance_AppCompat=0x7f070052; + public static final int Base_TextAppearance_AppCompat_Body1=0x7f070053; + public static final int Base_TextAppearance_AppCompat_Body2=0x7f070054; + public static final int Base_TextAppearance_AppCompat_Button=0x7f07003c; + public static final int Base_TextAppearance_AppCompat_Caption=0x7f070055; + public static final int Base_TextAppearance_AppCompat_Display1=0x7f070056; + public static final int Base_TextAppearance_AppCompat_Display2=0x7f070057; + public static final int Base_TextAppearance_AppCompat_Display3=0x7f070058; + public static final int Base_TextAppearance_AppCompat_Display4=0x7f070059; + public static final int Base_TextAppearance_AppCompat_Headline=0x7f07005a; + public static final int Base_TextAppearance_AppCompat_Inverse=0x7f070025; + public static final int Base_TextAppearance_AppCompat_Large=0x7f07005b; + public static final int Base_TextAppearance_AppCompat_Large_Inverse=0x7f070026; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f07005c; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f07005d; + public static final int Base_TextAppearance_AppCompat_Medium=0x7f07005e; + public static final int Base_TextAppearance_AppCompat_Medium_Inverse=0x7f070027; + public static final int Base_TextAppearance_AppCompat_Menu=0x7f07005f; + public static final int Base_TextAppearance_AppCompat_SearchResult=0x7f0700ae; + public static final int Base_TextAppearance_AppCompat_SearchResult_Subtitle=0x7f070060; + public static final int Base_TextAppearance_AppCompat_SearchResult_Title=0x7f070061; + public static final int Base_TextAppearance_AppCompat_Small=0x7f070062; + public static final int Base_TextAppearance_AppCompat_Small_Inverse=0x7f070028; + public static final int Base_TextAppearance_AppCompat_Subhead=0x7f070063; + public static final int Base_TextAppearance_AppCompat_Subhead_Inverse=0x7f070029; + public static final int Base_TextAppearance_AppCompat_Title=0x7f070064; + public static final int Base_TextAppearance_AppCompat_Title_Inverse=0x7f07002a; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f07009d; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f070065; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f070066; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f070067; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f070068; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f070069; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f07006a; + public static final int Base_TextAppearance_AppCompat_Widget_Button=0x7f07006b; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Inverse=0x7f07009e; + public static final int Base_TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700af; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f07006c; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f07006d; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f07006e; + public static final int Base_TextAppearance_AppCompat_Widget_Switch=0x7f07006f; + public static final int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070070; + public static final int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f0700b0; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070071; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070072; + public static final int Base_Theme_AppCompat=0x7f070073; + public static final int Base_Theme_AppCompat_CompactMenu=0x7f0700b1; + public static final int Base_Theme_AppCompat_Dialog=0x7f07002b; + public static final int Base_Theme_AppCompat_Dialog_Alert=0x7f0700b2; + public static final int Base_Theme_AppCompat_Dialog_FixedSize=0x7f0700b3; + public static final int Base_Theme_AppCompat_Dialog_MinWidth=0x7f0700b4; + public static final int Base_Theme_AppCompat_DialogWhenLarge=0x7f07001b; + public static final int Base_Theme_AppCompat_Light=0x7f070074; + public static final int Base_Theme_AppCompat_Light_DarkActionBar=0x7f0700b5; + public static final int Base_Theme_AppCompat_Light_Dialog=0x7f07002c; + public static final int Base_Theme_AppCompat_Light_Dialog_Alert=0x7f0700b6; + public static final int Base_Theme_AppCompat_Light_Dialog_FixedSize=0x7f0700b7; + public static final int Base_Theme_AppCompat_Light_Dialog_MinWidth=0x7f0700b8; + public static final int Base_Theme_AppCompat_Light_DialogWhenLarge=0x7f07001c; + public static final int Base_ThemeOverlay_AppCompat=0x7f0700b9; + public static final int Base_ThemeOverlay_AppCompat_ActionBar=0x7f0700ba; + public static final int Base_ThemeOverlay_AppCompat_Dark=0x7f0700bb; + public static final int Base_ThemeOverlay_AppCompat_Dark_ActionBar=0x7f0700bc; + public static final int Base_ThemeOverlay_AppCompat_Dialog=0x7f07002d; + public static final int Base_ThemeOverlay_AppCompat_Dialog_Alert=0x7f0700bd; + public static final int Base_ThemeOverlay_AppCompat_Light=0x7f0700be; + public static final int Base_V11_Theme_AppCompat_Dialog=0x7f07002e; + public static final int Base_V11_Theme_AppCompat_Light_Dialog=0x7f07002f; + public static final int Base_V11_ThemeOverlay_AppCompat_Dialog=0x7f070030; + public static final int Base_V12_Widget_AppCompat_AutoCompleteTextView=0x7f070038; + public static final int Base_V12_Widget_AppCompat_EditText=0x7f070039; + public static final int Base_V21_Theme_AppCompat=0x7f070075; + public static final int Base_V21_Theme_AppCompat_Dialog=0x7f070076; + public static final int Base_V21_Theme_AppCompat_Light=0x7f070077; + public static final int Base_V21_Theme_AppCompat_Light_Dialog=0x7f070078; + public static final int Base_V21_ThemeOverlay_AppCompat_Dialog=0x7f070079; + public static final int Base_V22_Theme_AppCompat=0x7f07009b; + public static final int Base_V22_Theme_AppCompat_Light=0x7f07009c; + public static final int Base_V23_Theme_AppCompat=0x7f07009f; + public static final int Base_V23_Theme_AppCompat_Light=0x7f0700a0; + public static final int Base_V7_Theme_AppCompat=0x7f0700bf; + public static final int Base_V7_Theme_AppCompat_Dialog=0x7f0700c0; + public static final int Base_V7_Theme_AppCompat_Light=0x7f0700c1; + public static final int Base_V7_Theme_AppCompat_Light_Dialog=0x7f0700c2; + public static final int Base_V7_ThemeOverlay_AppCompat_Dialog=0x7f0700c3; + public static final int Base_V7_Widget_AppCompat_AutoCompleteTextView=0x7f0700c4; + public static final int Base_V7_Widget_AppCompat_EditText=0x7f0700c5; + public static final int Base_Widget_AppCompat_ActionBar=0x7f0700c6; + public static final int Base_Widget_AppCompat_ActionBar_Solid=0x7f0700c7; + public static final int Base_Widget_AppCompat_ActionBar_TabBar=0x7f0700c8; + public static final int Base_Widget_AppCompat_ActionBar_TabText=0x7f07007a; + public static final int Base_Widget_AppCompat_ActionBar_TabView=0x7f07007b; + public static final int Base_Widget_AppCompat_ActionButton=0x7f07007c; + public static final int Base_Widget_AppCompat_ActionButton_CloseMode=0x7f07007d; + public static final int Base_Widget_AppCompat_ActionButton_Overflow=0x7f07007e; + public static final int Base_Widget_AppCompat_ActionMode=0x7f0700c9; + public static final int Base_Widget_AppCompat_ActivityChooserView=0x7f0700ca; + public static final int Base_Widget_AppCompat_AutoCompleteTextView=0x7f07003a; + public static final int Base_Widget_AppCompat_Button=0x7f07007f; + public static final int Base_Widget_AppCompat_Button_Borderless=0x7f070080; + public static final int Base_Widget_AppCompat_Button_Borderless_Colored=0x7f070081; + public static final int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f0700cb; + public static final int Base_Widget_AppCompat_Button_Colored=0x7f0700a1; + public static final int Base_Widget_AppCompat_Button_Small=0x7f070082; + public static final int Base_Widget_AppCompat_ButtonBar=0x7f070083; + public static final int Base_Widget_AppCompat_ButtonBar_AlertDialog=0x7f0700cc; + public static final int Base_Widget_AppCompat_CompoundButton_CheckBox=0x7f070084; + public static final int Base_Widget_AppCompat_CompoundButton_RadioButton=0x7f070085; + public static final int Base_Widget_AppCompat_CompoundButton_Switch=0x7f0700cd; + public static final int Base_Widget_AppCompat_DrawerArrowToggle=0x7f07001a; + public static final int Base_Widget_AppCompat_DrawerArrowToggle_Common=0x7f0700ce; + public static final int Base_Widget_AppCompat_DropDownItem_Spinner=0x7f070086; + public static final int Base_Widget_AppCompat_EditText=0x7f07003b; + public static final int Base_Widget_AppCompat_ImageButton=0x7f070087; + public static final int Base_Widget_AppCompat_Light_ActionBar=0x7f0700cf; + public static final int Base_Widget_AppCompat_Light_ActionBar_Solid=0x7f0700d0; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabBar=0x7f0700d1; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText=0x7f070088; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f070089; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabView=0x7f07008a; + public static final int Base_Widget_AppCompat_Light_PopupMenu=0x7f07008b; + public static final int Base_Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07008c; + public static final int Base_Widget_AppCompat_ListMenuView=0x7f0700d2; + public static final int Base_Widget_AppCompat_ListPopupWindow=0x7f07008d; + public static final int Base_Widget_AppCompat_ListView=0x7f07008e; + public static final int Base_Widget_AppCompat_ListView_DropDown=0x7f07008f; + public static final int Base_Widget_AppCompat_ListView_Menu=0x7f070090; + public static final int Base_Widget_AppCompat_PopupMenu=0x7f070091; + public static final int Base_Widget_AppCompat_PopupMenu_Overflow=0x7f070092; + public static final int Base_Widget_AppCompat_PopupWindow=0x7f0700d3; + public static final int Base_Widget_AppCompat_ProgressBar=0x7f070031; + public static final int Base_Widget_AppCompat_ProgressBar_Horizontal=0x7f070032; + public static final int Base_Widget_AppCompat_RatingBar=0x7f070093; + public static final int Base_Widget_AppCompat_RatingBar_Indicator=0x7f0700a2; + public static final int Base_Widget_AppCompat_RatingBar_Small=0x7f0700a3; + public static final int Base_Widget_AppCompat_SearchView=0x7f0700d4; + public static final int Base_Widget_AppCompat_SearchView_ActionBar=0x7f0700d5; + public static final int Base_Widget_AppCompat_SeekBar=0x7f070094; + public static final int Base_Widget_AppCompat_SeekBar_Discrete=0x7f0700d6; + public static final int Base_Widget_AppCompat_Spinner=0x7f070095; + public static final int Base_Widget_AppCompat_Spinner_Underlined=0x7f07001d; + public static final int Base_Widget_AppCompat_TextView_SpinnerItem=0x7f070096; + public static final int Base_Widget_AppCompat_Toolbar=0x7f0700d7; + public static final int Base_Widget_AppCompat_Toolbar_Button_Navigation=0x7f070097; + public static final int Base_Widget_Design_AppBarLayout=0x7f070003; + public static final int Base_Widget_Design_TabLayout=0x7f070004; + public static final int MenuDialog=0x7f070168; + public static final int MenuDialogAnimation=0x7f070169; + public static final int Platform_AppCompat=0x7f070033; + public static final int Platform_AppCompat_Light=0x7f070034; + public static final int Platform_ThemeOverlay_AppCompat=0x7f070098; + public static final int Platform_ThemeOverlay_AppCompat_Dark=0x7f070099; + public static final int Platform_ThemeOverlay_AppCompat_Light=0x7f07009a; + public static final int Platform_V11_AppCompat=0x7f070035; + public static final int Platform_V11_AppCompat_Light=0x7f070036; + public static final int Platform_V14_AppCompat=0x7f07003d; + public static final int Platform_V14_AppCompat_Light=0x7f07003e; + public static final int Platform_Widget_AppCompat_Spinner=0x7f070037; + public static final int RtlOverlay_DialogWindowTitle_AppCompat=0x7f070044; + public static final int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem=0x7f070045; + public static final int RtlOverlay_Widget_AppCompat_DialogTitle_Icon=0x7f070046; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem=0x7f070047; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup=0x7f070048; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text=0x7f070049; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown=0x7f07004a; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1=0x7f07004b; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2=0x7f07004c; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Query=0x7f07004d; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Text=0x7f07004e; + public static final int RtlOverlay_Widget_AppCompat_SearchView_MagIcon=0x7f07004f; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton=0x7f070050; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow=0x7f070051; + public static final int RunTheme=0x7f070166; + public static final int TextAppearance_AppCompat=0x7f0700d8; + public static final int TextAppearance_AppCompat_Body1=0x7f0700d9; + public static final int TextAppearance_AppCompat_Body2=0x7f0700da; + public static final int TextAppearance_AppCompat_Button=0x7f0700db; + public static final int TextAppearance_AppCompat_Caption=0x7f0700dc; + public static final int TextAppearance_AppCompat_Display1=0x7f0700dd; + public static final int TextAppearance_AppCompat_Display2=0x7f0700de; + public static final int TextAppearance_AppCompat_Display3=0x7f0700df; + public static final int TextAppearance_AppCompat_Display4=0x7f0700e0; + public static final int TextAppearance_AppCompat_Headline=0x7f0700e1; + public static final int TextAppearance_AppCompat_Inverse=0x7f0700e2; + public static final int TextAppearance_AppCompat_Large=0x7f0700e3; + public static final int TextAppearance_AppCompat_Large_Inverse=0x7f0700e4; + public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle=0x7f0700e5; + public static final int TextAppearance_AppCompat_Light_SearchResult_Title=0x7f0700e6; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f0700e7; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f0700e8; + public static final int TextAppearance_AppCompat_Medium=0x7f0700e9; + public static final int TextAppearance_AppCompat_Medium_Inverse=0x7f0700ea; + public static final int TextAppearance_AppCompat_Menu=0x7f0700eb; + public static final int TextAppearance_AppCompat_SearchResult_Subtitle=0x7f0700ec; + public static final int TextAppearance_AppCompat_SearchResult_Title=0x7f0700ed; + public static final int TextAppearance_AppCompat_Small=0x7f0700ee; + public static final int TextAppearance_AppCompat_Small_Inverse=0x7f0700ef; + public static final int TextAppearance_AppCompat_Subhead=0x7f0700f0; + public static final int TextAppearance_AppCompat_Subhead_Inverse=0x7f0700f1; + public static final int TextAppearance_AppCompat_Title=0x7f0700f2; + public static final int TextAppearance_AppCompat_Title_Inverse=0x7f0700f3; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f0700f4; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f0700f5; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f0700f6; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f0700f7; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f0700f8; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f0700f9; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse=0x7f0700fa; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f0700fb; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse=0x7f0700fc; + public static final int TextAppearance_AppCompat_Widget_Button=0x7f0700fd; + public static final int TextAppearance_AppCompat_Widget_Button_Inverse=0x7f0700fe; + public static final int TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700ff; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f070100; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f070101; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f070102; + public static final int TextAppearance_AppCompat_Widget_Switch=0x7f070103; + public static final int TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070104; + public static final int TextAppearance_Design_CollapsingToolbar_Expanded=0x7f070005; + public static final int TextAppearance_Design_Counter=0x7f070006; + public static final int TextAppearance_Design_Counter_Overflow=0x7f070007; + public static final int TextAppearance_Design_Error=0x7f070008; + public static final int TextAppearance_Design_Hint=0x7f070009; + public static final int TextAppearance_Design_Snackbar_Message=0x7f07000a; + public static final int TextAppearance_Design_Tab=0x7f07000b; + public static final int TextAppearance_StatusBar_EventContent=0x7f07003f; + public static final int TextAppearance_StatusBar_EventContent_Info=0x7f070040; + public static final int TextAppearance_StatusBar_EventContent_Line2=0x7f070041; + public static final int TextAppearance_StatusBar_EventContent_Time=0x7f070042; + public static final int TextAppearance_StatusBar_EventContent_Title=0x7f070043; + public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f070105; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070106; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070107; + public static final int Theme_AppCompat=0x7f070108; + public static final int Theme_AppCompat_CompactMenu=0x7f070109; + public static final int Theme_AppCompat_DayNight=0x7f07001e; + public static final int Theme_AppCompat_DayNight_DarkActionBar=0x7f07001f; + public static final int Theme_AppCompat_DayNight_Dialog=0x7f070020; + public static final int Theme_AppCompat_DayNight_Dialog_Alert=0x7f070021; + public static final int Theme_AppCompat_DayNight_Dialog_MinWidth=0x7f070022; + public static final int Theme_AppCompat_DayNight_DialogWhenLarge=0x7f070023; + public static final int Theme_AppCompat_DayNight_NoActionBar=0x7f070024; + public static final int Theme_AppCompat_Dialog=0x7f07010a; + public static final int Theme_AppCompat_Dialog_Alert=0x7f07010b; + public static final int Theme_AppCompat_Dialog_MinWidth=0x7f07010c; + public static final int Theme_AppCompat_DialogWhenLarge=0x7f07010d; + public static final int Theme_AppCompat_Light=0x7f07010e; + public static final int Theme_AppCompat_Light_DarkActionBar=0x7f07010f; + public static final int Theme_AppCompat_Light_Dialog=0x7f070110; + public static final int Theme_AppCompat_Light_Dialog_Alert=0x7f070111; + public static final int Theme_AppCompat_Light_Dialog_MinWidth=0x7f070112; + public static final int Theme_AppCompat_Light_DialogWhenLarge=0x7f070113; + public static final int Theme_AppCompat_Light_NoActionBar=0x7f070114; + public static final int Theme_AppCompat_NoActionBar=0x7f070115; + public static final int Theme_Design=0x7f07000c; + public static final int Theme_Design_BottomSheetDialog=0x7f07000d; + public static final int Theme_Design_Light=0x7f07000e; + public static final int Theme_Design_Light_BottomSheetDialog=0x7f07000f; + public static final int Theme_Design_Light_NoActionBar=0x7f070010; + public static final int Theme_Design_NoActionBar=0x7f070011; + public static final int ThemeOverlay_AppCompat=0x7f070116; + public static final int ThemeOverlay_AppCompat_ActionBar=0x7f070117; + public static final int ThemeOverlay_AppCompat_Dark=0x7f070118; + public static final int ThemeOverlay_AppCompat_Dark_ActionBar=0x7f070119; + public static final int ThemeOverlay_AppCompat_Dialog=0x7f07011a; + public static final int ThemeOverlay_AppCompat_Dialog_Alert=0x7f07011b; + public static final int ThemeOverlay_AppCompat_Light=0x7f07011c; + public static final int Widget_AppCompat_ActionBar=0x7f07011d; + public static final int Widget_AppCompat_ActionBar_Solid=0x7f07011e; + public static final int Widget_AppCompat_ActionBar_TabBar=0x7f07011f; + public static final int Widget_AppCompat_ActionBar_TabText=0x7f070120; + public static final int Widget_AppCompat_ActionBar_TabView=0x7f070121; + public static final int Widget_AppCompat_ActionButton=0x7f070122; + public static final int Widget_AppCompat_ActionButton_CloseMode=0x7f070123; + public static final int Widget_AppCompat_ActionButton_Overflow=0x7f070124; + public static final int Widget_AppCompat_ActionMode=0x7f070125; + public static final int Widget_AppCompat_ActivityChooserView=0x7f070126; + public static final int Widget_AppCompat_AutoCompleteTextView=0x7f070127; + public static final int Widget_AppCompat_Button=0x7f070128; + public static final int Widget_AppCompat_Button_Borderless=0x7f070129; + public static final int Widget_AppCompat_Button_Borderless_Colored=0x7f07012a; + public static final int Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f07012b; + public static final int Widget_AppCompat_Button_Colored=0x7f07012c; + public static final int Widget_AppCompat_Button_Small=0x7f07012d; + public static final int Widget_AppCompat_ButtonBar=0x7f07012e; + public static final int Widget_AppCompat_ButtonBar_AlertDialog=0x7f07012f; + public static final int Widget_AppCompat_CompoundButton_CheckBox=0x7f070130; + public static final int Widget_AppCompat_CompoundButton_RadioButton=0x7f070131; + public static final int Widget_AppCompat_CompoundButton_Switch=0x7f070132; + public static final int Widget_AppCompat_DrawerArrowToggle=0x7f070133; + public static final int Widget_AppCompat_DropDownItem_Spinner=0x7f070134; + public static final int Widget_AppCompat_EditText=0x7f070135; + public static final int Widget_AppCompat_ImageButton=0x7f070136; + public static final int Widget_AppCompat_Light_ActionBar=0x7f070137; + public static final int Widget_AppCompat_Light_ActionBar_Solid=0x7f070138; + public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse=0x7f070139; + public static final int Widget_AppCompat_Light_ActionBar_TabBar=0x7f07013a; + public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse=0x7f07013b; + public static final int Widget_AppCompat_Light_ActionBar_TabText=0x7f07013c; + public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f07013d; + public static final int Widget_AppCompat_Light_ActionBar_TabView=0x7f07013e; + public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse=0x7f07013f; + public static final int Widget_AppCompat_Light_ActionButton=0x7f070140; + public static final int Widget_AppCompat_Light_ActionButton_CloseMode=0x7f070141; + public static final int Widget_AppCompat_Light_ActionButton_Overflow=0x7f070142; + public static final int Widget_AppCompat_Light_ActionMode_Inverse=0x7f070143; + public static final int Widget_AppCompat_Light_ActivityChooserView=0x7f070144; + public static final int Widget_AppCompat_Light_AutoCompleteTextView=0x7f070145; + public static final int Widget_AppCompat_Light_DropDownItem_Spinner=0x7f070146; + public static final int Widget_AppCompat_Light_ListPopupWindow=0x7f070147; + public static final int Widget_AppCompat_Light_ListView_DropDown=0x7f070148; + public static final int Widget_AppCompat_Light_PopupMenu=0x7f070149; + public static final int Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07014a; + public static final int Widget_AppCompat_Light_SearchView=0x7f07014b; + public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar=0x7f07014c; + public static final int Widget_AppCompat_ListMenuView=0x7f07014d; + public static final int Widget_AppCompat_ListPopupWindow=0x7f07014e; + public static final int Widget_AppCompat_ListView=0x7f07014f; + public static final int Widget_AppCompat_ListView_DropDown=0x7f070150; + public static final int Widget_AppCompat_ListView_Menu=0x7f070151; + public static final int Widget_AppCompat_PopupMenu=0x7f070152; + public static final int Widget_AppCompat_PopupMenu_Overflow=0x7f070153; + public static final int Widget_AppCompat_PopupWindow=0x7f070154; + public static final int Widget_AppCompat_ProgressBar=0x7f070155; + public static final int Widget_AppCompat_ProgressBar_Horizontal=0x7f070156; + public static final int Widget_AppCompat_RatingBar=0x7f070157; + public static final int Widget_AppCompat_RatingBar_Indicator=0x7f070158; + public static final int Widget_AppCompat_RatingBar_Small=0x7f070159; + public static final int Widget_AppCompat_SearchView=0x7f07015a; + public static final int Widget_AppCompat_SearchView_ActionBar=0x7f07015b; + public static final int Widget_AppCompat_SeekBar=0x7f07015c; + public static final int Widget_AppCompat_SeekBar_Discrete=0x7f07015d; + public static final int Widget_AppCompat_Spinner=0x7f07015e; + public static final int Widget_AppCompat_Spinner_DropDown=0x7f07015f; + public static final int Widget_AppCompat_Spinner_DropDown_ActionBar=0x7f070160; + public static final int Widget_AppCompat_Spinner_Underlined=0x7f070161; + public static final int Widget_AppCompat_TextView_SpinnerItem=0x7f070162; + public static final int Widget_AppCompat_Toolbar=0x7f070163; + public static final int Widget_AppCompat_Toolbar_Button_Navigation=0x7f070164; + public static final int Widget_Design_AppBarLayout=0x7f070001; + public static final int Widget_Design_BottomSheet_Modal=0x7f070012; + public static final int Widget_Design_CollapsingToolbar=0x7f070013; + public static final int Widget_Design_CoordinatorLayout=0x7f070014; + public static final int Widget_Design_FloatingActionButton=0x7f070015; + public static final int Widget_Design_NavigationView=0x7f070016; + public static final int Widget_Design_ScrimInsetsFrameLayout=0x7f070017; + public static final int Widget_Design_Snackbar=0x7f070018; + public static final int Widget_Design_TabLayout=0x7f070000; + public static final int Widget_Design_TextInputLayout=0x7f070019; + } + public static final class styleable { + /** Attributes that can be used with a ActionBar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #ActionBar_background net.kdt.pojavlaunch:background}
{@link #ActionBar_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionBar_backgroundStacked net.kdt.pojavlaunch:backgroundStacked}
{@link #ActionBar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #ActionBar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #ActionBar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #ActionBar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #ActionBar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #ActionBar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #ActionBar_customNavigationLayout net.kdt.pojavlaunch:customNavigationLayout}
{@link #ActionBar_displayOptions net.kdt.pojavlaunch:displayOptions}
{@link #ActionBar_divider net.kdt.pojavlaunch:divider}
{@link #ActionBar_elevation net.kdt.pojavlaunch:elevation}
{@link #ActionBar_height net.kdt.pojavlaunch:height}
{@link #ActionBar_hideOnContentScroll net.kdt.pojavlaunch:hideOnContentScroll}
{@link #ActionBar_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #ActionBar_homeLayout net.kdt.pojavlaunch:homeLayout}
{@link #ActionBar_icon net.kdt.pojavlaunch:icon}
{@link #ActionBar_indeterminateProgressStyle net.kdt.pojavlaunch:indeterminateProgressStyle}
{@link #ActionBar_itemPadding net.kdt.pojavlaunch:itemPadding}
{@link #ActionBar_logo net.kdt.pojavlaunch:logo}
{@link #ActionBar_navigationMode net.kdt.pojavlaunch:navigationMode}
{@link #ActionBar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #ActionBar_progressBarPadding net.kdt.pojavlaunch:progressBarPadding}
{@link #ActionBar_progressBarStyle net.kdt.pojavlaunch:progressBarStyle}
{@link #ActionBar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #ActionBar_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionBar_title net.kdt.pojavlaunch:title}
{@link #ActionBar_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionBar_background + @see #ActionBar_backgroundSplit + @see #ActionBar_backgroundStacked + @see #ActionBar_contentInsetEnd + @see #ActionBar_contentInsetEndWithActions + @see #ActionBar_contentInsetLeft + @see #ActionBar_contentInsetRight + @see #ActionBar_contentInsetStart + @see #ActionBar_contentInsetStartWithNavigation + @see #ActionBar_customNavigationLayout + @see #ActionBar_displayOptions + @see #ActionBar_divider + @see #ActionBar_elevation + @see #ActionBar_height + @see #ActionBar_hideOnContentScroll + @see #ActionBar_homeAsUpIndicator + @see #ActionBar_homeLayout + @see #ActionBar_icon + @see #ActionBar_indeterminateProgressStyle + @see #ActionBar_itemPadding + @see #ActionBar_logo + @see #ActionBar_navigationMode + @see #ActionBar_popupTheme + @see #ActionBar_progressBarPadding + @see #ActionBar_progressBarStyle + @see #ActionBar_subtitle + @see #ActionBar_subtitleTextStyle + @see #ActionBar_title + @see #ActionBar_titleTextStyle + */ + public static final int[] ActionBar = { + 0x7f01004f, 0x7f010051, 0x7f010052, 0x7f010053, + 0x7f010054, 0x7f010055, 0x7f010056, 0x7f010057, + 0x7f010058, 0x7f010059, 0x7f01005a, 0x7f01005b, + 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f, + 0x7f010060, 0x7f010061, 0x7f010062, 0x7f010063, + 0x7f010064, 0x7f010065, 0x7f010066, 0x7f010067, + 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b, + 0x7f0100a8 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionBar_background = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionBar_backgroundSplit = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundStacked} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundStacked + */ + public static final int ActionBar_backgroundStacked = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int ActionBar_contentInsetEnd = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int ActionBar_contentInsetEndWithActions = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int ActionBar_contentInsetLeft = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int ActionBar_contentInsetRight = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int ActionBar_contentInsetStart = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int ActionBar_contentInsetStartWithNavigation = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#customNavigationLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:customNavigationLayout + */ + public static final int ActionBar_customNavigationLayout = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#displayOptions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ @attr name net.kdt.pojavlaunch:displayOptions + */ + public static final int ActionBar_displayOptions = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int ActionBar_divider = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int ActionBar_elevation = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionBar_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hideOnContentScroll} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hideOnContentScroll + */ + public static final int ActionBar_hideOnContentScroll = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int ActionBar_homeAsUpIndicator = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeLayout + */ + public static final int ActionBar_homeLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#icon} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:icon + */ + public static final int ActionBar_icon = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#indeterminateProgressStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:indeterminateProgressStyle + */ + public static final int ActionBar_indeterminateProgressStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemPadding + */ + public static final int ActionBar_itemPadding = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int ActionBar_logo = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationMode} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ @attr name net.kdt.pojavlaunch:navigationMode + */ + public static final int ActionBar_navigationMode = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int ActionBar_popupTheme = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:progressBarPadding + */ + public static final int ActionBar_progressBarPadding = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:progressBarStyle + */ + public static final int ActionBar_progressBarStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int ActionBar_subtitle = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionBar_subtitleTextStyle = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int ActionBar_title = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionBar_titleTextStyle = 5; + /** Attributes that can be used with a ActionBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionBarLayout_android_layout_gravity android:layout_gravity}
+ @see #ActionBarLayout_android_layout_gravity + */ + public static final int[] ActionBarLayout = { + 0x010100b3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #ActionBarLayout} array. + @attr name android:layout_gravity + */ + public static final int ActionBarLayout_android_layout_gravity = 0; + /** Attributes that can be used with a ActionMenuItemView. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionMenuItemView_android_minWidth android:minWidth}
+ @see #ActionMenuItemView_android_minWidth + */ + public static final int[] ActionMenuItemView = { + 0x0101013f + }; + /** +

This symbol is the offset where the {@link android.R.attr#minWidth} + attribute's value can be found in the {@link #ActionMenuItemView} array. + @attr name android:minWidth + */ + public static final int ActionMenuItemView_android_minWidth = 0; + /** Attributes that can be used with a ActionMenuView. + */ + public static final int[] ActionMenuView = { + + }; + /** Attributes that can be used with a ActionMode. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #ActionMode_background net.kdt.pojavlaunch:background}
{@link #ActionMode_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionMode_closeItemLayout net.kdt.pojavlaunch:closeItemLayout}
{@link #ActionMode_height net.kdt.pojavlaunch:height}
{@link #ActionMode_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionMode_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionMode_background + @see #ActionMode_backgroundSplit + @see #ActionMode_closeItemLayout + @see #ActionMode_height + @see #ActionMode_subtitleTextStyle + @see #ActionMode_titleTextStyle + */ + public static final int[] ActionMode = { + 0x7f01004f, 0x7f010055, 0x7f010056, 0x7f01005a, + 0x7f01005c, 0x7f01006c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionMode_background = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionMode} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionMode_backgroundSplit = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeItemLayout} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeItemLayout + */ + public static final int ActionMode_closeItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionMode_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionMode_subtitleTextStyle = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionMode_titleTextStyle = 1; + /** Attributes that can be used with a ActivityChooserView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ActivityChooserView_expandActivityOverflowButtonDrawable net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable}
{@link #ActivityChooserView_initialActivityCount net.kdt.pojavlaunch:initialActivityCount}
+ @see #ActivityChooserView_expandActivityOverflowButtonDrawable + @see #ActivityChooserView_initialActivityCount + */ + public static final int[] ActivityChooserView = { + 0x7f01006d, 0x7f01006e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandActivityOverflowButtonDrawable} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable + */ + public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#initialActivityCount} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:initialActivityCount + */ + public static final int ActivityChooserView_initialActivityCount = 0; + /** Attributes that can be used with a AlertDialog. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #AlertDialog_android_layout android:layout}
{@link #AlertDialog_buttonPanelSideLayout net.kdt.pojavlaunch:buttonPanelSideLayout}
{@link #AlertDialog_listItemLayout net.kdt.pojavlaunch:listItemLayout}
{@link #AlertDialog_listLayout net.kdt.pojavlaunch:listLayout}
{@link #AlertDialog_multiChoiceItemLayout net.kdt.pojavlaunch:multiChoiceItemLayout}
{@link #AlertDialog_singleChoiceItemLayout net.kdt.pojavlaunch:singleChoiceItemLayout}
+ @see #AlertDialog_android_layout + @see #AlertDialog_buttonPanelSideLayout + @see #AlertDialog_listItemLayout + @see #AlertDialog_listLayout + @see #AlertDialog_multiChoiceItemLayout + @see #AlertDialog_singleChoiceItemLayout + */ + public static final int[] AlertDialog = { + 0x010100f2, 0x7f01006f, 0x7f010070, 0x7f010071, + 0x7f010072, 0x7f010073 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #AlertDialog} array. + @attr name android:layout + */ + public static final int AlertDialog_android_layout = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonPanelSideLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonPanelSideLayout + */ + public static final int AlertDialog_buttonPanelSideLayout = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listItemLayout + */ + public static final int AlertDialog_listItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listLayout + */ + public static final int AlertDialog_listLayout = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#multiChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:multiChoiceItemLayout + */ + public static final int AlertDialog_multiChoiceItemLayout = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#singleChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:singleChoiceItemLayout + */ + public static final int AlertDialog_singleChoiceItemLayout = 4; + /** Attributes that can be used with a AppBarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #AppBarLayout_android_background android:background}
{@link #AppBarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #AppBarLayout_expanded net.kdt.pojavlaunch:expanded}
+ @see #AppBarLayout_android_background + @see #AppBarLayout_elevation + @see #AppBarLayout_expanded + */ + public static final int[] AppBarLayout = { + 0x010100d4, 0x7f010004, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #AppBarLayout} array. + @attr name android:background + */ + public static final int AppBarLayout_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int AppBarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expanded} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expanded + */ + public static final int AppBarLayout_expanded = 1; + /** Attributes that can be used with a AppBarLayoutStates. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayoutStates_state_collapsed net.kdt.pojavlaunch:state_collapsed}
{@link #AppBarLayoutStates_state_collapsible net.kdt.pojavlaunch:state_collapsible}
+ @see #AppBarLayoutStates_state_collapsed + @see #AppBarLayoutStates_state_collapsible + */ + public static final int[] AppBarLayoutStates = { + 0x7f010005, 0x7f010006 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsed} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsed + */ + public static final int AppBarLayoutStates_state_collapsed = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsible} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsible + */ + public static final int AppBarLayoutStates_state_collapsible = 1; + /** Attributes that can be used with a AppBarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayout_Layout_layout_scrollFlags net.kdt.pojavlaunch:layout_scrollFlags}
{@link #AppBarLayout_Layout_layout_scrollInterpolator net.kdt.pojavlaunch:layout_scrollInterpolator}
+ @see #AppBarLayout_Layout_layout_scrollFlags + @see #AppBarLayout_Layout_layout_scrollInterpolator + */ + public static final int[] AppBarLayout_Layout = { + 0x7f010007, 0x7f010008 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollFlags} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ @attr name net.kdt.pojavlaunch:layout_scrollFlags + */ + public static final int AppBarLayout_Layout_layout_scrollFlags = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollInterpolator} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_scrollInterpolator + */ + public static final int AppBarLayout_Layout_layout_scrollInterpolator = 1; + /** Attributes that can be used with a AppCompatImageView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatImageView_android_src android:src}
{@link #AppCompatImageView_srcCompat net.kdt.pojavlaunch:srcCompat}
+ @see #AppCompatImageView_android_src + @see #AppCompatImageView_srcCompat + */ + public static final int[] AppCompatImageView = { + 0x01010119, 0x7f010074 + }; + /** +

This symbol is the offset where the {@link android.R.attr#src} + attribute's value can be found in the {@link #AppCompatImageView} array. + @attr name android:src + */ + public static final int AppCompatImageView_android_src = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#srcCompat} + attribute's value can be found in the {@link #AppCompatImageView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:srcCompat + */ + public static final int AppCompatImageView_srcCompat = 1; + /** Attributes that can be used with a AppCompatSeekBar. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #AppCompatSeekBar_android_thumb android:thumb}
{@link #AppCompatSeekBar_tickMark net.kdt.pojavlaunch:tickMark}
{@link #AppCompatSeekBar_tickMarkTint net.kdt.pojavlaunch:tickMarkTint}
{@link #AppCompatSeekBar_tickMarkTintMode net.kdt.pojavlaunch:tickMarkTintMode}
+ @see #AppCompatSeekBar_android_thumb + @see #AppCompatSeekBar_tickMark + @see #AppCompatSeekBar_tickMarkTint + @see #AppCompatSeekBar_tickMarkTintMode + */ + public static final int[] AppCompatSeekBar = { + 0x01010142, 0x7f010075, 0x7f010076, 0x7f010077 + }; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + @attr name android:thumb + */ + public static final int AppCompatSeekBar_android_thumb = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMark} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tickMark + */ + public static final int AppCompatSeekBar_tickMark = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTint} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tickMarkTint + */ + public static final int AppCompatSeekBar_tickMarkTint = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTintMode} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:tickMarkTintMode + */ + public static final int AppCompatSeekBar_tickMarkTintMode = 3; + /** Attributes that can be used with a AppCompatTextView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatTextView_android_textAppearance android:textAppearance}
{@link #AppCompatTextView_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #AppCompatTextView_android_textAppearance + @see #AppCompatTextView_textAllCaps + */ + public static final int[] AppCompatTextView = { + 0x01010034, 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textAppearance} + attribute's value can be found in the {@link #AppCompatTextView} array. + @attr name android:textAppearance + */ + public static final int AppCompatTextView_android_textAppearance = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #AppCompatTextView} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int AppCompatTextView_textAllCaps = 1; + /** Attributes that can be used with a AppCompatTheme. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #AppCompatTheme_actionBarDivider net.kdt.pojavlaunch:actionBarDivider}
{@link #AppCompatTheme_actionBarItemBackground net.kdt.pojavlaunch:actionBarItemBackground}
{@link #AppCompatTheme_actionBarPopupTheme net.kdt.pojavlaunch:actionBarPopupTheme}
{@link #AppCompatTheme_actionBarSize net.kdt.pojavlaunch:actionBarSize}
{@link #AppCompatTheme_actionBarSplitStyle net.kdt.pojavlaunch:actionBarSplitStyle}
{@link #AppCompatTheme_actionBarStyle net.kdt.pojavlaunch:actionBarStyle}
{@link #AppCompatTheme_actionBarTabBarStyle net.kdt.pojavlaunch:actionBarTabBarStyle}
{@link #AppCompatTheme_actionBarTabStyle net.kdt.pojavlaunch:actionBarTabStyle}
{@link #AppCompatTheme_actionBarTabTextStyle net.kdt.pojavlaunch:actionBarTabTextStyle}
{@link #AppCompatTheme_actionBarTheme net.kdt.pojavlaunch:actionBarTheme}
{@link #AppCompatTheme_actionBarWidgetTheme net.kdt.pojavlaunch:actionBarWidgetTheme}
{@link #AppCompatTheme_actionButtonStyle net.kdt.pojavlaunch:actionButtonStyle}
{@link #AppCompatTheme_actionDropDownStyle net.kdt.pojavlaunch:actionDropDownStyle}
{@link #AppCompatTheme_actionMenuTextAppearance net.kdt.pojavlaunch:actionMenuTextAppearance}
{@link #AppCompatTheme_actionMenuTextColor net.kdt.pojavlaunch:actionMenuTextColor}
{@link #AppCompatTheme_actionModeBackground net.kdt.pojavlaunch:actionModeBackground}
{@link #AppCompatTheme_actionModeCloseButtonStyle net.kdt.pojavlaunch:actionModeCloseButtonStyle}
{@link #AppCompatTheme_actionModeCloseDrawable net.kdt.pojavlaunch:actionModeCloseDrawable}
{@link #AppCompatTheme_actionModeCopyDrawable net.kdt.pojavlaunch:actionModeCopyDrawable}
{@link #AppCompatTheme_actionModeCutDrawable net.kdt.pojavlaunch:actionModeCutDrawable}
{@link #AppCompatTheme_actionModeFindDrawable net.kdt.pojavlaunch:actionModeFindDrawable}
{@link #AppCompatTheme_actionModePasteDrawable net.kdt.pojavlaunch:actionModePasteDrawable}
{@link #AppCompatTheme_actionModePopupWindowStyle net.kdt.pojavlaunch:actionModePopupWindowStyle}
{@link #AppCompatTheme_actionModeSelectAllDrawable net.kdt.pojavlaunch:actionModeSelectAllDrawable}
{@link #AppCompatTheme_actionModeShareDrawable net.kdt.pojavlaunch:actionModeShareDrawable}
{@link #AppCompatTheme_actionModeSplitBackground net.kdt.pojavlaunch:actionModeSplitBackground}
{@link #AppCompatTheme_actionModeStyle net.kdt.pojavlaunch:actionModeStyle}
{@link #AppCompatTheme_actionModeWebSearchDrawable net.kdt.pojavlaunch:actionModeWebSearchDrawable}
{@link #AppCompatTheme_actionOverflowButtonStyle net.kdt.pojavlaunch:actionOverflowButtonStyle}
{@link #AppCompatTheme_actionOverflowMenuStyle net.kdt.pojavlaunch:actionOverflowMenuStyle}
{@link #AppCompatTheme_activityChooserViewStyle net.kdt.pojavlaunch:activityChooserViewStyle}
{@link #AppCompatTheme_alertDialogButtonGroupStyle net.kdt.pojavlaunch:alertDialogButtonGroupStyle}
{@link #AppCompatTheme_alertDialogCenterButtons net.kdt.pojavlaunch:alertDialogCenterButtons}
{@link #AppCompatTheme_alertDialogStyle net.kdt.pojavlaunch:alertDialogStyle}
{@link #AppCompatTheme_alertDialogTheme net.kdt.pojavlaunch:alertDialogTheme}
{@link #AppCompatTheme_android_windowAnimationStyle android:windowAnimationStyle}
{@link #AppCompatTheme_android_windowIsFloating android:windowIsFloating}
{@link #AppCompatTheme_autoCompleteTextViewStyle net.kdt.pojavlaunch:autoCompleteTextViewStyle}
{@link #AppCompatTheme_borderlessButtonStyle net.kdt.pojavlaunch:borderlessButtonStyle}
{@link #AppCompatTheme_buttonBarButtonStyle net.kdt.pojavlaunch:buttonBarButtonStyle}
{@link #AppCompatTheme_buttonBarNegativeButtonStyle net.kdt.pojavlaunch:buttonBarNegativeButtonStyle}
{@link #AppCompatTheme_buttonBarNeutralButtonStyle net.kdt.pojavlaunch:buttonBarNeutralButtonStyle}
{@link #AppCompatTheme_buttonBarPositiveButtonStyle net.kdt.pojavlaunch:buttonBarPositiveButtonStyle}
{@link #AppCompatTheme_buttonBarStyle net.kdt.pojavlaunch:buttonBarStyle}
{@link #AppCompatTheme_buttonStyle net.kdt.pojavlaunch:buttonStyle}
{@link #AppCompatTheme_buttonStyleSmall net.kdt.pojavlaunch:buttonStyleSmall}
{@link #AppCompatTheme_checkboxStyle net.kdt.pojavlaunch:checkboxStyle}
{@link #AppCompatTheme_checkedTextViewStyle net.kdt.pojavlaunch:checkedTextViewStyle}
{@link #AppCompatTheme_colorAccent net.kdt.pojavlaunch:colorAccent}
{@link #AppCompatTheme_colorBackgroundFloating net.kdt.pojavlaunch:colorBackgroundFloating}
{@link #AppCompatTheme_colorButtonNormal net.kdt.pojavlaunch:colorButtonNormal}
{@link #AppCompatTheme_colorControlActivated net.kdt.pojavlaunch:colorControlActivated}
{@link #AppCompatTheme_colorControlHighlight net.kdt.pojavlaunch:colorControlHighlight}
{@link #AppCompatTheme_colorControlNormal net.kdt.pojavlaunch:colorControlNormal}
{@link #AppCompatTheme_colorPrimary net.kdt.pojavlaunch:colorPrimary}
{@link #AppCompatTheme_colorPrimaryDark net.kdt.pojavlaunch:colorPrimaryDark}
{@link #AppCompatTheme_colorSwitchThumbNormal net.kdt.pojavlaunch:colorSwitchThumbNormal}
{@link #AppCompatTheme_controlBackground net.kdt.pojavlaunch:controlBackground}
{@link #AppCompatTheme_dialogPreferredPadding net.kdt.pojavlaunch:dialogPreferredPadding}
{@link #AppCompatTheme_dialogTheme net.kdt.pojavlaunch:dialogTheme}
{@link #AppCompatTheme_dividerHorizontal net.kdt.pojavlaunch:dividerHorizontal}
{@link #AppCompatTheme_dividerVertical net.kdt.pojavlaunch:dividerVertical}
{@link #AppCompatTheme_dropDownListViewStyle net.kdt.pojavlaunch:dropDownListViewStyle}
{@link #AppCompatTheme_dropdownListPreferredItemHeight net.kdt.pojavlaunch:dropdownListPreferredItemHeight}
{@link #AppCompatTheme_editTextBackground net.kdt.pojavlaunch:editTextBackground}
{@link #AppCompatTheme_editTextColor net.kdt.pojavlaunch:editTextColor}
{@link #AppCompatTheme_editTextStyle net.kdt.pojavlaunch:editTextStyle}
{@link #AppCompatTheme_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #AppCompatTheme_imageButtonStyle net.kdt.pojavlaunch:imageButtonStyle}
{@link #AppCompatTheme_listChoiceBackgroundIndicator net.kdt.pojavlaunch:listChoiceBackgroundIndicator}
{@link #AppCompatTheme_listDividerAlertDialog net.kdt.pojavlaunch:listDividerAlertDialog}
{@link #AppCompatTheme_listMenuViewStyle net.kdt.pojavlaunch:listMenuViewStyle}
{@link #AppCompatTheme_listPopupWindowStyle net.kdt.pojavlaunch:listPopupWindowStyle}
{@link #AppCompatTheme_listPreferredItemHeight net.kdt.pojavlaunch:listPreferredItemHeight}
{@link #AppCompatTheme_listPreferredItemHeightLarge net.kdt.pojavlaunch:listPreferredItemHeightLarge}
{@link #AppCompatTheme_listPreferredItemHeightSmall net.kdt.pojavlaunch:listPreferredItemHeightSmall}
{@link #AppCompatTheme_listPreferredItemPaddingLeft net.kdt.pojavlaunch:listPreferredItemPaddingLeft}
{@link #AppCompatTheme_listPreferredItemPaddingRight net.kdt.pojavlaunch:listPreferredItemPaddingRight}
{@link #AppCompatTheme_panelBackground net.kdt.pojavlaunch:panelBackground}
{@link #AppCompatTheme_panelMenuListTheme net.kdt.pojavlaunch:panelMenuListTheme}
{@link #AppCompatTheme_panelMenuListWidth net.kdt.pojavlaunch:panelMenuListWidth}
{@link #AppCompatTheme_popupMenuStyle net.kdt.pojavlaunch:popupMenuStyle}
{@link #AppCompatTheme_popupWindowStyle net.kdt.pojavlaunch:popupWindowStyle}
{@link #AppCompatTheme_radioButtonStyle net.kdt.pojavlaunch:radioButtonStyle}
{@link #AppCompatTheme_ratingBarStyle net.kdt.pojavlaunch:ratingBarStyle}
{@link #AppCompatTheme_ratingBarStyleIndicator net.kdt.pojavlaunch:ratingBarStyleIndicator}
{@link #AppCompatTheme_ratingBarStyleSmall net.kdt.pojavlaunch:ratingBarStyleSmall}
{@link #AppCompatTheme_searchViewStyle net.kdt.pojavlaunch:searchViewStyle}
{@link #AppCompatTheme_seekBarStyle net.kdt.pojavlaunch:seekBarStyle}
{@link #AppCompatTheme_selectableItemBackground net.kdt.pojavlaunch:selectableItemBackground}
{@link #AppCompatTheme_selectableItemBackgroundBorderless net.kdt.pojavlaunch:selectableItemBackgroundBorderless}
{@link #AppCompatTheme_spinnerDropDownItemStyle net.kdt.pojavlaunch:spinnerDropDownItemStyle}
{@link #AppCompatTheme_spinnerStyle net.kdt.pojavlaunch:spinnerStyle}
{@link #AppCompatTheme_switchStyle net.kdt.pojavlaunch:switchStyle}
{@link #AppCompatTheme_textAppearanceLargePopupMenu net.kdt.pojavlaunch:textAppearanceLargePopupMenu}
{@link #AppCompatTheme_textAppearanceListItem net.kdt.pojavlaunch:textAppearanceListItem}
{@link #AppCompatTheme_textAppearanceListItemSmall net.kdt.pojavlaunch:textAppearanceListItemSmall}
{@link #AppCompatTheme_textAppearancePopupMenuHeader net.kdt.pojavlaunch:textAppearancePopupMenuHeader}
{@link #AppCompatTheme_textAppearanceSearchResultSubtitle net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle}
{@link #AppCompatTheme_textAppearanceSearchResultTitle net.kdt.pojavlaunch:textAppearanceSearchResultTitle}
{@link #AppCompatTheme_textAppearanceSmallPopupMenu net.kdt.pojavlaunch:textAppearanceSmallPopupMenu}
{@link #AppCompatTheme_textColorAlertDialogListItem net.kdt.pojavlaunch:textColorAlertDialogListItem}
{@link #AppCompatTheme_textColorSearchUrl net.kdt.pojavlaunch:textColorSearchUrl}
{@link #AppCompatTheme_toolbarNavigationButtonStyle net.kdt.pojavlaunch:toolbarNavigationButtonStyle}
{@link #AppCompatTheme_toolbarStyle net.kdt.pojavlaunch:toolbarStyle}
{@link #AppCompatTheme_windowActionBar net.kdt.pojavlaunch:windowActionBar}
{@link #AppCompatTheme_windowActionBarOverlay net.kdt.pojavlaunch:windowActionBarOverlay}
{@link #AppCompatTheme_windowActionModeOverlay net.kdt.pojavlaunch:windowActionModeOverlay}
{@link #AppCompatTheme_windowFixedHeightMajor net.kdt.pojavlaunch:windowFixedHeightMajor}
{@link #AppCompatTheme_windowFixedHeightMinor net.kdt.pojavlaunch:windowFixedHeightMinor}
{@link #AppCompatTheme_windowFixedWidthMajor net.kdt.pojavlaunch:windowFixedWidthMajor}
{@link #AppCompatTheme_windowFixedWidthMinor net.kdt.pojavlaunch:windowFixedWidthMinor}
{@link #AppCompatTheme_windowMinWidthMajor net.kdt.pojavlaunch:windowMinWidthMajor}
{@link #AppCompatTheme_windowMinWidthMinor net.kdt.pojavlaunch:windowMinWidthMinor}
{@link #AppCompatTheme_windowNoTitle net.kdt.pojavlaunch:windowNoTitle}
+ @see #AppCompatTheme_actionBarDivider + @see #AppCompatTheme_actionBarItemBackground + @see #AppCompatTheme_actionBarPopupTheme + @see #AppCompatTheme_actionBarSize + @see #AppCompatTheme_actionBarSplitStyle + @see #AppCompatTheme_actionBarStyle + @see #AppCompatTheme_actionBarTabBarStyle + @see #AppCompatTheme_actionBarTabStyle + @see #AppCompatTheme_actionBarTabTextStyle + @see #AppCompatTheme_actionBarTheme + @see #AppCompatTheme_actionBarWidgetTheme + @see #AppCompatTheme_actionButtonStyle + @see #AppCompatTheme_actionDropDownStyle + @see #AppCompatTheme_actionMenuTextAppearance + @see #AppCompatTheme_actionMenuTextColor + @see #AppCompatTheme_actionModeBackground + @see #AppCompatTheme_actionModeCloseButtonStyle + @see #AppCompatTheme_actionModeCloseDrawable + @see #AppCompatTheme_actionModeCopyDrawable + @see #AppCompatTheme_actionModeCutDrawable + @see #AppCompatTheme_actionModeFindDrawable + @see #AppCompatTheme_actionModePasteDrawable + @see #AppCompatTheme_actionModePopupWindowStyle + @see #AppCompatTheme_actionModeSelectAllDrawable + @see #AppCompatTheme_actionModeShareDrawable + @see #AppCompatTheme_actionModeSplitBackground + @see #AppCompatTheme_actionModeStyle + @see #AppCompatTheme_actionModeWebSearchDrawable + @see #AppCompatTheme_actionOverflowButtonStyle + @see #AppCompatTheme_actionOverflowMenuStyle + @see #AppCompatTheme_activityChooserViewStyle + @see #AppCompatTheme_alertDialogButtonGroupStyle + @see #AppCompatTheme_alertDialogCenterButtons + @see #AppCompatTheme_alertDialogStyle + @see #AppCompatTheme_alertDialogTheme + @see #AppCompatTheme_android_windowAnimationStyle + @see #AppCompatTheme_android_windowIsFloating + @see #AppCompatTheme_autoCompleteTextViewStyle + @see #AppCompatTheme_borderlessButtonStyle + @see #AppCompatTheme_buttonBarButtonStyle + @see #AppCompatTheme_buttonBarNegativeButtonStyle + @see #AppCompatTheme_buttonBarNeutralButtonStyle + @see #AppCompatTheme_buttonBarPositiveButtonStyle + @see #AppCompatTheme_buttonBarStyle + @see #AppCompatTheme_buttonStyle + @see #AppCompatTheme_buttonStyleSmall + @see #AppCompatTheme_checkboxStyle + @see #AppCompatTheme_checkedTextViewStyle + @see #AppCompatTheme_colorAccent + @see #AppCompatTheme_colorBackgroundFloating + @see #AppCompatTheme_colorButtonNormal + @see #AppCompatTheme_colorControlActivated + @see #AppCompatTheme_colorControlHighlight + @see #AppCompatTheme_colorControlNormal + @see #AppCompatTheme_colorPrimary + @see #AppCompatTheme_colorPrimaryDark + @see #AppCompatTheme_colorSwitchThumbNormal + @see #AppCompatTheme_controlBackground + @see #AppCompatTheme_dialogPreferredPadding + @see #AppCompatTheme_dialogTheme + @see #AppCompatTheme_dividerHorizontal + @see #AppCompatTheme_dividerVertical + @see #AppCompatTheme_dropDownListViewStyle + @see #AppCompatTheme_dropdownListPreferredItemHeight + @see #AppCompatTheme_editTextBackground + @see #AppCompatTheme_editTextColor + @see #AppCompatTheme_editTextStyle + @see #AppCompatTheme_homeAsUpIndicator + @see #AppCompatTheme_imageButtonStyle + @see #AppCompatTheme_listChoiceBackgroundIndicator + @see #AppCompatTheme_listDividerAlertDialog + @see #AppCompatTheme_listMenuViewStyle + @see #AppCompatTheme_listPopupWindowStyle + @see #AppCompatTheme_listPreferredItemHeight + @see #AppCompatTheme_listPreferredItemHeightLarge + @see #AppCompatTheme_listPreferredItemHeightSmall + @see #AppCompatTheme_listPreferredItemPaddingLeft + @see #AppCompatTheme_listPreferredItemPaddingRight + @see #AppCompatTheme_panelBackground + @see #AppCompatTheme_panelMenuListTheme + @see #AppCompatTheme_panelMenuListWidth + @see #AppCompatTheme_popupMenuStyle + @see #AppCompatTheme_popupWindowStyle + @see #AppCompatTheme_radioButtonStyle + @see #AppCompatTheme_ratingBarStyle + @see #AppCompatTheme_ratingBarStyleIndicator + @see #AppCompatTheme_ratingBarStyleSmall + @see #AppCompatTheme_searchViewStyle + @see #AppCompatTheme_seekBarStyle + @see #AppCompatTheme_selectableItemBackground + @see #AppCompatTheme_selectableItemBackgroundBorderless + @see #AppCompatTheme_spinnerDropDownItemStyle + @see #AppCompatTheme_spinnerStyle + @see #AppCompatTheme_switchStyle + @see #AppCompatTheme_textAppearanceLargePopupMenu + @see #AppCompatTheme_textAppearanceListItem + @see #AppCompatTheme_textAppearanceListItemSmall + @see #AppCompatTheme_textAppearancePopupMenuHeader + @see #AppCompatTheme_textAppearanceSearchResultSubtitle + @see #AppCompatTheme_textAppearanceSearchResultTitle + @see #AppCompatTheme_textAppearanceSmallPopupMenu + @see #AppCompatTheme_textColorAlertDialogListItem + @see #AppCompatTheme_textColorSearchUrl + @see #AppCompatTheme_toolbarNavigationButtonStyle + @see #AppCompatTheme_toolbarStyle + @see #AppCompatTheme_windowActionBar + @see #AppCompatTheme_windowActionBarOverlay + @see #AppCompatTheme_windowActionModeOverlay + @see #AppCompatTheme_windowFixedHeightMajor + @see #AppCompatTheme_windowFixedHeightMinor + @see #AppCompatTheme_windowFixedWidthMajor + @see #AppCompatTheme_windowFixedWidthMinor + @see #AppCompatTheme_windowMinWidthMajor + @see #AppCompatTheme_windowMinWidthMinor + @see #AppCompatTheme_windowNoTitle + */ + public static final int[] AppCompatTheme = { + 0x01010057, 0x010100ae, 0x7f010079, 0x7f01007a, + 0x7f01007b, 0x7f01007c, 0x7f01007d, 0x7f01007e, + 0x7f01007f, 0x7f010080, 0x7f010081, 0x7f010082, + 0x7f010083, 0x7f010084, 0x7f010085, 0x7f010086, + 0x7f010087, 0x7f010088, 0x7f010089, 0x7f01008a, + 0x7f01008b, 0x7f01008c, 0x7f01008d, 0x7f01008e, + 0x7f01008f, 0x7f010090, 0x7f010091, 0x7f010092, + 0x7f010093, 0x7f010094, 0x7f010095, 0x7f010096, + 0x7f010097, 0x7f010098, 0x7f010099, 0x7f01009a, + 0x7f01009b, 0x7f01009c, 0x7f01009d, 0x7f01009e, + 0x7f01009f, 0x7f0100a0, 0x7f0100a1, 0x7f0100a2, + 0x7f0100a3, 0x7f0100a4, 0x7f0100a5, 0x7f0100a6, + 0x7f0100a7, 0x7f0100a8, 0x7f0100a9, 0x7f0100aa, + 0x7f0100ab, 0x7f0100ac, 0x7f0100ad, 0x7f0100ae, + 0x7f0100af, 0x7f0100b0, 0x7f0100b1, 0x7f0100b2, + 0x7f0100b3, 0x7f0100b4, 0x7f0100b5, 0x7f0100b6, + 0x7f0100b7, 0x7f0100b8, 0x7f0100b9, 0x7f0100ba, + 0x7f0100bb, 0x7f0100bc, 0x7f0100bd, 0x7f0100be, + 0x7f0100bf, 0x7f0100c0, 0x7f0100c1, 0x7f0100c2, + 0x7f0100c3, 0x7f0100c4, 0x7f0100c5, 0x7f0100c6, + 0x7f0100c7, 0x7f0100c8, 0x7f0100c9, 0x7f0100ca, + 0x7f0100cb, 0x7f0100cc, 0x7f0100cd, 0x7f0100ce, + 0x7f0100cf, 0x7f0100d0, 0x7f0100d1, 0x7f0100d2, + 0x7f0100d3, 0x7f0100d4, 0x7f0100d5, 0x7f0100d6, + 0x7f0100d7, 0x7f0100d8, 0x7f0100d9, 0x7f0100da, + 0x7f0100db, 0x7f0100dc, 0x7f0100dd, 0x7f0100de, + 0x7f0100df, 0x7f0100e0, 0x7f0100e1, 0x7f0100e2, + 0x7f0100e3, 0x7f0100e4, 0x7f0100e5, 0x7f0100e6, + 0x7f0100e7, 0x7f0100e8, 0x7f0100e9 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarDivider} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarDivider + */ + public static final int AppCompatTheme_actionBarDivider = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarItemBackground + */ + public static final int AppCompatTheme_actionBarItemBackground = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarPopupTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarPopupTheme + */ + public static final int AppCompatTheme_actionBarPopupTheme = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSize} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ @attr name net.kdt.pojavlaunch:actionBarSize + */ + public static final int AppCompatTheme_actionBarSize = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSplitStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarSplitStyle + */ + public static final int AppCompatTheme_actionBarSplitStyle = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarStyle + */ + public static final int AppCompatTheme_actionBarStyle = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabBarStyle + */ + public static final int AppCompatTheme_actionBarTabBarStyle = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabStyle + */ + public static final int AppCompatTheme_actionBarTabStyle = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabTextStyle + */ + public static final int AppCompatTheme_actionBarTabTextStyle = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTheme + */ + public static final int AppCompatTheme_actionBarTheme = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarWidgetTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarWidgetTheme + */ + public static final int AppCompatTheme_actionBarWidgetTheme = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionButtonStyle + */ + public static final int AppCompatTheme_actionButtonStyle = 50; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionDropDownStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionDropDownStyle + */ + public static final int AppCompatTheme_actionDropDownStyle = 46; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextAppearance} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionMenuTextAppearance + */ + public static final int AppCompatTheme_actionMenuTextAppearance = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:actionMenuTextColor + */ + public static final int AppCompatTheme_actionMenuTextColor = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeBackground + */ + public static final int AppCompatTheme_actionModeBackground = 29; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseButtonStyle + */ + public static final int AppCompatTheme_actionModeCloseButtonStyle = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseDrawable + */ + public static final int AppCompatTheme_actionModeCloseDrawable = 31; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCopyDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCopyDrawable + */ + public static final int AppCompatTheme_actionModeCopyDrawable = 33; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCutDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCutDrawable + */ + public static final int AppCompatTheme_actionModeCutDrawable = 32; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeFindDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeFindDrawable + */ + public static final int AppCompatTheme_actionModeFindDrawable = 37; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePasteDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePasteDrawable + */ + public static final int AppCompatTheme_actionModePasteDrawable = 34; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePopupWindowStyle + */ + public static final int AppCompatTheme_actionModePopupWindowStyle = 39; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSelectAllDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSelectAllDrawable + */ + public static final int AppCompatTheme_actionModeSelectAllDrawable = 35; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeShareDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeShareDrawable + */ + public static final int AppCompatTheme_actionModeShareDrawable = 36; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSplitBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSplitBackground + */ + public static final int AppCompatTheme_actionModeSplitBackground = 30; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeStyle + */ + public static final int AppCompatTheme_actionModeStyle = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeWebSearchDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeWebSearchDrawable + */ + public static final int AppCompatTheme_actionModeWebSearchDrawable = 38; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowButtonStyle + */ + public static final int AppCompatTheme_actionOverflowButtonStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowMenuStyle + */ + public static final int AppCompatTheme_actionOverflowMenuStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#activityChooserViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:activityChooserViewStyle + */ + public static final int AppCompatTheme_activityChooserViewStyle = 58; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogButtonGroupStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogButtonGroupStyle + */ + public static final int AppCompatTheme_alertDialogButtonGroupStyle = 94; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogCenterButtons} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alertDialogCenterButtons + */ + public static final int AppCompatTheme_alertDialogCenterButtons = 95; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogStyle + */ + public static final int AppCompatTheme_alertDialogStyle = 93; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogTheme + */ + public static final int AppCompatTheme_alertDialogTheme = 96; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowAnimationStyle + */ + public static final int AppCompatTheme_android_windowAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#windowIsFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowIsFloating + */ + public static final int AppCompatTheme_android_windowIsFloating = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#autoCompleteTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:autoCompleteTextViewStyle + */ + public static final int AppCompatTheme_autoCompleteTextViewStyle = 101; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderlessButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:borderlessButtonStyle + */ + public static final int AppCompatTheme_borderlessButtonStyle = 55; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarButtonStyle + */ + public static final int AppCompatTheme_buttonBarButtonStyle = 52; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNegativeButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNegativeButtonStyle + */ + public static final int AppCompatTheme_buttonBarNegativeButtonStyle = 99; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNeutralButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNeutralButtonStyle + */ + public static final int AppCompatTheme_buttonBarNeutralButtonStyle = 100; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarPositiveButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarPositiveButtonStyle + */ + public static final int AppCompatTheme_buttonBarPositiveButtonStyle = 98; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarStyle + */ + public static final int AppCompatTheme_buttonBarStyle = 51; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyle + */ + public static final int AppCompatTheme_buttonStyle = 102; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyleSmall + */ + public static final int AppCompatTheme_buttonStyleSmall = 103; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkboxStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkboxStyle + */ + public static final int AppCompatTheme_checkboxStyle = 104; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkedTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkedTextViewStyle + */ + public static final int AppCompatTheme_checkedTextViewStyle = 105; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorAccent} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorAccent + */ + public static final int AppCompatTheme_colorAccent = 85; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorBackgroundFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorBackgroundFloating + */ + public static final int AppCompatTheme_colorBackgroundFloating = 92; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorButtonNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorButtonNormal + */ + public static final int AppCompatTheme_colorButtonNormal = 89; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlActivated} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlActivated + */ + public static final int AppCompatTheme_colorControlActivated = 87; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlHighlight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlHighlight + */ + public static final int AppCompatTheme_colorControlHighlight = 88; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlNormal + */ + public static final int AppCompatTheme_colorControlNormal = 86; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimary} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimary + */ + public static final int AppCompatTheme_colorPrimary = 83; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimaryDark} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimaryDark + */ + public static final int AppCompatTheme_colorPrimaryDark = 84; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorSwitchThumbNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorSwitchThumbNormal + */ + public static final int AppCompatTheme_colorSwitchThumbNormal = 90; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#controlBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:controlBackground + */ + public static final int AppCompatTheme_controlBackground = 91; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogPreferredPadding} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dialogPreferredPadding + */ + public static final int AppCompatTheme_dialogPreferredPadding = 44; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dialogTheme + */ + public static final int AppCompatTheme_dialogTheme = 43; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerHorizontal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerHorizontal + */ + public static final int AppCompatTheme_dividerHorizontal = 57; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerVertical} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerVertical + */ + public static final int AppCompatTheme_dividerVertical = 56; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropDownListViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dropDownListViewStyle + */ + public static final int AppCompatTheme_dropDownListViewStyle = 75; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropdownListPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dropdownListPreferredItemHeight + */ + public static final int AppCompatTheme_dropdownListPreferredItemHeight = 47; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextBackground + */ + public static final int AppCompatTheme_editTextBackground = 64; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:editTextColor + */ + public static final int AppCompatTheme_editTextColor = 63; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextStyle + */ + public static final int AppCompatTheme_editTextStyle = 106; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int AppCompatTheme_homeAsUpIndicator = 49; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#imageButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:imageButtonStyle + */ + public static final int AppCompatTheme_imageButtonStyle = 65; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listChoiceBackgroundIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listChoiceBackgroundIndicator + */ + public static final int AppCompatTheme_listChoiceBackgroundIndicator = 82; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listDividerAlertDialog} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listDividerAlertDialog + */ + public static final int AppCompatTheme_listDividerAlertDialog = 45; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listMenuViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listMenuViewStyle + */ + public static final int AppCompatTheme_listMenuViewStyle = 114; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listPopupWindowStyle + */ + public static final int AppCompatTheme_listPopupWindowStyle = 76; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeight + */ + public static final int AppCompatTheme_listPreferredItemHeight = 70; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightLarge} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightLarge + */ + public static final int AppCompatTheme_listPreferredItemHeightLarge = 72; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightSmall + */ + public static final int AppCompatTheme_listPreferredItemHeightSmall = 71; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingLeft} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingLeft + */ + public static final int AppCompatTheme_listPreferredItemPaddingLeft = 73; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingRight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingRight + */ + public static final int AppCompatTheme_listPreferredItemPaddingRight = 74; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelBackground + */ + public static final int AppCompatTheme_panelBackground = 79; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelMenuListTheme + */ + public static final int AppCompatTheme_panelMenuListTheme = 81; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListWidth} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:panelMenuListWidth + */ + public static final int AppCompatTheme_panelMenuListWidth = 80; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupMenuStyle + */ + public static final int AppCompatTheme_popupMenuStyle = 61; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupWindowStyle + */ + public static final int AppCompatTheme_popupWindowStyle = 62; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#radioButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:radioButtonStyle + */ + public static final int AppCompatTheme_radioButtonStyle = 107; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyle + */ + public static final int AppCompatTheme_ratingBarStyle = 108; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleIndicator + */ + public static final int AppCompatTheme_ratingBarStyleIndicator = 109; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleSmall + */ + public static final int AppCompatTheme_ratingBarStyleSmall = 110; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchViewStyle + */ + public static final int AppCompatTheme_searchViewStyle = 69; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#seekBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:seekBarStyle + */ + public static final int AppCompatTheme_seekBarStyle = 111; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackground + */ + public static final int AppCompatTheme_selectableItemBackground = 53; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackgroundBorderless} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackgroundBorderless + */ + public static final int AppCompatTheme_selectableItemBackgroundBorderless = 54; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerDropDownItemStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerDropDownItemStyle + */ + public static final int AppCompatTheme_spinnerDropDownItemStyle = 48; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerStyle + */ + public static final int AppCompatTheme_spinnerStyle = 112; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchStyle + */ + public static final int AppCompatTheme_switchStyle = 113; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceLargePopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceLargePopupMenu + */ + public static final int AppCompatTheme_textAppearanceLargePopupMenu = 40; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItem + */ + public static final int AppCompatTheme_textAppearanceListItem = 77; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItemSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItemSmall + */ + public static final int AppCompatTheme_textAppearanceListItemSmall = 78; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearancePopupMenuHeader} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearancePopupMenuHeader + */ + public static final int AppCompatTheme_textAppearancePopupMenuHeader = 42; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultSubtitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultTitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultTitle = 66; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSmallPopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSmallPopupMenu + */ + public static final int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorAlertDialogListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorAlertDialogListItem + */ + public static final int AppCompatTheme_textColorAlertDialogListItem = 97; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorSearchUrl} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorSearchUrl + */ + public static final int AppCompatTheme_textColorSearchUrl = 68; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarNavigationButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarNavigationButtonStyle + */ + public static final int AppCompatTheme_toolbarNavigationButtonStyle = 60; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarStyle + */ + public static final int AppCompatTheme_toolbarStyle = 59; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBar} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBar + */ + public static final int AppCompatTheme_windowActionBar = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBarOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBarOverlay + */ + public static final int AppCompatTheme_windowActionBarOverlay = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionModeOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionModeOverlay + */ + public static final int AppCompatTheme_windowActionModeOverlay = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMajor + */ + public static final int AppCompatTheme_windowFixedHeightMajor = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMinor + */ + public static final int AppCompatTheme_windowFixedHeightMinor = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMajor + */ + public static final int AppCompatTheme_windowFixedWidthMajor = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMinor + */ + public static final int AppCompatTheme_windowFixedWidthMinor = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMajor + */ + public static final int AppCompatTheme_windowMinWidthMajor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMinor + */ + public static final int AppCompatTheme_windowMinWidthMinor = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowNoTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowNoTitle + */ + public static final int AppCompatTheme_windowNoTitle = 3; + /** Attributes that can be used with a BottomSheetBehavior_Layout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #BottomSheetBehavior_Layout_behavior_hideable net.kdt.pojavlaunch:behavior_hideable}
{@link #BottomSheetBehavior_Layout_behavior_peekHeight net.kdt.pojavlaunch:behavior_peekHeight}
{@link #BottomSheetBehavior_Layout_behavior_skipCollapsed net.kdt.pojavlaunch:behavior_skipCollapsed}
+ @see #BottomSheetBehavior_Layout_behavior_hideable + @see #BottomSheetBehavior_Layout_behavior_peekHeight + @see #BottomSheetBehavior_Layout_behavior_skipCollapsed + */ + public static final int[] BottomSheetBehavior_Layout = { + 0x7f010009, 0x7f01000a, 0x7f01000b + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_hideable} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_hideable + */ + public static final int BottomSheetBehavior_Layout_behavior_hideable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_peekHeight} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_peekHeight + */ + public static final int BottomSheetBehavior_Layout_behavior_peekHeight = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_skipCollapsed} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_skipCollapsed + */ + public static final int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2; + /** Attributes that can be used with a ButtonBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ButtonBarLayout_allowStacking net.kdt.pojavlaunch:allowStacking}
+ @see #ButtonBarLayout_allowStacking + */ + public static final int[] ButtonBarLayout = { + 0x7f0100ea + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#allowStacking} + attribute's value can be found in the {@link #ButtonBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:allowStacking + */ + public static final int ButtonBarLayout_allowStacking = 0; + /** Attributes that can be used with a CollapsingToolbarLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_collapsedTitleGravity net.kdt.pojavlaunch:collapsedTitleGravity}
{@link #CollapsingToolbarLayout_collapsedTitleTextAppearance net.kdt.pojavlaunch:collapsedTitleTextAppearance}
{@link #CollapsingToolbarLayout_contentScrim net.kdt.pojavlaunch:contentScrim}
{@link #CollapsingToolbarLayout_expandedTitleGravity net.kdt.pojavlaunch:expandedTitleGravity}
{@link #CollapsingToolbarLayout_expandedTitleMargin net.kdt.pojavlaunch:expandedTitleMargin}
{@link #CollapsingToolbarLayout_expandedTitleMarginBottom net.kdt.pojavlaunch:expandedTitleMarginBottom}
{@link #CollapsingToolbarLayout_expandedTitleMarginEnd net.kdt.pojavlaunch:expandedTitleMarginEnd}
{@link #CollapsingToolbarLayout_expandedTitleMarginStart net.kdt.pojavlaunch:expandedTitleMarginStart}
{@link #CollapsingToolbarLayout_expandedTitleMarginTop net.kdt.pojavlaunch:expandedTitleMarginTop}
{@link #CollapsingToolbarLayout_expandedTitleTextAppearance net.kdt.pojavlaunch:expandedTitleTextAppearance}
{@link #CollapsingToolbarLayout_scrimAnimationDuration net.kdt.pojavlaunch:scrimAnimationDuration}
{@link #CollapsingToolbarLayout_scrimVisibleHeightTrigger net.kdt.pojavlaunch:scrimVisibleHeightTrigger}
{@link #CollapsingToolbarLayout_statusBarScrim net.kdt.pojavlaunch:statusBarScrim}
{@link #CollapsingToolbarLayout_title net.kdt.pojavlaunch:title}
{@link #CollapsingToolbarLayout_titleEnabled net.kdt.pojavlaunch:titleEnabled}
{@link #CollapsingToolbarLayout_toolbarId net.kdt.pojavlaunch:toolbarId}
+ @see #CollapsingToolbarLayout_collapsedTitleGravity + @see #CollapsingToolbarLayout_collapsedTitleTextAppearance + @see #CollapsingToolbarLayout_contentScrim + @see #CollapsingToolbarLayout_expandedTitleGravity + @see #CollapsingToolbarLayout_expandedTitleMargin + @see #CollapsingToolbarLayout_expandedTitleMarginBottom + @see #CollapsingToolbarLayout_expandedTitleMarginEnd + @see #CollapsingToolbarLayout_expandedTitleMarginStart + @see #CollapsingToolbarLayout_expandedTitleMarginTop + @see #CollapsingToolbarLayout_expandedTitleTextAppearance + @see #CollapsingToolbarLayout_scrimAnimationDuration + @see #CollapsingToolbarLayout_scrimVisibleHeightTrigger + @see #CollapsingToolbarLayout_statusBarScrim + @see #CollapsingToolbarLayout_title + @see #CollapsingToolbarLayout_titleEnabled + @see #CollapsingToolbarLayout_toolbarId + */ + public static final int[] CollapsingToolbarLayout = { + 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, + 0x7f010010, 0x7f010011, 0x7f010012, 0x7f010013, + 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, + 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f010051 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:collapsedTitleGravity + */ + public static final int CollapsingToolbarLayout_collapsedTitleGravity = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapsedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_collapsedTitleTextAppearance = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentScrim + */ + public static final int CollapsingToolbarLayout_contentScrim = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:expandedTitleGravity + */ + public static final int CollapsingToolbarLayout_expandedTitleGravity = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMargin} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMargin + */ + public static final int CollapsingToolbarLayout_expandedTitleMargin = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginBottom} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginBottom + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginBottom = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginEnd} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginEnd + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginStart} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginStart + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginStart = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginTop} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginTop + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginTop = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_expandedTitleTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimAnimationDuration} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimAnimationDuration + */ + public static final int CollapsingToolbarLayout_scrimAnimationDuration = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimVisibleHeightTrigger} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimVisibleHeightTrigger + */ + public static final int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:statusBarScrim + */ + public static final int CollapsingToolbarLayout_statusBarScrim = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int CollapsingToolbarLayout_title = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleEnabled} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleEnabled + */ + public static final int CollapsingToolbarLayout_titleEnabled = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarId} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarId + */ + public static final int CollapsingToolbarLayout_toolbarId = 9; + /** Attributes that can be used with a CollapsingToolbarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_Layout_layout_collapseMode net.kdt.pojavlaunch:layout_collapseMode}
{@link #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier net.kdt.pojavlaunch:layout_collapseParallaxMultiplier}
+ @see #CollapsingToolbarLayout_Layout_layout_collapseMode + @see #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier + */ + public static final int[] CollapsingToolbarLayout_Layout = { + 0x7f01001b, 0x7f01001c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseMode} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ @attr name net.kdt.pojavlaunch:layout_collapseMode + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseMode = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseParallaxMultiplier} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_collapseParallaxMultiplier + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1; + /** Attributes that can be used with a ColorStateListItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ColorStateListItem_alpha net.kdt.pojavlaunch:alpha}
{@link #ColorStateListItem_android_alpha android:alpha}
{@link #ColorStateListItem_android_color android:color}
+ @see #ColorStateListItem_alpha + @see #ColorStateListItem_android_alpha + @see #ColorStateListItem_android_color + */ + public static final int[] ColorStateListItem = { + 0x010101a5, 0x0101031f, 0x7f0100eb + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alpha + */ + public static final int ColorStateListItem_alpha = 2; + /** +

This symbol is the offset where the {@link android.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:alpha + */ + public static final int ColorStateListItem_android_alpha = 1; + /** +

This symbol is the offset where the {@link android.R.attr#color} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:color + */ + public static final int ColorStateListItem_android_color = 0; + /** Attributes that can be used with a CompoundButton. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #CompoundButton_android_button android:button}
{@link #CompoundButton_buttonTint net.kdt.pojavlaunch:buttonTint}
{@link #CompoundButton_buttonTintMode net.kdt.pojavlaunch:buttonTintMode}
+ @see #CompoundButton_android_button + @see #CompoundButton_buttonTint + @see #CompoundButton_buttonTintMode + */ + public static final int[] CompoundButton = { + 0x01010107, 0x7f0100ec, 0x7f0100ed + }; + /** +

This symbol is the offset where the {@link android.R.attr#button} + attribute's value can be found in the {@link #CompoundButton} array. + @attr name android:button + */ + public static final int CompoundButton_android_button = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTint} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:buttonTint + */ + public static final int CompoundButton_buttonTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTintMode} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:buttonTintMode + */ + public static final int CompoundButton_buttonTintMode = 2; + /** Attributes that can be used with a CoordinatorLayout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CoordinatorLayout_keylines net.kdt.pojavlaunch:keylines}
{@link #CoordinatorLayout_statusBarBackground net.kdt.pojavlaunch:statusBarBackground}
+ @see #CoordinatorLayout_keylines + @see #CoordinatorLayout_statusBarBackground + */ + public static final int[] CoordinatorLayout = { + 0x7f01001d, 0x7f01001e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#keylines} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:keylines + */ + public static final int CoordinatorLayout_keylines = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarBackground} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:statusBarBackground + */ + public static final int CoordinatorLayout_statusBarBackground = 1; + /** Attributes that can be used with a CoordinatorLayout_Layout. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #CoordinatorLayout_Layout_android_layout_gravity android:layout_gravity}
{@link #CoordinatorLayout_Layout_layout_anchor net.kdt.pojavlaunch:layout_anchor}
{@link #CoordinatorLayout_Layout_layout_anchorGravity net.kdt.pojavlaunch:layout_anchorGravity}
{@link #CoordinatorLayout_Layout_layout_behavior net.kdt.pojavlaunch:layout_behavior}
{@link #CoordinatorLayout_Layout_layout_keyline net.kdt.pojavlaunch:layout_keyline}
+ @see #CoordinatorLayout_Layout_android_layout_gravity + @see #CoordinatorLayout_Layout_layout_anchor + @see #CoordinatorLayout_Layout_layout_anchorGravity + @see #CoordinatorLayout_Layout_layout_behavior + @see #CoordinatorLayout_Layout_layout_keyline + */ + public static final int[] CoordinatorLayout_Layout = { + 0x010100b3, 0x7f01001f, 0x7f010020, 0x7f010021, + 0x7f010022 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + @attr name android:layout_gravity + */ + public static final int CoordinatorLayout_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchor} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_anchor + */ + public static final int CoordinatorLayout_Layout_layout_anchor = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchorGravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:layout_anchorGravity + */ + public static final int CoordinatorLayout_Layout_layout_anchorGravity = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_behavior} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_behavior + */ + public static final int CoordinatorLayout_Layout_layout_behavior = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_keyline} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_keyline + */ + public static final int CoordinatorLayout_Layout_layout_keyline = 3; + /** Attributes that can be used with a DesignTheme. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #DesignTheme_bottomSheetDialogTheme net.kdt.pojavlaunch:bottomSheetDialogTheme}
{@link #DesignTheme_bottomSheetStyle net.kdt.pojavlaunch:bottomSheetStyle}
{@link #DesignTheme_textColorError net.kdt.pojavlaunch:textColorError}
+ @see #DesignTheme_bottomSheetDialogTheme + @see #DesignTheme_bottomSheetStyle + @see #DesignTheme_textColorError + */ + public static final int[] DesignTheme = { + 0x7f010023, 0x7f010024, 0x7f010025 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetDialogTheme} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetDialogTheme + */ + public static final int DesignTheme_bottomSheetDialogTheme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetStyle} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetStyle + */ + public static final int DesignTheme_bottomSheetStyle = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorError} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:textColorError + */ + public static final int DesignTheme_textColorError = 2; + /** Attributes that can be used with a DrawerArrowToggle. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #DrawerArrowToggle_arrowHeadLength net.kdt.pojavlaunch:arrowHeadLength}
{@link #DrawerArrowToggle_arrowShaftLength net.kdt.pojavlaunch:arrowShaftLength}
{@link #DrawerArrowToggle_barLength net.kdt.pojavlaunch:barLength}
{@link #DrawerArrowToggle_color net.kdt.pojavlaunch:color}
{@link #DrawerArrowToggle_drawableSize net.kdt.pojavlaunch:drawableSize}
{@link #DrawerArrowToggle_gapBetweenBars net.kdt.pojavlaunch:gapBetweenBars}
{@link #DrawerArrowToggle_spinBars net.kdt.pojavlaunch:spinBars}
{@link #DrawerArrowToggle_thickness net.kdt.pojavlaunch:thickness}
+ @see #DrawerArrowToggle_arrowHeadLength + @see #DrawerArrowToggle_arrowShaftLength + @see #DrawerArrowToggle_barLength + @see #DrawerArrowToggle_color + @see #DrawerArrowToggle_drawableSize + @see #DrawerArrowToggle_gapBetweenBars + @see #DrawerArrowToggle_spinBars + @see #DrawerArrowToggle_thickness + */ + public static final int[] DrawerArrowToggle = { + 0x7f0100ee, 0x7f0100ef, 0x7f0100f0, 0x7f0100f1, + 0x7f0100f2, 0x7f0100f3, 0x7f0100f4, 0x7f0100f5 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowHeadLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowHeadLength + */ + public static final int DrawerArrowToggle_arrowHeadLength = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowShaftLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowShaftLength + */ + public static final int DrawerArrowToggle_arrowShaftLength = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#barLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:barLength + */ + public static final int DrawerArrowToggle_barLength = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#color} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:color + */ + public static final int DrawerArrowToggle_color = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#drawableSize} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:drawableSize + */ + public static final int DrawerArrowToggle_drawableSize = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#gapBetweenBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:gapBetweenBars + */ + public static final int DrawerArrowToggle_gapBetweenBars = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spinBars + */ + public static final int DrawerArrowToggle_spinBars = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thickness} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thickness + */ + public static final int DrawerArrowToggle_thickness = 7; + /** Attributes that can be used with a FloatingActionButton. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #FloatingActionButton_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #FloatingActionButton_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
{@link #FloatingActionButton_borderWidth net.kdt.pojavlaunch:borderWidth}
{@link #FloatingActionButton_elevation net.kdt.pojavlaunch:elevation}
{@link #FloatingActionButton_fabSize net.kdt.pojavlaunch:fabSize}
{@link #FloatingActionButton_pressedTranslationZ net.kdt.pojavlaunch:pressedTranslationZ}
{@link #FloatingActionButton_rippleColor net.kdt.pojavlaunch:rippleColor}
{@link #FloatingActionButton_useCompatPadding net.kdt.pojavlaunch:useCompatPadding}
+ @see #FloatingActionButton_backgroundTint + @see #FloatingActionButton_backgroundTintMode + @see #FloatingActionButton_borderWidth + @see #FloatingActionButton_elevation + @see #FloatingActionButton_fabSize + @see #FloatingActionButton_pressedTranslationZ + @see #FloatingActionButton_rippleColor + @see #FloatingActionButton_useCompatPadding + */ + public static final int[] FloatingActionButton = { + 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, + 0x7f01002a, 0x7f01006a, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int FloatingActionButton_backgroundTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int FloatingActionButton_backgroundTintMode = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderWidth} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:borderWidth + */ + public static final int FloatingActionButton_borderWidth = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int FloatingActionButton_elevation = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#fabSize} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ @attr name net.kdt.pojavlaunch:fabSize + */ + public static final int FloatingActionButton_fabSize = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#pressedTranslationZ} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:pressedTranslationZ + */ + public static final int FloatingActionButton_pressedTranslationZ = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#rippleColor} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:rippleColor + */ + public static final int FloatingActionButton_rippleColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#useCompatPadding} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:useCompatPadding + */ + public static final int FloatingActionButton_useCompatPadding = 4; + /** Attributes that can be used with a ForegroundLinearLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ForegroundLinearLayout_android_foreground android:foreground}
{@link #ForegroundLinearLayout_android_foregroundGravity android:foregroundGravity}
{@link #ForegroundLinearLayout_foregroundInsidePadding net.kdt.pojavlaunch:foregroundInsidePadding}
+ @see #ForegroundLinearLayout_android_foreground + @see #ForegroundLinearLayout_android_foregroundGravity + @see #ForegroundLinearLayout_foregroundInsidePadding + */ + public static final int[] ForegroundLinearLayout = { + 0x01010109, 0x01010200, 0x7f01002b + }; + /** +

This symbol is the offset where the {@link android.R.attr#foreground} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foreground + */ + public static final int ForegroundLinearLayout_android_foreground = 0; + /** +

This symbol is the offset where the {@link android.R.attr#foregroundGravity} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foregroundGravity + */ + public static final int ForegroundLinearLayout_android_foregroundGravity = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#foregroundInsidePadding} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:foregroundInsidePadding + */ + public static final int ForegroundLinearLayout_foregroundInsidePadding = 2; + /** Attributes that can be used with a LinearLayoutCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_android_baselineAligned android:baselineAligned}
{@link #LinearLayoutCompat_android_baselineAlignedChildIndex android:baselineAlignedChildIndex}
{@link #LinearLayoutCompat_android_gravity android:gravity}
{@link #LinearLayoutCompat_android_orientation android:orientation}
{@link #LinearLayoutCompat_android_weightSum android:weightSum}
{@link #LinearLayoutCompat_divider net.kdt.pojavlaunch:divider}
{@link #LinearLayoutCompat_dividerPadding net.kdt.pojavlaunch:dividerPadding}
{@link #LinearLayoutCompat_measureWithLargestChild net.kdt.pojavlaunch:measureWithLargestChild}
{@link #LinearLayoutCompat_showDividers net.kdt.pojavlaunch:showDividers}
+ @see #LinearLayoutCompat_android_baselineAligned + @see #LinearLayoutCompat_android_baselineAlignedChildIndex + @see #LinearLayoutCompat_android_gravity + @see #LinearLayoutCompat_android_orientation + @see #LinearLayoutCompat_android_weightSum + @see #LinearLayoutCompat_divider + @see #LinearLayoutCompat_dividerPadding + @see #LinearLayoutCompat_measureWithLargestChild + @see #LinearLayoutCompat_showDividers + */ + public static final int[] LinearLayoutCompat = { + 0x010100af, 0x010100c4, 0x01010126, 0x01010127, + 0x01010128, 0x7f010059, 0x7f0100f6, 0x7f0100f7, + 0x7f0100f8 + }; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAligned} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAligned + */ + public static final int LinearLayoutCompat_android_baselineAligned = 2; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAlignedChildIndex} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAlignedChildIndex + */ + public static final int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:gravity + */ + public static final int LinearLayoutCompat_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:orientation + */ + public static final int LinearLayoutCompat_android_orientation = 1; + /** +

This symbol is the offset where the {@link android.R.attr#weightSum} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:weightSum + */ + public static final int LinearLayoutCompat_android_weightSum = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int LinearLayoutCompat_divider = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerPadding} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dividerPadding + */ + public static final int LinearLayoutCompat_dividerPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#measureWithLargestChild} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:measureWithLargestChild + */ + public static final int LinearLayoutCompat_measureWithLargestChild = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showDividers} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ @attr name net.kdt.pojavlaunch:showDividers + */ + public static final int LinearLayoutCompat_showDividers = 7; + /** Attributes that can be used with a LinearLayoutCompat_Layout. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_Layout_android_layout_gravity android:layout_gravity}
{@link #LinearLayoutCompat_Layout_android_layout_height android:layout_height}
{@link #LinearLayoutCompat_Layout_android_layout_weight android:layout_weight}
{@link #LinearLayoutCompat_Layout_android_layout_width android:layout_width}
+ @see #LinearLayoutCompat_Layout_android_layout_gravity + @see #LinearLayoutCompat_Layout_android_layout_height + @see #LinearLayoutCompat_Layout_android_layout_weight + @see #LinearLayoutCompat_Layout_android_layout_width + */ + public static final int[] LinearLayoutCompat_Layout = { + 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_gravity + */ + public static final int LinearLayoutCompat_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout_height} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_height + */ + public static final int LinearLayoutCompat_Layout_android_layout_height = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout_weight} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_weight + */ + public static final int LinearLayoutCompat_Layout_android_layout_weight = 3; + /** +

This symbol is the offset where the {@link android.R.attr#layout_width} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_width + */ + public static final int LinearLayoutCompat_Layout_android_layout_width = 1; + /** Attributes that can be used with a ListPopupWindow. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ListPopupWindow_android_dropDownHorizontalOffset android:dropDownHorizontalOffset}
{@link #ListPopupWindow_android_dropDownVerticalOffset android:dropDownVerticalOffset}
+ @see #ListPopupWindow_android_dropDownHorizontalOffset + @see #ListPopupWindow_android_dropDownVerticalOffset + */ + public static final int[] ListPopupWindow = { + 0x010102ac, 0x010102ad + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownHorizontalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownHorizontalOffset + */ + public static final int ListPopupWindow_android_dropDownHorizontalOffset = 0; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownVerticalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownVerticalOffset + */ + public static final int ListPopupWindow_android_dropDownVerticalOffset = 1; + /** Attributes that can be used with a MenuGroup. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #MenuGroup_android_checkableBehavior android:checkableBehavior}
{@link #MenuGroup_android_enabled android:enabled}
{@link #MenuGroup_android_id android:id}
{@link #MenuGroup_android_menuCategory android:menuCategory}
{@link #MenuGroup_android_orderInCategory android:orderInCategory}
{@link #MenuGroup_android_visible android:visible}
+ @see #MenuGroup_android_checkableBehavior + @see #MenuGroup_android_enabled + @see #MenuGroup_android_id + @see #MenuGroup_android_menuCategory + @see #MenuGroup_android_orderInCategory + @see #MenuGroup_android_visible + */ + public static final int[] MenuGroup = { + 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, + 0x010101df, 0x010101e0 + }; + /** +

This symbol is the offset where the {@link android.R.attr#checkableBehavior} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:checkableBehavior + */ + public static final int MenuGroup_android_checkableBehavior = 5; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:enabled + */ + public static final int MenuGroup_android_enabled = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:id + */ + public static final int MenuGroup_android_id = 1; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:menuCategory + */ + public static final int MenuGroup_android_menuCategory = 3; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:orderInCategory + */ + public static final int MenuGroup_android_orderInCategory = 4; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:visible + */ + public static final int MenuGroup_android_visible = 2; + /** Attributes that can be used with a MenuItem. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #MenuItem_actionLayout net.kdt.pojavlaunch:actionLayout}
{@link #MenuItem_actionProviderClass net.kdt.pojavlaunch:actionProviderClass}
{@link #MenuItem_actionViewClass net.kdt.pojavlaunch:actionViewClass}
{@link #MenuItem_android_alphabeticShortcut android:alphabeticShortcut}
{@link #MenuItem_android_checkable android:checkable}
{@link #MenuItem_android_checked android:checked}
{@link #MenuItem_android_enabled android:enabled}
{@link #MenuItem_android_icon android:icon}
{@link #MenuItem_android_id android:id}
{@link #MenuItem_android_menuCategory android:menuCategory}
{@link #MenuItem_android_numericShortcut android:numericShortcut}
{@link #MenuItem_android_onClick android:onClick}
{@link #MenuItem_android_orderInCategory android:orderInCategory}
{@link #MenuItem_android_title android:title}
{@link #MenuItem_android_titleCondensed android:titleCondensed}
{@link #MenuItem_android_visible android:visible}
{@link #MenuItem_showAsAction net.kdt.pojavlaunch:showAsAction}
+ @see #MenuItem_actionLayout + @see #MenuItem_actionProviderClass + @see #MenuItem_actionViewClass + @see #MenuItem_android_alphabeticShortcut + @see #MenuItem_android_checkable + @see #MenuItem_android_checked + @see #MenuItem_android_enabled + @see #MenuItem_android_icon + @see #MenuItem_android_id + @see #MenuItem_android_menuCategory + @see #MenuItem_android_numericShortcut + @see #MenuItem_android_onClick + @see #MenuItem_android_orderInCategory + @see #MenuItem_android_title + @see #MenuItem_android_titleCondensed + @see #MenuItem_android_visible + @see #MenuItem_showAsAction + */ + public static final int[] MenuItem = { + 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, + 0x01010194, 0x010101de, 0x010101df, 0x010101e1, + 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, + 0x0101026f, 0x7f0100f9, 0x7f0100fa, 0x7f0100fb, + 0x7f0100fc + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionLayout} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionLayout + */ + public static final int MenuItem_actionLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionProviderClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionProviderClass + */ + public static final int MenuItem_actionProviderClass = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionViewClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionViewClass + */ + public static final int MenuItem_actionViewClass = 15; + /** +

This symbol is the offset where the {@link android.R.attr#alphabeticShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:alphabeticShortcut + */ + public static final int MenuItem_android_alphabeticShortcut = 9; + /** +

This symbol is the offset where the {@link android.R.attr#checkable} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checkable + */ + public static final int MenuItem_android_checkable = 11; + /** +

This symbol is the offset where the {@link android.R.attr#checked} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checked + */ + public static final int MenuItem_android_checked = 3; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:enabled + */ + public static final int MenuItem_android_enabled = 1; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:icon + */ + public static final int MenuItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:id + */ + public static final int MenuItem_android_id = 2; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:menuCategory + */ + public static final int MenuItem_android_menuCategory = 5; + /** +

This symbol is the offset where the {@link android.R.attr#numericShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:numericShortcut + */ + public static final int MenuItem_android_numericShortcut = 10; + /** +

This symbol is the offset where the {@link android.R.attr#onClick} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:onClick + */ + public static final int MenuItem_android_onClick = 12; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:orderInCategory + */ + public static final int MenuItem_android_orderInCategory = 6; + /** +

This symbol is the offset where the {@link android.R.attr#title} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:title + */ + public static final int MenuItem_android_title = 7; + /** +

This symbol is the offset where the {@link android.R.attr#titleCondensed} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:titleCondensed + */ + public static final int MenuItem_android_titleCondensed = 8; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:visible + */ + public static final int MenuItem_android_visible = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showAsAction} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ @attr name net.kdt.pojavlaunch:showAsAction + */ + public static final int MenuItem_showAsAction = 13; + /** Attributes that can be used with a MenuView. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #MenuView_android_headerBackground android:headerBackground}
{@link #MenuView_android_horizontalDivider android:horizontalDivider}
{@link #MenuView_android_itemBackground android:itemBackground}
{@link #MenuView_android_itemIconDisabledAlpha android:itemIconDisabledAlpha}
{@link #MenuView_android_itemTextAppearance android:itemTextAppearance}
{@link #MenuView_android_verticalDivider android:verticalDivider}
{@link #MenuView_android_windowAnimationStyle android:windowAnimationStyle}
{@link #MenuView_preserveIconSpacing net.kdt.pojavlaunch:preserveIconSpacing}
{@link #MenuView_subMenuArrow net.kdt.pojavlaunch:subMenuArrow}
+ @see #MenuView_android_headerBackground + @see #MenuView_android_horizontalDivider + @see #MenuView_android_itemBackground + @see #MenuView_android_itemIconDisabledAlpha + @see #MenuView_android_itemTextAppearance + @see #MenuView_android_verticalDivider + @see #MenuView_android_windowAnimationStyle + @see #MenuView_preserveIconSpacing + @see #MenuView_subMenuArrow + */ + public static final int[] MenuView = { + 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, + 0x0101012f, 0x01010130, 0x01010131, 0x7f0100fd, + 0x7f0100fe + }; + /** +

This symbol is the offset where the {@link android.R.attr#headerBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:headerBackground + */ + public static final int MenuView_android_headerBackground = 4; + /** +

This symbol is the offset where the {@link android.R.attr#horizontalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:horizontalDivider + */ + public static final int MenuView_android_horizontalDivider = 2; + /** +

This symbol is the offset where the {@link android.R.attr#itemBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemBackground + */ + public static final int MenuView_android_itemBackground = 5; + /** +

This symbol is the offset where the {@link android.R.attr#itemIconDisabledAlpha} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemIconDisabledAlpha + */ + public static final int MenuView_android_itemIconDisabledAlpha = 6; + /** +

This symbol is the offset where the {@link android.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemTextAppearance + */ + public static final int MenuView_android_itemTextAppearance = 1; + /** +

This symbol is the offset where the {@link android.R.attr#verticalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:verticalDivider + */ + public static final int MenuView_android_verticalDivider = 3; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:windowAnimationStyle + */ + public static final int MenuView_android_windowAnimationStyle = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#preserveIconSpacing} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:preserveIconSpacing + */ + public static final int MenuView_preserveIconSpacing = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subMenuArrow} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subMenuArrow + */ + public static final int MenuView_subMenuArrow = 8; + /** Attributes that can be used with a NavigationView. +

Includes the following attributes:

+ + + + + + + + + + + + + + +
AttributeDescription
{@link #NavigationView_android_background android:background}
{@link #NavigationView_android_fitsSystemWindows android:fitsSystemWindows}
{@link #NavigationView_android_maxWidth android:maxWidth}
{@link #NavigationView_elevation net.kdt.pojavlaunch:elevation}
{@link #NavigationView_headerLayout net.kdt.pojavlaunch:headerLayout}
{@link #NavigationView_itemBackground net.kdt.pojavlaunch:itemBackground}
{@link #NavigationView_itemIconTint net.kdt.pojavlaunch:itemIconTint}
{@link #NavigationView_itemTextAppearance net.kdt.pojavlaunch:itemTextAppearance}
{@link #NavigationView_itemTextColor net.kdt.pojavlaunch:itemTextColor}
{@link #NavigationView_menu net.kdt.pojavlaunch:menu}
+ @see #NavigationView_android_background + @see #NavigationView_android_fitsSystemWindows + @see #NavigationView_android_maxWidth + @see #NavigationView_elevation + @see #NavigationView_headerLayout + @see #NavigationView_itemBackground + @see #NavigationView_itemIconTint + @see #NavigationView_itemTextAppearance + @see #NavigationView_itemTextColor + @see #NavigationView_menu + */ + public static final int[] NavigationView = { + 0x010100d4, 0x010100dd, 0x0101011f, 0x7f01002c, + 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, + 0x7f010031, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:background + */ + public static final int NavigationView_android_background = 0; + /** +

This symbol is the offset where the {@link android.R.attr#fitsSystemWindows} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:fitsSystemWindows + */ + public static final int NavigationView_android_fitsSystemWindows = 1; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:maxWidth + */ + public static final int NavigationView_android_maxWidth = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int NavigationView_elevation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#headerLayout} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:headerLayout + */ + public static final int NavigationView_headerLayout = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemBackground} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemBackground + */ + public static final int NavigationView_itemBackground = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemIconTint} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemIconTint + */ + public static final int NavigationView_itemIconTint = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemTextAppearance + */ + public static final int NavigationView_itemTextAppearance = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextColor} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemTextColor + */ + public static final int NavigationView_itemTextColor = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#menu} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:menu + */ + public static final int NavigationView_menu = 3; + /** Attributes that can be used with a PopupWindow. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #PopupWindow_android_popupAnimationStyle android:popupAnimationStyle}
{@link #PopupWindow_android_popupBackground android:popupBackground}
{@link #PopupWindow_overlapAnchor net.kdt.pojavlaunch:overlapAnchor}
+ @see #PopupWindow_android_popupAnimationStyle + @see #PopupWindow_android_popupBackground + @see #PopupWindow_overlapAnchor + */ + public static final int[] PopupWindow = { + 0x01010176, 0x010102c9, 0x7f0100ff + }; + /** +

This symbol is the offset where the {@link android.R.attr#popupAnimationStyle} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupAnimationStyle + */ + public static final int PopupWindow_android_popupAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupBackground + */ + public static final int PopupWindow_android_popupBackground = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#overlapAnchor} + attribute's value can be found in the {@link #PopupWindow} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:overlapAnchor + */ + public static final int PopupWindow_overlapAnchor = 2; + /** Attributes that can be used with a PopupWindowBackgroundState. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #PopupWindowBackgroundState_state_above_anchor net.kdt.pojavlaunch:state_above_anchor}
+ @see #PopupWindowBackgroundState_state_above_anchor + */ + public static final int[] PopupWindowBackgroundState = { + 0x7f010100 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_above_anchor} + attribute's value can be found in the {@link #PopupWindowBackgroundState} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_above_anchor + */ + public static final int PopupWindowBackgroundState_state_above_anchor = 0; + /** Attributes that can be used with a RecyclerView. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #RecyclerView_android_descendantFocusability android:descendantFocusability}
{@link #RecyclerView_android_orientation android:orientation}
{@link #RecyclerView_layoutManager net.kdt.pojavlaunch:layoutManager}
{@link #RecyclerView_reverseLayout net.kdt.pojavlaunch:reverseLayout}
{@link #RecyclerView_spanCount net.kdt.pojavlaunch:spanCount}
{@link #RecyclerView_stackFromEnd net.kdt.pojavlaunch:stackFromEnd}
+ @see #RecyclerView_android_descendantFocusability + @see #RecyclerView_android_orientation + @see #RecyclerView_layoutManager + @see #RecyclerView_reverseLayout + @see #RecyclerView_spanCount + @see #RecyclerView_stackFromEnd + */ + public static final int[] RecyclerView = { + 0x010100c4, 0x010100f1, 0x7f010000, 0x7f010001, + 0x7f010002, 0x7f010003 + }; + /** +

This symbol is the offset where the {@link android.R.attr#descendantFocusability} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:descendantFocusability + */ + public static final int RecyclerView_android_descendantFocusability = 1; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:orientation + */ + public static final int RecyclerView_android_orientation = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layoutManager} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layoutManager + */ + public static final int RecyclerView_layoutManager = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#reverseLayout} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:reverseLayout + */ + public static final int RecyclerView_reverseLayout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spanCount} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spanCount + */ + public static final int RecyclerView_spanCount = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#stackFromEnd} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:stackFromEnd + */ + public static final int RecyclerView_stackFromEnd = 5; + /** Attributes that can be used with a ScrimInsetsFrameLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrimInsetsFrameLayout_insetForeground net.kdt.pojavlaunch:insetForeground}
+ @see #ScrimInsetsFrameLayout_insetForeground + */ + public static final int[] ScrimInsetsFrameLayout = { + 0x7f010032 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#insetForeground} + attribute's value can be found in the {@link #ScrimInsetsFrameLayout} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:insetForeground + */ + public static final int ScrimInsetsFrameLayout_insetForeground = 0; + /** Attributes that can be used with a ScrollingViewBehavior_Layout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrollingViewBehavior_Layout_behavior_overlapTop net.kdt.pojavlaunch:behavior_overlapTop}
+ @see #ScrollingViewBehavior_Layout_behavior_overlapTop + */ + public static final int[] ScrollingViewBehavior_Layout = { + 0x7f010033 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_overlapTop} + attribute's value can be found in the {@link #ScrollingViewBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_overlapTop + */ + public static final int ScrollingViewBehavior_Layout_behavior_overlapTop = 0; + /** Attributes that can be used with a SearchView. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SearchView_android_focusable android:focusable}
{@link #SearchView_android_imeOptions android:imeOptions}
{@link #SearchView_android_inputType android:inputType}
{@link #SearchView_android_maxWidth android:maxWidth}
{@link #SearchView_closeIcon net.kdt.pojavlaunch:closeIcon}
{@link #SearchView_commitIcon net.kdt.pojavlaunch:commitIcon}
{@link #SearchView_defaultQueryHint net.kdt.pojavlaunch:defaultQueryHint}
{@link #SearchView_goIcon net.kdt.pojavlaunch:goIcon}
{@link #SearchView_iconifiedByDefault net.kdt.pojavlaunch:iconifiedByDefault}
{@link #SearchView_layout net.kdt.pojavlaunch:layout}
{@link #SearchView_queryBackground net.kdt.pojavlaunch:queryBackground}
{@link #SearchView_queryHint net.kdt.pojavlaunch:queryHint}
{@link #SearchView_searchHintIcon net.kdt.pojavlaunch:searchHintIcon}
{@link #SearchView_searchIcon net.kdt.pojavlaunch:searchIcon}
{@link #SearchView_submitBackground net.kdt.pojavlaunch:submitBackground}
{@link #SearchView_suggestionRowLayout net.kdt.pojavlaunch:suggestionRowLayout}
{@link #SearchView_voiceIcon net.kdt.pojavlaunch:voiceIcon}
+ @see #SearchView_android_focusable + @see #SearchView_android_imeOptions + @see #SearchView_android_inputType + @see #SearchView_android_maxWidth + @see #SearchView_closeIcon + @see #SearchView_commitIcon + @see #SearchView_defaultQueryHint + @see #SearchView_goIcon + @see #SearchView_iconifiedByDefault + @see #SearchView_layout + @see #SearchView_queryBackground + @see #SearchView_queryHint + @see #SearchView_searchHintIcon + @see #SearchView_searchIcon + @see #SearchView_submitBackground + @see #SearchView_suggestionRowLayout + @see #SearchView_voiceIcon + */ + public static final int[] SearchView = { + 0x010100da, 0x0101011f, 0x01010220, 0x01010264, + 0x7f010101, 0x7f010102, 0x7f010103, 0x7f010104, + 0x7f010105, 0x7f010106, 0x7f010107, 0x7f010108, + 0x7f010109, 0x7f01010a, 0x7f01010b, 0x7f01010c, + 0x7f01010d + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:focusable + */ + public static final int SearchView_android_focusable = 0; + /** +

This symbol is the offset where the {@link android.R.attr#imeOptions} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:imeOptions + */ + public static final int SearchView_android_imeOptions = 3; + /** +

This symbol is the offset where the {@link android.R.attr#inputType} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:inputType + */ + public static final int SearchView_android_inputType = 2; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:maxWidth + */ + public static final int SearchView_android_maxWidth = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeIcon + */ + public static final int SearchView_closeIcon = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#commitIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:commitIcon + */ + public static final int SearchView_commitIcon = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#defaultQueryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:defaultQueryHint + */ + public static final int SearchView_defaultQueryHint = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#goIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:goIcon + */ + public static final int SearchView_goIcon = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#iconifiedByDefault} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:iconifiedByDefault + */ + public static final int SearchView_iconifiedByDefault = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout + */ + public static final int SearchView_layout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:queryBackground + */ + public static final int SearchView_queryBackground = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:queryHint + */ + public static final int SearchView_queryHint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchHintIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchHintIcon + */ + public static final int SearchView_searchHintIcon = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchIcon + */ + public static final int SearchView_searchIcon = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#submitBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:submitBackground + */ + public static final int SearchView_submitBackground = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#suggestionRowLayout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:suggestionRowLayout + */ + public static final int SearchView_suggestionRowLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#voiceIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:voiceIcon + */ + public static final int SearchView_voiceIcon = 12; + /** Attributes that can be used with a SnackbarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #SnackbarLayout_android_maxWidth android:maxWidth}
{@link #SnackbarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #SnackbarLayout_maxActionInlineWidth net.kdt.pojavlaunch:maxActionInlineWidth}
+ @see #SnackbarLayout_android_maxWidth + @see #SnackbarLayout_elevation + @see #SnackbarLayout_maxActionInlineWidth + */ + public static final int[] SnackbarLayout = { + 0x0101011f, 0x7f010034, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + @attr name android:maxWidth + */ + public static final int SnackbarLayout_android_maxWidth = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int SnackbarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxActionInlineWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxActionInlineWidth + */ + public static final int SnackbarLayout_maxActionInlineWidth = 1; + /** Attributes that can be used with a Spinner. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #Spinner_android_dropDownWidth android:dropDownWidth}
{@link #Spinner_android_entries android:entries}
{@link #Spinner_android_popupBackground android:popupBackground}
{@link #Spinner_android_prompt android:prompt}
{@link #Spinner_popupTheme net.kdt.pojavlaunch:popupTheme}
+ @see #Spinner_android_dropDownWidth + @see #Spinner_android_entries + @see #Spinner_android_popupBackground + @see #Spinner_android_prompt + @see #Spinner_popupTheme + */ + public static final int[] Spinner = { + 0x010100b2, 0x01010176, 0x0101017b, 0x01010262, + 0x7f01006b + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownWidth} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:dropDownWidth + */ + public static final int Spinner_android_dropDownWidth = 3; + /** +

This symbol is the offset where the {@link android.R.attr#entries} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:entries + */ + public static final int Spinner_android_entries = 0; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:popupBackground + */ + public static final int Spinner_android_popupBackground = 1; + /** +

This symbol is the offset where the {@link android.R.attr#prompt} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:prompt + */ + public static final int Spinner_android_prompt = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Spinner} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Spinner_popupTheme = 4; + /** Attributes that can be used with a SwitchCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SwitchCompat_android_textOff android:textOff}
{@link #SwitchCompat_android_textOn android:textOn}
{@link #SwitchCompat_android_thumb android:thumb}
{@link #SwitchCompat_showText net.kdt.pojavlaunch:showText}
{@link #SwitchCompat_splitTrack net.kdt.pojavlaunch:splitTrack}
{@link #SwitchCompat_switchMinWidth net.kdt.pojavlaunch:switchMinWidth}
{@link #SwitchCompat_switchPadding net.kdt.pojavlaunch:switchPadding}
{@link #SwitchCompat_switchTextAppearance net.kdt.pojavlaunch:switchTextAppearance}
{@link #SwitchCompat_thumbTextPadding net.kdt.pojavlaunch:thumbTextPadding}
{@link #SwitchCompat_thumbTint net.kdt.pojavlaunch:thumbTint}
{@link #SwitchCompat_thumbTintMode net.kdt.pojavlaunch:thumbTintMode}
{@link #SwitchCompat_track net.kdt.pojavlaunch:track}
{@link #SwitchCompat_trackTint net.kdt.pojavlaunch:trackTint}
{@link #SwitchCompat_trackTintMode net.kdt.pojavlaunch:trackTintMode}
+ @see #SwitchCompat_android_textOff + @see #SwitchCompat_android_textOn + @see #SwitchCompat_android_thumb + @see #SwitchCompat_showText + @see #SwitchCompat_splitTrack + @see #SwitchCompat_switchMinWidth + @see #SwitchCompat_switchPadding + @see #SwitchCompat_switchTextAppearance + @see #SwitchCompat_thumbTextPadding + @see #SwitchCompat_thumbTint + @see #SwitchCompat_thumbTintMode + @see #SwitchCompat_track + @see #SwitchCompat_trackTint + @see #SwitchCompat_trackTintMode + */ + public static final int[] SwitchCompat = { + 0x01010124, 0x01010125, 0x01010142, 0x7f01010e, + 0x7f01010f, 0x7f010110, 0x7f010111, 0x7f010112, + 0x7f010113, 0x7f010114, 0x7f010115, 0x7f010116, + 0x7f010117, 0x7f010118 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textOff} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOff + */ + public static final int SwitchCompat_android_textOff = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textOn} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOn + */ + public static final int SwitchCompat_android_textOn = 0; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:thumb + */ + public static final int SwitchCompat_android_thumb = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showText} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:showText + */ + public static final int SwitchCompat_showText = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#splitTrack} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:splitTrack + */ + public static final int SwitchCompat_splitTrack = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchMinWidth} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchMinWidth + */ + public static final int SwitchCompat_switchMinWidth = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchPadding + */ + public static final int SwitchCompat_switchPadding = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchTextAppearance} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchTextAppearance + */ + public static final int SwitchCompat_switchTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTextPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTextPadding + */ + public static final int SwitchCompat_thumbTextPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTint + */ + public static final int SwitchCompat_thumbTint = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:thumbTintMode + */ + public static final int SwitchCompat_thumbTintMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#track} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:track + */ + public static final int SwitchCompat_track = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:trackTint + */ + public static final int SwitchCompat_trackTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:trackTintMode + */ + public static final int SwitchCompat_trackTintMode = 7; + /** Attributes that can be used with a TabItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #TabItem_android_icon android:icon}
{@link #TabItem_android_layout android:layout}
{@link #TabItem_android_text android:text}
+ @see #TabItem_android_icon + @see #TabItem_android_layout + @see #TabItem_android_text + */ + public static final int[] TabItem = { + 0x01010002, 0x010100f2, 0x0101014f + }; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:icon + */ + public static final int TabItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:layout + */ + public static final int TabItem_android_layout = 1; + /** +

This symbol is the offset where the {@link android.R.attr#text} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:text + */ + public static final int TabItem_android_text = 2; + /** Attributes that can be used with a TabLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #TabLayout_tabBackground net.kdt.pojavlaunch:tabBackground}
{@link #TabLayout_tabContentStart net.kdt.pojavlaunch:tabContentStart}
{@link #TabLayout_tabGravity net.kdt.pojavlaunch:tabGravity}
{@link #TabLayout_tabIndicatorColor net.kdt.pojavlaunch:tabIndicatorColor}
{@link #TabLayout_tabIndicatorHeight net.kdt.pojavlaunch:tabIndicatorHeight}
{@link #TabLayout_tabMaxWidth net.kdt.pojavlaunch:tabMaxWidth}
{@link #TabLayout_tabMinWidth net.kdt.pojavlaunch:tabMinWidth}
{@link #TabLayout_tabMode net.kdt.pojavlaunch:tabMode}
{@link #TabLayout_tabPadding net.kdt.pojavlaunch:tabPadding}
{@link #TabLayout_tabPaddingBottom net.kdt.pojavlaunch:tabPaddingBottom}
{@link #TabLayout_tabPaddingEnd net.kdt.pojavlaunch:tabPaddingEnd}
{@link #TabLayout_tabPaddingStart net.kdt.pojavlaunch:tabPaddingStart}
{@link #TabLayout_tabPaddingTop net.kdt.pojavlaunch:tabPaddingTop}
{@link #TabLayout_tabSelectedTextColor net.kdt.pojavlaunch:tabSelectedTextColor}
{@link #TabLayout_tabTextAppearance net.kdt.pojavlaunch:tabTextAppearance}
{@link #TabLayout_tabTextColor net.kdt.pojavlaunch:tabTextColor}
+ @see #TabLayout_tabBackground + @see #TabLayout_tabContentStart + @see #TabLayout_tabGravity + @see #TabLayout_tabIndicatorColor + @see #TabLayout_tabIndicatorHeight + @see #TabLayout_tabMaxWidth + @see #TabLayout_tabMinWidth + @see #TabLayout_tabMode + @see #TabLayout_tabPadding + @see #TabLayout_tabPaddingBottom + @see #TabLayout_tabPaddingEnd + @see #TabLayout_tabPaddingStart + @see #TabLayout_tabPaddingTop + @see #TabLayout_tabSelectedTextColor + @see #TabLayout_tabTextAppearance + @see #TabLayout_tabTextColor + */ + public static final int[] TabLayout = { + 0x7f010035, 0x7f010036, 0x7f010037, 0x7f010038, + 0x7f010039, 0x7f01003a, 0x7f01003b, 0x7f01003c, + 0x7f01003d, 0x7f01003e, 0x7f01003f, 0x7f010040, + 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabBackground} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabBackground + */ + public static final int TabLayout_tabBackground = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabContentStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabContentStart + */ + public static final int TabLayout_tabContentStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabGravity} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ @attr name net.kdt.pojavlaunch:tabGravity + */ + public static final int TabLayout_tabGravity = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorColor + */ + public static final int TabLayout_tabIndicatorColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorHeight} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorHeight + */ + public static final int TabLayout_tabIndicatorHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMaxWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMaxWidth + */ + public static final int TabLayout_tabMaxWidth = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMinWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMinWidth + */ + public static final int TabLayout_tabMinWidth = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMode} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ @attr name net.kdt.pojavlaunch:tabMode + */ + public static final int TabLayout_tabMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPadding} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPadding + */ + public static final int TabLayout_tabPadding = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingBottom} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingBottom + */ + public static final int TabLayout_tabPaddingBottom = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingEnd} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingEnd + */ + public static final int TabLayout_tabPaddingEnd = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingStart + */ + public static final int TabLayout_tabPaddingStart = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingTop} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingTop + */ + public static final int TabLayout_tabPaddingTop = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabSelectedTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabSelectedTextColor + */ + public static final int TabLayout_tabSelectedTextColor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextAppearance} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabTextAppearance + */ + public static final int TabLayout_tabTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabTextColor + */ + public static final int TabLayout_tabTextColor = 9; + /** Attributes that can be used with a TextAppearance. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #TextAppearance_android_shadowColor android:shadowColor}
{@link #TextAppearance_android_shadowDx android:shadowDx}
{@link #TextAppearance_android_shadowDy android:shadowDy}
{@link #TextAppearance_android_shadowRadius android:shadowRadius}
{@link #TextAppearance_android_textColor android:textColor}
{@link #TextAppearance_android_textSize android:textSize}
{@link #TextAppearance_android_textStyle android:textStyle}
{@link #TextAppearance_android_typeface android:typeface}
{@link #TextAppearance_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #TextAppearance_android_shadowColor + @see #TextAppearance_android_shadowDx + @see #TextAppearance_android_shadowDy + @see #TextAppearance_android_shadowRadius + @see #TextAppearance_android_textColor + @see #TextAppearance_android_textSize + @see #TextAppearance_android_textStyle + @see #TextAppearance_android_typeface + @see #TextAppearance_textAllCaps + */ + public static final int[] TextAppearance = { + 0x01010095, 0x01010096, 0x01010097, 0x01010098, + 0x01010161, 0x01010162, 0x01010163, 0x01010164, + 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#shadowColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowColor + */ + public static final int TextAppearance_android_shadowColor = 4; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDx} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDx + */ + public static final int TextAppearance_android_shadowDx = 5; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDy} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDy + */ + public static final int TextAppearance_android_shadowDy = 6; + /** +

This symbol is the offset where the {@link android.R.attr#shadowRadius} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowRadius + */ + public static final int TextAppearance_android_shadowRadius = 7; + /** +

This symbol is the offset where the {@link android.R.attr#textColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textColor + */ + public static final int TextAppearance_android_textColor = 3; + /** +

This symbol is the offset where the {@link android.R.attr#textSize} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textSize + */ + public static final int TextAppearance_android_textSize = 0; + /** +

This symbol is the offset where the {@link android.R.attr#textStyle} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textStyle + */ + public static final int TextAppearance_android_textStyle = 2; + /** +

This symbol is the offset where the {@link android.R.attr#typeface} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:typeface + */ + public static final int TextAppearance_android_typeface = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #TextAppearance} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int TextAppearance_textAllCaps = 8; + /** Attributes that can be used with a TextInputLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + +
AttributeDescription
{@link #TextInputLayout_android_hint android:hint}
{@link #TextInputLayout_android_textColorHint android:textColorHint}
{@link #TextInputLayout_counterEnabled net.kdt.pojavlaunch:counterEnabled}
{@link #TextInputLayout_counterMaxLength net.kdt.pojavlaunch:counterMaxLength}
{@link #TextInputLayout_counterOverflowTextAppearance net.kdt.pojavlaunch:counterOverflowTextAppearance}
{@link #TextInputLayout_counterTextAppearance net.kdt.pojavlaunch:counterTextAppearance}
{@link #TextInputLayout_errorEnabled net.kdt.pojavlaunch:errorEnabled}
{@link #TextInputLayout_errorTextAppearance net.kdt.pojavlaunch:errorTextAppearance}
{@link #TextInputLayout_hintAnimationEnabled net.kdt.pojavlaunch:hintAnimationEnabled}
{@link #TextInputLayout_hintEnabled net.kdt.pojavlaunch:hintEnabled}
{@link #TextInputLayout_hintTextAppearance net.kdt.pojavlaunch:hintTextAppearance}
+ @see #TextInputLayout_android_hint + @see #TextInputLayout_android_textColorHint + @see #TextInputLayout_counterEnabled + @see #TextInputLayout_counterMaxLength + @see #TextInputLayout_counterOverflowTextAppearance + @see #TextInputLayout_counterTextAppearance + @see #TextInputLayout_errorEnabled + @see #TextInputLayout_errorTextAppearance + @see #TextInputLayout_hintAnimationEnabled + @see #TextInputLayout_hintEnabled + @see #TextInputLayout_hintTextAppearance + */ + public static final int[] TextInputLayout = { + 0x0101009a, 0x01010150, 0x7f010045, 0x7f010046, + 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, + 0x7f01004b, 0x7f01004c, 0x7f01004d + }; + /** +

This symbol is the offset where the {@link android.R.attr#hint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:hint + */ + public static final int TextInputLayout_android_hint = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textColorHint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:textColorHint + */ + public static final int TextInputLayout_android_textColorHint = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterEnabled + */ + public static final int TextInputLayout_counterEnabled = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterMaxLength} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterMaxLength + */ + public static final int TextInputLayout_counterMaxLength = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterOverflowTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterOverflowTextAppearance + */ + public static final int TextInputLayout_counterOverflowTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterTextAppearance + */ + public static final int TextInputLayout_counterTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:errorEnabled + */ + public static final int TextInputLayout_errorEnabled = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:errorTextAppearance + */ + public static final int TextInputLayout_errorTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintAnimationEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintAnimationEnabled + */ + public static final int TextInputLayout_hintAnimationEnabled = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintEnabled + */ + public static final int TextInputLayout_hintEnabled = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:hintTextAppearance + */ + public static final int TextInputLayout_hintTextAppearance = 2; + /** Attributes that can be used with a Toolbar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #Toolbar_android_gravity android:gravity}
{@link #Toolbar_android_minHeight android:minHeight}
{@link #Toolbar_buttonGravity net.kdt.pojavlaunch:buttonGravity}
{@link #Toolbar_collapseContentDescription net.kdt.pojavlaunch:collapseContentDescription}
{@link #Toolbar_collapseIcon net.kdt.pojavlaunch:collapseIcon}
{@link #Toolbar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #Toolbar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #Toolbar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #Toolbar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #Toolbar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #Toolbar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #Toolbar_logo net.kdt.pojavlaunch:logo}
{@link #Toolbar_logoDescription net.kdt.pojavlaunch:logoDescription}
{@link #Toolbar_maxButtonHeight net.kdt.pojavlaunch:maxButtonHeight}
{@link #Toolbar_navigationContentDescription net.kdt.pojavlaunch:navigationContentDescription}
{@link #Toolbar_navigationIcon net.kdt.pojavlaunch:navigationIcon}
{@link #Toolbar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #Toolbar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #Toolbar_subtitleTextAppearance net.kdt.pojavlaunch:subtitleTextAppearance}
{@link #Toolbar_subtitleTextColor net.kdt.pojavlaunch:subtitleTextColor}
{@link #Toolbar_title net.kdt.pojavlaunch:title}
{@link #Toolbar_titleMargin net.kdt.pojavlaunch:titleMargin}
{@link #Toolbar_titleMarginBottom net.kdt.pojavlaunch:titleMarginBottom}
{@link #Toolbar_titleMarginEnd net.kdt.pojavlaunch:titleMarginEnd}
{@link #Toolbar_titleMarginStart net.kdt.pojavlaunch:titleMarginStart}
{@link #Toolbar_titleMarginTop net.kdt.pojavlaunch:titleMarginTop}
{@link #Toolbar_titleMargins net.kdt.pojavlaunch:titleMargins}
{@link #Toolbar_titleTextAppearance net.kdt.pojavlaunch:titleTextAppearance}
{@link #Toolbar_titleTextColor net.kdt.pojavlaunch:titleTextColor}
+ @see #Toolbar_android_gravity + @see #Toolbar_android_minHeight + @see #Toolbar_buttonGravity + @see #Toolbar_collapseContentDescription + @see #Toolbar_collapseIcon + @see #Toolbar_contentInsetEnd + @see #Toolbar_contentInsetEndWithActions + @see #Toolbar_contentInsetLeft + @see #Toolbar_contentInsetRight + @see #Toolbar_contentInsetStart + @see #Toolbar_contentInsetStartWithNavigation + @see #Toolbar_logo + @see #Toolbar_logoDescription + @see #Toolbar_maxButtonHeight + @see #Toolbar_navigationContentDescription + @see #Toolbar_navigationIcon + @see #Toolbar_popupTheme + @see #Toolbar_subtitle + @see #Toolbar_subtitleTextAppearance + @see #Toolbar_subtitleTextColor + @see #Toolbar_title + @see #Toolbar_titleMargin + @see #Toolbar_titleMarginBottom + @see #Toolbar_titleMarginEnd + @see #Toolbar_titleMarginStart + @see #Toolbar_titleMarginTop + @see #Toolbar_titleMargins + @see #Toolbar_titleTextAppearance + @see #Toolbar_titleTextColor + */ + public static final int[] Toolbar = { + 0x010100af, 0x01010140, 0x7f010051, 0x7f010054, + 0x7f010058, 0x7f010064, 0x7f010065, 0x7f010066, + 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006b, + 0x7f010119, 0x7f01011a, 0x7f01011b, 0x7f01011c, + 0x7f01011d, 0x7f01011e, 0x7f01011f, 0x7f010120, + 0x7f010121, 0x7f010122, 0x7f010123, 0x7f010124, + 0x7f010125, 0x7f010126, 0x7f010127, 0x7f010128, + 0x7f010129 + }; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:gravity + */ + public static final int Toolbar_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#minHeight} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:minHeight + */ + public static final int Toolbar_android_minHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonGravity} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ @attr name net.kdt.pojavlaunch:buttonGravity + */ + public static final int Toolbar_buttonGravity = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:collapseContentDescription + */ + public static final int Toolbar_collapseContentDescription = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapseIcon + */ + public static final int Toolbar_collapseIcon = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int Toolbar_contentInsetEnd = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int Toolbar_contentInsetEndWithActions = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int Toolbar_contentInsetLeft = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int Toolbar_contentInsetRight = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int Toolbar_contentInsetStart = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int Toolbar_contentInsetStartWithNavigation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int Toolbar_logo = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logoDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:logoDescription + */ + public static final int Toolbar_logoDescription = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxButtonHeight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxButtonHeight + */ + public static final int Toolbar_maxButtonHeight = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:navigationContentDescription + */ + public static final int Toolbar_navigationContentDescription = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:navigationIcon + */ + public static final int Toolbar_navigationIcon = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Toolbar_popupTheme = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int Toolbar_subtitle = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextAppearance + */ + public static final int Toolbar_subtitleTextAppearance = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitleTextColor + */ + public static final int Toolbar_subtitleTextColor = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int Toolbar_title = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargin} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargin + */ + public static final int Toolbar_titleMargin = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginBottom} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginBottom + */ + public static final int Toolbar_titleMarginBottom = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginEnd + */ + public static final int Toolbar_titleMarginEnd = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginStart + */ + public static final int Toolbar_titleMarginStart = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginTop} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginTop + */ + public static final int Toolbar_titleMarginTop = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargins} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargins + */ + public static final int Toolbar_titleMargins = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextAppearance + */ + public static final int Toolbar_titleTextAppearance = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleTextColor + */ + public static final int Toolbar_titleTextColor = 27; + /** Attributes that can be used with a View. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #View_android_focusable android:focusable}
{@link #View_android_theme android:theme}
{@link #View_paddingEnd net.kdt.pojavlaunch:paddingEnd}
{@link #View_paddingStart net.kdt.pojavlaunch:paddingStart}
{@link #View_theme net.kdt.pojavlaunch:theme}
+ @see #View_android_focusable + @see #View_android_theme + @see #View_paddingEnd + @see #View_paddingStart + @see #View_theme + */ + public static final int[] View = { + 0x01010000, 0x010100da, 0x7f01012a, 0x7f01012b, + 0x7f01012c + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #View} array. + @attr name android:focusable + */ + public static final int View_android_focusable = 1; + /** +

This symbol is the offset where the {@link android.R.attr#theme} + attribute's value can be found in the {@link #View} array. + @attr name android:theme + */ + public static final int View_android_theme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingEnd} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingEnd + */ + public static final int View_paddingEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingStart} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingStart + */ + public static final int View_paddingStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#theme} + attribute's value can be found in the {@link #View} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:theme + */ + public static final int View_theme = 4; + /** Attributes that can be used with a ViewBackgroundHelper. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewBackgroundHelper_android_background android:background}
{@link #ViewBackgroundHelper_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #ViewBackgroundHelper_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
+ @see #ViewBackgroundHelper_android_background + @see #ViewBackgroundHelper_backgroundTint + @see #ViewBackgroundHelper_backgroundTintMode + */ + public static final int[] ViewBackgroundHelper = { + 0x010100d4, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + @attr name android:background + */ + public static final int ViewBackgroundHelper_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int ViewBackgroundHelper_backgroundTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int ViewBackgroundHelper_backgroundTintMode = 2; + /** Attributes that can be used with a ViewStubCompat. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewStubCompat_android_id android:id}
{@link #ViewStubCompat_android_inflatedId android:inflatedId}
{@link #ViewStubCompat_android_layout android:layout}
+ @see #ViewStubCompat_android_id + @see #ViewStubCompat_android_inflatedId + @see #ViewStubCompat_android_layout + */ + public static final int[] ViewStubCompat = { + 0x010100d0, 0x010100f2, 0x010100f3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:id + */ + public static final int ViewStubCompat_android_id = 0; + /** +

This symbol is the offset where the {@link android.R.attr#inflatedId} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:inflatedId + */ + public static final int ViewStubCompat_android_inflatedId = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:layout + */ + public static final int ViewStubCompat_android_layout = 1; + }; +} diff --git a/app/build/gen/net/kdt/pojavlaunch/BuildConfig.java b/app/build/gen/net/kdt/pojavlaunch/BuildConfig.java new file mode 100644 index 000000000..bb43d4f6d --- /dev/null +++ b/app/build/gen/net/kdt/pojavlaunch/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package net.kdt.pojavlaunch; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/app/build/gen/net/kdt/pojavlaunch/R.java b/app/build/gen/net/kdt/pojavlaunch/R.java new file mode 100644 index 000000000..1de17b38a --- /dev/null +++ b/app/build/gen/net/kdt/pojavlaunch/R.java @@ -0,0 +1,9644 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package net.kdt.pojavlaunch; + +public final class R { + public static final class anim { + public static final int abc_fade_in=0x7f040000; + public static final int abc_fade_out=0x7f040001; + public static final int abc_grow_fade_in_from_bottom=0x7f040002; + public static final int abc_popup_enter=0x7f040003; + public static final int abc_popup_exit=0x7f040004; + public static final int abc_shrink_fade_out_from_bottom=0x7f040005; + public static final int abc_slide_in_bottom=0x7f040006; + public static final int abc_slide_in_top=0x7f040007; + public static final int abc_slide_out_bottom=0x7f040008; + public static final int abc_slide_out_top=0x7f040009; + public static final int design_appbar_state_list_animator=0x7f04000a; + public static final int design_bottom_sheet_slide_in=0x7f04000b; + public static final int design_bottom_sheet_slide_out=0x7f04000c; + public static final int design_fab_in=0x7f04000d; + public static final int design_fab_out=0x7f04000e; + public static final int design_snackbar_in=0x7f04000f; + public static final int design_snackbar_out=0x7f040010; + public static final int translate_left_side=0x7f040011; + public static final int translate_right_side=0x7f040012; + } + public static final class array { + public static final int mcl_options=0x7f0c0000; + } + public static final class attr { + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarDivider=0x7f01008e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarItemBackground=0x7f01008f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarPopupTheme=0x7f010088; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ */ + public static final int actionBarSize=0x7f01008d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarSplitStyle=0x7f01008a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarStyle=0x7f010089; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabBarStyle=0x7f010084; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabStyle=0x7f010083; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTabTextStyle=0x7f010085; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarTheme=0x7f01008b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionBarWidgetTheme=0x7f01008c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionButtonStyle=0x7f0100a9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionDropDownStyle=0x7f0100a5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionLayout=0x7f0100fa; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionMenuTextAppearance=0x7f010090; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int actionMenuTextColor=0x7f010091; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeBackground=0x7f010094; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseButtonStyle=0x7f010093; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCloseDrawable=0x7f010096; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCopyDrawable=0x7f010098; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeCutDrawable=0x7f010097; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeFindDrawable=0x7f01009c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePasteDrawable=0x7f010099; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModePopupWindowStyle=0x7f01009e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSelectAllDrawable=0x7f01009a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeShareDrawable=0x7f01009b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeSplitBackground=0x7f010095; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeStyle=0x7f010092; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionModeWebSearchDrawable=0x7f01009d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowButtonStyle=0x7f010086; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int actionOverflowMenuStyle=0x7f010087; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionProviderClass=0x7f0100fc; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int actionViewClass=0x7f0100fb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int activityChooserViewStyle=0x7f0100b1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogButtonGroupStyle=0x7f0100d5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alertDialogCenterButtons=0x7f0100d6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogStyle=0x7f0100d4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int alertDialogTheme=0x7f0100d7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int allowStacking=0x7f0100ea; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int alpha=0x7f0100eb; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowHeadLength=0x7f0100f2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int arrowShaftLength=0x7f0100f3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int autoCompleteTextViewStyle=0x7f0100dc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int background=0x7f01005a; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundSplit=0x7f01005c; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int backgroundStacked=0x7f01005b; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int backgroundTint=0x7f01012d; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int backgroundTintMode=0x7f01012e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int barLength=0x7f0100f4; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_hideable=0x7f01000a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_overlapTop=0x7f010033; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_peekHeight=0x7f010009; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int behavior_skipCollapsed=0x7f01000b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int borderWidth=0x7f010029; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int borderlessButtonStyle=0x7f0100ae; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetDialogTheme=0x7f010023; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int bottomSheetStyle=0x7f010024; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarButtonStyle=0x7f0100ab; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNegativeButtonStyle=0x7f0100da; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarNeutralButtonStyle=0x7f0100db; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarPositiveButtonStyle=0x7f0100d9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonBarStyle=0x7f0100aa; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ */ + public static final int buttonGravity=0x7f010122; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonPanelSideLayout=0x7f01006f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyle=0x7f0100dd; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int buttonStyleSmall=0x7f0100de; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int buttonTint=0x7f0100ec; + /**

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ */ + public static final int buttonTintMode=0x7f0100ed; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkboxStyle=0x7f0100df; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int checkedTextViewStyle=0x7f0100e0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeIcon=0x7f010105; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int closeItemLayout=0x7f01006c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int collapseContentDescription=0x7f010124; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapseIcon=0x7f010123; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int collapsedTitleGravity=0x7f010018; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int collapsedTitleTextAppearance=0x7f010012; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int color=0x7f0100ee; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorAccent=0x7f0100cc; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorBackgroundFloating=0x7f0100d3; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorButtonNormal=0x7f0100d0; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlActivated=0x7f0100ce; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlHighlight=0x7f0100cf; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorControlNormal=0x7f0100cd; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimary=0x7f0100ca; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorPrimaryDark=0x7f0100cb; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int colorSwitchThumbNormal=0x7f0100d1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int commitIcon=0x7f01010a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEnd=0x7f010065; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetEndWithActions=0x7f010069; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetLeft=0x7f010066; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetRight=0x7f010067; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStart=0x7f010064; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentInsetStartWithNavigation=0x7f010068; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int contentScrim=0x7f010013; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int controlBackground=0x7f0100d2; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterEnabled=0x7f010049; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int counterMaxLength=0x7f01004a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterOverflowTextAppearance=0x7f01004c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int counterTextAppearance=0x7f01004b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int customNavigationLayout=0x7f01005d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int defaultQueryHint=0x7f010104; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dialogPreferredPadding=0x7f0100a3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dialogTheme=0x7f0100a2; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ */ + public static final int displayOptions=0x7f010053; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int divider=0x7f010059; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerHorizontal=0x7f0100b0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dividerPadding=0x7f0100f8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dividerVertical=0x7f0100af; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int drawableSize=0x7f0100f0; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int drawerArrowStyle=0x7f01004e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int dropDownListViewStyle=0x7f0100c2; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int dropdownListPreferredItemHeight=0x7f0100a6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextBackground=0x7f0100b7; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int editTextColor=0x7f0100b6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int editTextStyle=0x7f0100e1; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int elevation=0x7f01006a; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int errorEnabled=0x7f010047; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int errorTextAppearance=0x7f010048; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandActivityOverflowButtonDrawable=0x7f01006e; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expanded=0x7f010004; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ */ + public static final int expandedTitleGravity=0x7f010019; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMargin=0x7f01000c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginBottom=0x7f010010; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginEnd=0x7f01000f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginStart=0x7f01000d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int expandedTitleMarginTop=0x7f01000e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int expandedTitleTextAppearance=0x7f010011; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ */ + public static final int fabSize=0x7f010027; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int foregroundInsidePadding=0x7f01002b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int gapBetweenBars=0x7f0100f1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int goIcon=0x7f010106; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int headerLayout=0x7f010031; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int height=0x7f01004f; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hideOnContentScroll=0x7f010063; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintAnimationEnabled=0x7f01004d; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int hintEnabled=0x7f010046; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int hintTextAppearance=0x7f010045; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeAsUpIndicator=0x7f0100a8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int homeLayout=0x7f01005e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int icon=0x7f010057; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int iconifiedByDefault=0x7f010102; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int imageButtonStyle=0x7f0100b8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int indeterminateProgressStyle=0x7f010060; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int initialActivityCount=0x7f01006d; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int insetForeground=0x7f010032; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int isLightTheme=0x7f010050; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemBackground=0x7f01002f; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemIconTint=0x7f01002d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemPadding=0x7f010062; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int itemTextAppearance=0x7f010030; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int itemTextColor=0x7f01002e; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int keylines=0x7f01001d; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout=0x7f010101; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layoutManager=0x7f010000; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_anchor=0x7f010020; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ */ + public static final int layout_anchorGravity=0x7f010022; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_behavior=0x7f01001f; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ */ + public static final int layout_collapseMode=0x7f01001b; + /**

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_collapseParallaxMultiplier=0x7f01001c; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int layout_keyline=0x7f010021; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ */ + public static final int layout_scrollFlags=0x7f010007; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int layout_scrollInterpolator=0x7f010008; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listChoiceBackgroundIndicator=0x7f0100c9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listDividerAlertDialog=0x7f0100a4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listItemLayout=0x7f010073; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listLayout=0x7f010070; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listMenuViewStyle=0x7f0100e9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int listPopupWindowStyle=0x7f0100c3; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeight=0x7f0100bd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightLarge=0x7f0100bf; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemHeightSmall=0x7f0100be; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingLeft=0x7f0100c0; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int listPreferredItemPaddingRight=0x7f0100c1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int logo=0x7f010058; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int logoDescription=0x7f010127; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxActionInlineWidth=0x7f010034; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int maxButtonHeight=0x7f010121; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int measureWithLargestChild=0x7f0100f6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int menu=0x7f01002c; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int multiChoiceItemLayout=0x7f010071; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int navigationContentDescription=0x7f010126; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int navigationIcon=0x7f010125; + /**

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ */ + public static final int navigationMode=0x7f010052; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int overlapAnchor=0x7f0100ff; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingEnd=0x7f01012b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int paddingStart=0x7f01012a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelBackground=0x7f0100c6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int panelMenuListTheme=0x7f0100c8; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int panelMenuListWidth=0x7f0100c7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupMenuStyle=0x7f0100b4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupTheme=0x7f01006b; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int popupWindowStyle=0x7f0100b5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int preserveIconSpacing=0x7f0100fd; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int pressedTranslationZ=0x7f010028; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int progressBarPadding=0x7f010061; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int progressBarStyle=0x7f01005f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int queryBackground=0x7f01010c; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int queryHint=0x7f010103; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int radioButtonStyle=0x7f0100e2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyle=0x7f0100e3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleIndicator=0x7f0100e4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int ratingBarStyleSmall=0x7f0100e5; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int reverseLayout=0x7f010002; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int rippleColor=0x7f010026; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimAnimationDuration=0x7f010017; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int scrimVisibleHeightTrigger=0x7f010016; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchHintIcon=0x7f010108; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchIcon=0x7f010107; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int searchViewStyle=0x7f0100bc; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int seekBarStyle=0x7f0100e6; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackground=0x7f0100ac; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int selectableItemBackgroundBorderless=0x7f0100ad; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ */ + public static final int showAsAction=0x7f0100f9; + /**

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ */ + public static final int showDividers=0x7f0100f7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int showText=0x7f010118; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int singleChoiceItemLayout=0x7f010072; + /**

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spanCount=0x7f010001; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int spinBars=0x7f0100ef; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerDropDownItemStyle=0x7f0100a7; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int spinnerStyle=0x7f0100e7; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int splitTrack=0x7f010117; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int srcCompat=0x7f010074; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int stackFromEnd=0x7f010003; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_above_anchor=0x7f010100; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsed=0x7f010005; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int state_collapsible=0x7f010006; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int statusBarBackground=0x7f01001e; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int statusBarScrim=0x7f010014; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subMenuArrow=0x7f0100fe; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int submitBackground=0x7f01010d; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitle=0x7f010054; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextAppearance=0x7f01011a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int subtitleTextColor=0x7f010129; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int subtitleTextStyle=0x7f010056; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int suggestionRowLayout=0x7f01010b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchMinWidth=0x7f010115; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int switchPadding=0x7f010116; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchStyle=0x7f0100e8; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int switchTextAppearance=0x7f010114; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabBackground=0x7f010038; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabContentStart=0x7f010037; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ */ + public static final int tabGravity=0x7f01003a; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorColor=0x7f010035; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabIndicatorHeight=0x7f010036; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMaxWidth=0x7f01003c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabMinWidth=0x7f01003b; + /**

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ */ + public static final int tabMode=0x7f010039; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPadding=0x7f010044; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingBottom=0x7f010043; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingEnd=0x7f010042; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingStart=0x7f010040; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabPaddingTop=0x7f010041; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabSelectedTextColor=0x7f01003f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tabTextAppearance=0x7f01003d; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tabTextColor=0x7f01003e; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + */ + public static final int textAllCaps=0x7f010078; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceLargePopupMenu=0x7f01009f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItem=0x7f0100c4; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceListItemSmall=0x7f0100c5; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearancePopupMenuHeader=0x7f0100a1; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultSubtitle=0x7f0100ba; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSearchResultTitle=0x7f0100b9; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int textAppearanceSmallPopupMenu=0x7f0100a0; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorAlertDialogListItem=0x7f0100d8; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int textColorError=0x7f010025; + /**

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + */ + public static final int textColorSearchUrl=0x7f0100bb; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int theme=0x7f01012c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thickness=0x7f0100f5; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTextPadding=0x7f010113; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int thumbTint=0x7f01010e; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int thumbTintMode=0x7f01010f; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int tickMark=0x7f010075; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int tickMarkTint=0x7f010076; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int tickMarkTintMode=0x7f010077; + /**

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int title=0x7f010051; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleEnabled=0x7f01001a; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargin=0x7f01011b; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginBottom=0x7f01011f; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginEnd=0x7f01011d; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginStart=0x7f01011c; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMarginTop=0x7f01011e; + /**

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleMargins=0x7f010120; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextAppearance=0x7f010119; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int titleTextColor=0x7f010128; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int titleTextStyle=0x7f010055; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarId=0x7f010015; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarNavigationButtonStyle=0x7f0100b3; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int toolbarStyle=0x7f0100b2; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int track=0x7f010110; + /**

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int trackTint=0x7f010111; + /**

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ */ + public static final int trackTintMode=0x7f010112; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int useCompatPadding=0x7f01002a; + /**

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + */ + public static final int voiceIcon=0x7f010109; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBar=0x7f010079; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionBarOverlay=0x7f01007b; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowActionModeOverlay=0x7f01007c; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMajor=0x7f010080; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedHeightMinor=0x7f01007e; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMajor=0x7f01007d; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowFixedWidthMinor=0x7f01007f; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMajor=0x7f010081; + /**

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowMinWidthMinor=0x7f010082; + /**

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + */ + public static final int windowNoTitle=0x7f01007a; + } + public static final class bool { + public static final int abc_action_bar_embed_tabs=0x7f0b0000; + public static final int abc_allow_stacked_button_bar=0x7f0b0001; + public static final int abc_config_actionMenuItemAllCaps=0x7f0b0002; + public static final int abc_config_closeDialogWhenTouchOutside=0x7f0b0003; + public static final int abc_config_showMenuShortcutsWhenKeyboardPresent=0x7f0b0004; + } + public static final class color { + public static final int abc_background_cache_hint_selector_material_dark=0x7f090044; + public static final int abc_background_cache_hint_selector_material_light=0x7f090045; + public static final int abc_btn_colored_borderless_text_material=0x7f090046; + public static final int abc_color_highlight_material=0x7f090047; + public static final int abc_input_method_navigation_guard=0x7f09000a; + public static final int abc_primary_text_disable_only_material_dark=0x7f090048; + public static final int abc_primary_text_disable_only_material_light=0x7f090049; + public static final int abc_primary_text_material_dark=0x7f09004a; + public static final int abc_primary_text_material_light=0x7f09004b; + public static final int abc_search_url_text=0x7f09004c; + public static final int abc_search_url_text_normal=0x7f09000b; + public static final int abc_search_url_text_pressed=0x7f09000c; + public static final int abc_search_url_text_selected=0x7f09000d; + public static final int abc_secondary_text_material_dark=0x7f09004d; + public static final int abc_secondary_text_material_light=0x7f09004e; + public static final int abc_tint_btn_checkable=0x7f09004f; + public static final int abc_tint_default=0x7f090050; + public static final int abc_tint_edittext=0x7f090051; + public static final int abc_tint_seek_thumb=0x7f090052; + public static final int abc_tint_spinner=0x7f090053; + public static final int abc_tint_switch_thumb=0x7f090054; + public static final int abc_tint_switch_track=0x7f090055; + public static final int accent_material_dark=0x7f09000e; + public static final int accent_material_light=0x7f09000f; + public static final int background_floating_material_dark=0x7f090010; + public static final int background_floating_material_light=0x7f090011; + public static final int background_material_dark=0x7f090012; + public static final int background_material_light=0x7f090013; + public static final int bright_foreground_disabled_material_dark=0x7f090014; + public static final int bright_foreground_disabled_material_light=0x7f090015; + public static final int bright_foreground_inverse_material_dark=0x7f090016; + public static final int bright_foreground_inverse_material_light=0x7f090017; + public static final int bright_foreground_material_dark=0x7f090018; + public static final int bright_foreground_material_light=0x7f090019; + public static final int button_material_dark=0x7f09001a; + public static final int button_material_light=0x7f09001b; + public static final int design_fab_shadow_end_color=0x7f090000; + public static final int design_fab_shadow_mid_color=0x7f090001; + public static final int design_fab_shadow_start_color=0x7f090002; + public static final int design_fab_stroke_end_inner_color=0x7f090003; + public static final int design_fab_stroke_end_outer_color=0x7f090004; + public static final int design_fab_stroke_top_inner_color=0x7f090005; + public static final int design_fab_stroke_top_outer_color=0x7f090006; + public static final int design_snackbar_background_color=0x7f090007; + public static final int design_textinput_error_color_dark=0x7f090008; + public static final int design_textinput_error_color_light=0x7f090009; + public static final int dim_foreground_disabled_material_dark=0x7f09001c; + public static final int dim_foreground_disabled_material_light=0x7f09001d; + public static final int dim_foreground_material_dark=0x7f09001e; + public static final int dim_foreground_material_light=0x7f09001f; + public static final int foreground_material_dark=0x7f090020; + public static final int foreground_material_light=0x7f090021; + public static final int highlighted_text_material_dark=0x7f090022; + public static final int highlighted_text_material_light=0x7f090023; + public static final int hint_foreground_material_dark=0x7f090024; + public static final int hint_foreground_material_light=0x7f090025; + public static final int material_blue_grey_800=0x7f090026; + public static final int material_blue_grey_900=0x7f090027; + public static final int material_blue_grey_950=0x7f090028; + public static final int material_deep_teal_200=0x7f090029; + public static final int material_deep_teal_500=0x7f09002a; + public static final int material_grey_100=0x7f09002b; + public static final int material_grey_300=0x7f09002c; + public static final int material_grey_50=0x7f09002d; + public static final int material_grey_600=0x7f09002e; + public static final int material_grey_800=0x7f09002f; + public static final int material_grey_850=0x7f090030; + public static final int material_grey_900=0x7f090031; + public static final int primary_dark_material_dark=0x7f090032; + public static final int primary_dark_material_light=0x7f090033; + public static final int primary_material_dark=0x7f090034; + public static final int primary_material_light=0x7f090035; + public static final int primary_text_default_material_dark=0x7f090036; + public static final int primary_text_default_material_light=0x7f090037; + public static final int primary_text_disabled_material_dark=0x7f090038; + public static final int primary_text_disabled_material_light=0x7f090039; + public static final int ripple_material_dark=0x7f09003a; + public static final int ripple_material_light=0x7f09003b; + public static final int secondary_text_default_material_dark=0x7f09003c; + public static final int secondary_text_default_material_light=0x7f09003d; + public static final int secondary_text_disabled_material_dark=0x7f09003e; + public static final int secondary_text_disabled_material_light=0x7f09003f; + public static final int switch_thumb_disabled_material_dark=0x7f090040; + public static final int switch_thumb_disabled_material_light=0x7f090041; + public static final int switch_thumb_material_dark=0x7f090056; + public static final int switch_thumb_material_light=0x7f090057; + public static final int switch_thumb_normal_material_dark=0x7f090042; + public static final int switch_thumb_normal_material_light=0x7f090043; + } + public static final class dimen { + public static final int abc_action_bar_content_inset_material=0x7f05002c; + public static final int abc_action_bar_content_inset_with_nav=0x7f05002d; + public static final int abc_action_bar_default_height_material=0x7f050021; + public static final int abc_action_bar_default_padding_end_material=0x7f05002e; + public static final int abc_action_bar_default_padding_start_material=0x7f05002f; + public static final int abc_action_bar_icon_vertical_padding_material=0x7f050031; + public static final int abc_action_bar_overflow_padding_end_material=0x7f050032; + public static final int abc_action_bar_overflow_padding_start_material=0x7f050033; + public static final int abc_action_bar_progress_bar_size=0x7f050022; + public static final int abc_action_bar_stacked_max_height=0x7f050034; + public static final int abc_action_bar_stacked_tab_max_width=0x7f050035; + public static final int abc_action_bar_subtitle_bottom_margin_material=0x7f050036; + public static final int abc_action_bar_subtitle_top_margin_material=0x7f050037; + public static final int abc_action_button_min_height_material=0x7f050038; + public static final int abc_action_button_min_width_material=0x7f050039; + public static final int abc_action_button_min_width_overflow_material=0x7f05003a; + public static final int abc_alert_dialog_button_bar_height=0x7f050020; + public static final int abc_button_inset_horizontal_material=0x7f05003b; + public static final int abc_button_inset_vertical_material=0x7f05003c; + public static final int abc_button_padding_horizontal_material=0x7f05003d; + public static final int abc_button_padding_vertical_material=0x7f05003e; + public static final int abc_cascading_menus_min_smallest_width=0x7f05003f; + public static final int abc_config_prefDialogWidth=0x7f050025; + public static final int abc_control_corner_material=0x7f050040; + public static final int abc_control_inset_material=0x7f050041; + public static final int abc_control_padding_material=0x7f050042; + public static final int abc_dialog_fixed_height_major=0x7f050026; + public static final int abc_dialog_fixed_height_minor=0x7f050027; + public static final int abc_dialog_fixed_width_major=0x7f050028; + public static final int abc_dialog_fixed_width_minor=0x7f050029; + public static final int abc_dialog_list_padding_vertical_material=0x7f050043; + public static final int abc_dialog_min_width_major=0x7f05002a; + public static final int abc_dialog_min_width_minor=0x7f05002b; + public static final int abc_dialog_padding_material=0x7f050044; + public static final int abc_dialog_padding_top_material=0x7f050045; + public static final int abc_disabled_alpha_material_dark=0x7f050046; + public static final int abc_disabled_alpha_material_light=0x7f050047; + public static final int abc_dropdownitem_icon_width=0x7f050048; + public static final int abc_dropdownitem_text_padding_left=0x7f050049; + public static final int abc_dropdownitem_text_padding_right=0x7f05004a; + public static final int abc_edit_text_inset_bottom_material=0x7f05004b; + public static final int abc_edit_text_inset_horizontal_material=0x7f05004c; + public static final int abc_edit_text_inset_top_material=0x7f05004d; + public static final int abc_floating_window_z=0x7f05004e; + public static final int abc_list_item_padding_horizontal_material=0x7f05004f; + public static final int abc_panel_menu_list_width=0x7f050050; + public static final int abc_progress_bar_height_material=0x7f050051; + public static final int abc_search_view_preferred_height=0x7f050052; + public static final int abc_search_view_preferred_width=0x7f050053; + public static final int abc_seekbar_track_background_height_material=0x7f050054; + public static final int abc_seekbar_track_progress_height_material=0x7f050055; + public static final int abc_select_dialog_padding_start_material=0x7f050056; + public static final int abc_switch_padding=0x7f050030; + public static final int abc_text_size_body_1_material=0x7f050057; + public static final int abc_text_size_body_2_material=0x7f050058; + public static final int abc_text_size_button_material=0x7f050059; + public static final int abc_text_size_caption_material=0x7f05005a; + public static final int abc_text_size_display_1_material=0x7f05005b; + public static final int abc_text_size_display_2_material=0x7f05005c; + public static final int abc_text_size_display_3_material=0x7f05005d; + public static final int abc_text_size_display_4_material=0x7f05005e; + public static final int abc_text_size_headline_material=0x7f05005f; + public static final int abc_text_size_large_material=0x7f050060; + public static final int abc_text_size_medium_material=0x7f050061; + public static final int abc_text_size_menu_header_material=0x7f050062; + public static final int abc_text_size_menu_material=0x7f050063; + public static final int abc_text_size_small_material=0x7f050064; + public static final int abc_text_size_subhead_material=0x7f050065; + public static final int abc_text_size_subtitle_material_toolbar=0x7f050023; + public static final int abc_text_size_title_material=0x7f050066; + public static final int abc_text_size_title_material_toolbar=0x7f050024; + /** Default screen margins, per the Android Design guidelines. + */ + public static final int activity_horizontal_margin=0x7f05006f; + public static final int activity_vertical_margin=0x7f050070; + public static final int design_appbar_elevation=0x7f05000b; + public static final int design_bottom_sheet_modal_elevation=0x7f05000c; + public static final int design_bottom_sheet_modal_peek_height=0x7f05000d; + public static final int design_fab_border_width=0x7f05000e; + public static final int design_fab_elevation=0x7f05000f; + public static final int design_fab_image_size=0x7f050010; + public static final int design_fab_size_mini=0x7f050011; + public static final int design_fab_size_normal=0x7f050012; + public static final int design_fab_translation_z_pressed=0x7f050013; + public static final int design_navigation_elevation=0x7f050014; + public static final int design_navigation_icon_padding=0x7f050015; + public static final int design_navigation_icon_size=0x7f050016; + public static final int design_navigation_max_width=0x7f050003; + public static final int design_navigation_padding_bottom=0x7f050017; + public static final int design_navigation_separator_vertical_padding=0x7f050018; + public static final int design_snackbar_action_inline_max_width=0x7f050004; + public static final int design_snackbar_background_corner_radius=0x7f050005; + public static final int design_snackbar_elevation=0x7f050019; + public static final int design_snackbar_extra_spacing_horizontal=0x7f050006; + public static final int design_snackbar_max_width=0x7f050007; + public static final int design_snackbar_min_width=0x7f050008; + public static final int design_snackbar_padding_horizontal=0x7f05001a; + public static final int design_snackbar_padding_vertical=0x7f05001b; + public static final int design_snackbar_padding_vertical_2lines=0x7f050009; + public static final int design_snackbar_text_size=0x7f05001c; + public static final int design_tab_max_width=0x7f05001d; + public static final int design_tab_scrollable_min_width=0x7f05000a; + public static final int design_tab_text_size=0x7f05001e; + public static final int design_tab_text_size_2line=0x7f05001f; + public static final int disabled_alpha_material_dark=0x7f050067; + public static final int disabled_alpha_material_light=0x7f050068; + public static final int empty_icon_height=0x7f050079; + /** Main Activity components + */ + public static final int empty_icon_width=0x7f050078; + public static final int highlight_alpha_material_colored=0x7f050069; + public static final int highlight_alpha_material_dark=0x7f05006a; + public static final int highlight_alpha_material_light=0x7f05006b; + public static final int item_touch_helper_max_drag_scroll_per_frame=0x7f050000; + public static final int item_touch_helper_swipe_escape_max_velocity=0x7f050001; + public static final int item_touch_helper_swipe_escape_velocity=0x7f050002; + public static final int navigation_header_height=0x7f05007a; + public static final int navigation_item_height=0x7f05007b; + public static final int navigation_item_icon_size=0x7f05007c; + public static final int notification_large_icon_height=0x7f05006c; + public static final int notification_large_icon_width=0x7f05006d; + public static final int notification_subtext_size=0x7f05006e; + public static final int padding_extra_extra_large=0x7f050077; + public static final int padding_extra_large=0x7f050076; + public static final int padding_large=0x7f050075; + public static final int padding_medium=0x7f050074; + public static final int padding_small=0x7f050073; + /** Padding + */ + public static final int padding_tiny=0x7f050071; + public static final int padding_tiny_plus_one=0x7f050072; + } + public static final class drawable { + public static final int abc_ab_share_pack_mtrl_alpha=0x7f020000; + public static final int abc_action_bar_item_background_material=0x7f020001; + public static final int abc_btn_borderless_material=0x7f020002; + public static final int abc_btn_check_material=0x7f020003; + public static final int abc_btn_check_to_on_mtrl_000=0x7f020004; + public static final int abc_btn_check_to_on_mtrl_015=0x7f020005; + public static final int abc_btn_colored_material=0x7f020006; + public static final int abc_btn_default_mtrl_shape=0x7f020007; + public static final int abc_btn_radio_material=0x7f020008; + public static final int abc_btn_radio_to_on_mtrl_000=0x7f020009; + public static final int abc_btn_radio_to_on_mtrl_015=0x7f02000a; + public static final int abc_btn_switch_to_on_mtrl_00001=0x7f02000b; + public static final int abc_btn_switch_to_on_mtrl_00012=0x7f02000c; + public static final int abc_cab_background_internal_bg=0x7f02000d; + public static final int abc_cab_background_top_material=0x7f02000e; + public static final int abc_cab_background_top_mtrl_alpha=0x7f02000f; + public static final int abc_control_background_material=0x7f020010; + public static final int abc_dialog_material_background=0x7f020011; + public static final int abc_edit_text_material=0x7f020012; + public static final int abc_ic_ab_back_material=0x7f020013; + public static final int abc_ic_arrow_drop_right_black_24dp=0x7f020014; + public static final int abc_ic_clear_material=0x7f020015; + public static final int abc_ic_commit_search_api_mtrl_alpha=0x7f020016; + public static final int abc_ic_go_search_api_material=0x7f020017; + public static final int abc_ic_menu_copy_mtrl_am_alpha=0x7f020018; + public static final int abc_ic_menu_cut_mtrl_alpha=0x7f020019; + public static final int abc_ic_menu_overflow_material=0x7f02001a; + public static final int abc_ic_menu_paste_mtrl_am_alpha=0x7f02001b; + public static final int abc_ic_menu_selectall_mtrl_alpha=0x7f02001c; + public static final int abc_ic_menu_share_mtrl_alpha=0x7f02001d; + public static final int abc_ic_search_api_material=0x7f02001e; + public static final int abc_ic_star_black_16dp=0x7f02001f; + public static final int abc_ic_star_black_36dp=0x7f020020; + public static final int abc_ic_star_black_48dp=0x7f020021; + public static final int abc_ic_star_half_black_16dp=0x7f020022; + public static final int abc_ic_star_half_black_36dp=0x7f020023; + public static final int abc_ic_star_half_black_48dp=0x7f020024; + public static final int abc_ic_voice_search_api_material=0x7f020025; + public static final int abc_item_background_holo_dark=0x7f020026; + public static final int abc_item_background_holo_light=0x7f020027; + public static final int abc_list_divider_mtrl_alpha=0x7f020028; + public static final int abc_list_focused_holo=0x7f020029; + public static final int abc_list_longpressed_holo=0x7f02002a; + public static final int abc_list_pressed_holo_dark=0x7f02002b; + public static final int abc_list_pressed_holo_light=0x7f02002c; + public static final int abc_list_selector_background_transition_holo_dark=0x7f02002d; + public static final int abc_list_selector_background_transition_holo_light=0x7f02002e; + public static final int abc_list_selector_disabled_holo_dark=0x7f02002f; + public static final int abc_list_selector_disabled_holo_light=0x7f020030; + public static final int abc_list_selector_holo_dark=0x7f020031; + public static final int abc_list_selector_holo_light=0x7f020032; + public static final int abc_menu_hardkey_panel_mtrl_mult=0x7f020033; + public static final int abc_popup_background_mtrl_mult=0x7f020034; + public static final int abc_ratingbar_indicator_material=0x7f020035; + public static final int abc_ratingbar_material=0x7f020036; + public static final int abc_ratingbar_small_material=0x7f020037; + public static final int abc_scrubber_control_off_mtrl_alpha=0x7f020038; + public static final int abc_scrubber_control_to_pressed_mtrl_000=0x7f020039; + public static final int abc_scrubber_control_to_pressed_mtrl_005=0x7f02003a; + public static final int abc_scrubber_primary_mtrl_alpha=0x7f02003b; + public static final int abc_scrubber_track_mtrl_alpha=0x7f02003c; + public static final int abc_seekbar_thumb_material=0x7f02003d; + public static final int abc_seekbar_tick_mark_material=0x7f02003e; + public static final int abc_seekbar_track_material=0x7f02003f; + public static final int abc_spinner_mtrl_am_alpha=0x7f020040; + public static final int abc_spinner_textfield_background_material=0x7f020041; + public static final int abc_switch_thumb_material=0x7f020042; + public static final int abc_switch_track_mtrl_alpha=0x7f020043; + public static final int abc_tab_indicator_material=0x7f020044; + public static final int abc_tab_indicator_mtrl_alpha=0x7f020045; + public static final int abc_text_cursor_material=0x7f020046; + public static final int abc_textfield_activated_mtrl_alpha=0x7f020047; + public static final int abc_textfield_default_mtrl_alpha=0x7f020048; + public static final int abc_textfield_search_activated_mtrl_alpha=0x7f020049; + public static final int abc_textfield_search_default_mtrl_alpha=0x7f02004a; + public static final int abc_textfield_search_material=0x7f02004b; + public static final int bg_wool_dark=0x7f02004c; + public static final int bitmap_wool_dark=0x7f02004d; + public static final int border_edittext=0x7f02004e; + public static final int control_button=0x7f02004f; + public static final int control_button_normal=0x7f020050; + public static final int control_button_pressed=0x7f020051; + public static final int design_fab_background=0x7f020052; + public static final int design_snackbar_background=0x7f020053; + public static final int ic_close=0x7f020054; + public static final int ic_file=0x7f020055; + public static final int ic_folder=0x7f020056; + public static final int ic_launcher=0x7f020057; + public static final int ic_minimize=0x7f020058; + public static final int logo=0x7f020059; + public static final int mcbtn_normal=0x7f02005a; + public static final int mcbtn_pressed=0x7f02005b; + public static final int mcbutton=0x7f02005c; + public static final int menu_hamburger=0x7f02005d; + public static final int mojang_logo=0x7f02005e; + public static final int mouse_pointer=0x7f02005f; + public static final int notification_template_icon_bg=0x7f020060; + } + public static final class id { + public static final int action0=0x7f06009b; + public static final int action_bar=0x7f06005d; + public static final int action_bar_activity_content=0x7f060002; + public static final int action_bar_container=0x7f06005c; + public static final int action_bar_root=0x7f060058; + public static final int action_bar_spinner=0x7f060003; + public static final int action_bar_subtitle=0x7f06003d; + public static final int action_bar_title=0x7f06003c; + public static final int action_context_bar=0x7f06005e; + public static final int action_divider=0x7f06009f; + public static final int action_menu_divider=0x7f060004; + public static final int action_menu_presenter=0x7f060005; + public static final int action_mode_bar=0x7f06005a; + public static final int action_mode_bar_stub=0x7f060059; + public static final int action_mode_close_button=0x7f06003e; + public static final int activity_chooser_view_content=0x7f06003f; + public static final int add=0x7f06002e; + public static final int alertTitle=0x7f06004b; + public static final int always=0x7f060037; + public static final int auto=0x7f060021; + public static final int beginning=0x7f060035; + public static final int bottom=0x7f060010; + public static final int bottombar_author_logo=0x7f06006d; + public static final int bottombar_version_view=0x7f06006c; + public static final int buttonPanel=0x7f060046; + public static final int cancel_action=0x7f06009c; + public static final int center=0x7f060011; + public static final int center_horizontal=0x7f060012; + public static final int center_vertical=0x7f060013; + public static final int checkbox=0x7f060054; + public static final int chronometer=0x7f0600a2; + public static final int clip_horizontal=0x7f06001d; + public static final int clip_vertical=0x7f06001e; + public static final int collapseActionView=0x7f060038; + public static final int contentPanel=0x7f06004c; + public static final int content_frame=0x7f060090; + public static final int content_log_close_button=0x7f060097; + public static final int content_log_layout=0x7f060096; + public static final int content_log_scroll=0x7f060099; + public static final int content_log_toggle_scrolldown=0x7f060098; + public static final int control_debug=0x7f0600a8; + public static final int control_down=0x7f0600ae; + public static final int control_inventory=0x7f0600b6; + public static final int control_jump=0x7f0600b2; + public static final int control_keyboard=0x7f0600aa; + public static final int control_left=0x7f0600b0; + public static final int control_listplayers=0x7f0600ad; + public static final int control_mouse_toggle=0x7f0600b7; + public static final int control_primary=0x7f0600b3; + public static final int control_right=0x7f0600b1; + public static final int control_screenshot=0x7f0600ac; + public static final int control_secondary=0x7f0600b4; + public static final int control_shift=0x7f0600b5; + public static final int control_talk=0x7f0600a9; + public static final int control_thirdperson=0x7f0600ab; + public static final int control_up=0x7f0600af; + public static final int custom=0x7f060052; + public static final int customPanel=0x7f060051; + public static final int decor_content_parent=0x7f06005b; + public static final int default_activity_button=0x7f060042; + public static final int design_bottom_sheet=0x7f06006f; + public static final int design_menu_item_action_area=0x7f060076; + public static final int design_menu_item_action_area_stub=0x7f060075; + public static final int design_menu_item_text=0x7f060074; + public static final int design_navigation_view=0x7f060073; + public static final int disableHome=0x7f060028; + public static final int edit_query=0x7f06005f; + public static final int end=0x7f060014; + public static final int end_padder=0x7f0600a7; + public static final int enterAlways=0x7f06000b; + public static final int enterAlwaysCollapsed=0x7f06000c; + public static final int exitUntilCollapsed=0x7f06000d; + public static final int expand_activities_button=0x7f060040; + public static final int expanded_menu=0x7f060053; + public static final int fill=0x7f06001f; + public static final int fill_horizontal=0x7f060020; + public static final int fill_vertical=0x7f060015; + public static final int fixed=0x7f060024; + public static final int home=0x7f060006; + public static final int homeAsUp=0x7f060029; + public static final int icon=0x7f060044; + public static final int ifRoom=0x7f060039; + public static final int image=0x7f060041; + public static final int info=0x7f0600a6; + public static final int item_touch_helper_previous_elevation=0x7f060000; + public static final int lMTVVer=0x7f060082; + public static final int launcherAccEmail=0x7f060077; + public static final int launcherAccOffSwitch=0x7f06007a; + public static final int launcherAccPassword=0x7f060078; + public static final int launcherAccProgress=0x7f06007b; + public static final int launcherAccRememberSwitch=0x7f060079; + public static final int launcherAccUsername=0x7f06008b; + public static final int launcherMainExitbtns=0x7f060088; + public static final int launcherMainLeftLayout=0x7f060081; + public static final int launcherMainPlayButton=0x7f060084; + public static final int launcherMainRightLayout=0x7f060085; + public static final int launcherMainSelectVersion=0x7f060083; + public static final int launcherMainUsernameView=0x7f060086; + public static final int launcherMainVersionView=0x7f060087; + public static final int launchermainFragmentTabView=0x7f06007c; + public static final int launchermainTabLayout=0x7f06007d; + public static final int launchermainTabPager=0x7f06007e; + public static final int launcherupdateLogView=0x7f06008a; + public static final int launcherupdateProgressBar=0x7f060089; + public static final int left=0x7f060016; + public static final int line1=0x7f0600a0; + public static final int line3=0x7f0600a4; + public static final int listMode=0x7f060026; + public static final int list_item=0x7f060043; + public static final int lmaintabconsoleLogCrashTextView=0x7f06008d; + public static final int lmaintabconsoleLogTextView=0x7f06008c; + public static final int lmaintabnewsNewsView=0x7f06008e; + public static final int main_control_overlay=0x7f060095; + public static final int main_drawer_options=0x7f06008f; + public static final int main_game_render_view=0x7f060092; + public static final int main_log_behind_GL=0x7f060091; + public static final int main_mouse_pointer=0x7f060094; + public static final int main_navigation_view=0x7f06009a; + public static final int main_touchpad=0x7f060093; + public static final int media_actions=0x7f06009e; + public static final int middle=0x7f060036; + public static final int mini=0x7f060022; + public static final int multiply=0x7f06002f; + public static final int nav_forceclose=0x7f0600c0; + public static final int nav_more3=0x7f0600c3; + public static final int nav_viewcanvas=0x7f0600c2; + public static final int nav_viewlog=0x7f0600c1; + public static final int navigation_header_container=0x7f060072; + public static final int never=0x7f06003a; + public static final int none=0x7f06001a; + public static final int normal=0x7f060023; + public static final int parallax=0x7f06001b; + public static final int parentPanel=0x7f060048; + public static final int pin=0x7f06001c; + public static final int progressDownloadBar=0x7f06007f; + public static final int progressDownloadText=0x7f060080; + public static final int progress_circular=0x7f060007; + public static final int progress_horizontal=0x7f060008; + public static final int radio=0x7f060056; + public static final int right=0x7f060017; + public static final int screen=0x7f060030; + public static final int scroll=0x7f06000e; + public static final int scrollIndicatorDown=0x7f060050; + public static final int scrollIndicatorUp=0x7f06004d; + public static final int scrollView=0x7f06004e; + public static final int scrollable=0x7f060025; + public static final int search_badge=0x7f060061; + public static final int search_bar=0x7f060060; + public static final int search_button=0x7f060062; + public static final int search_close_btn=0x7f060067; + public static final int search_edit_frame=0x7f060063; + public static final int search_go_btn=0x7f060069; + public static final int search_mag_icon=0x7f060064; + public static final int search_plate=0x7f060065; + public static final int search_src_text=0x7f060066; + public static final int search_voice_btn=0x7f06006a; + public static final int select_dialog_listview=0x7f06006b; + public static final int shortcut=0x7f060055; + public static final int showCustom=0x7f06002a; + public static final int showHome=0x7f06002b; + public static final int showTitle=0x7f06002c; + public static final int snackbar_action=0x7f060071; + public static final int snackbar_text=0x7f060070; + public static final int snap=0x7f06000f; + public static final int spacer=0x7f060047; + public static final int split_action_bar=0x7f060009; + public static final int src_atop=0x7f060031; + public static final int src_in=0x7f060032; + public static final int src_over=0x7f060033; + public static final int start=0x7f060018; + public static final int startscreenLinearLayout1=0x7f0600b8; + public static final int startscreenProgress=0x7f0600b9; + public static final int status_bar_latest_event_content=0x7f06009d; + public static final int submenuarrow=0x7f060057; + public static final int submit_area=0x7f060068; + public static final int tabMode=0x7f060027; + public static final int text=0x7f0600a5; + public static final int text2=0x7f0600a3; + public static final int textSpacerNoButtons=0x7f06004f; + public static final int time=0x7f0600a1; + public static final int title=0x7f060045; + public static final int title_template=0x7f06004a; + public static final int top=0x7f060019; + public static final int topPanel=0x7f060049; + public static final int topbar_earth_icon=0x7f0600ba; + public static final int topbar_help_text=0x7f0600bc; + public static final int topbar_language_text=0x7f0600bb; + public static final int topbar_logo=0x7f0600bd; + public static final int topbar_navmenu_icon=0x7f0600be; + public static final int topbar_undertop_view=0x7f0600bf; + public static final int touch_outside=0x7f06006e; + public static final int up=0x7f06000a; + public static final int useLogo=0x7f06002d; + public static final int view_offset_helper=0x7f060001; + public static final int vso_clone=0x7f0600c4; + public static final int vso_edit=0x7f0600c5; + public static final int vso_remove=0x7f0600c6; + public static final int withText=0x7f06003b; + public static final int wrap_content=0x7f060034; + } + public static final class integer { + public static final int abc_config_activityDefaultDur=0x7f080002; + public static final int abc_config_activityShortDur=0x7f080003; + public static final int bottom_sheet_slide_duration=0x7f080001; + public static final int cancel_button_image_alpha=0x7f080004; + public static final int design_snackbar_text_max_lines=0x7f080000; + public static final int status_bar_notification_info_maxnum=0x7f080005; + } + public static final class layout { + public static final int abc_action_bar_title_item=0x7f030000; + public static final int abc_action_bar_up_container=0x7f030001; + public static final int abc_action_bar_view_list_nav_layout=0x7f030002; + public static final int abc_action_menu_item_layout=0x7f030003; + public static final int abc_action_menu_layout=0x7f030004; + public static final int abc_action_mode_bar=0x7f030005; + public static final int abc_action_mode_close_item_material=0x7f030006; + public static final int abc_activity_chooser_view=0x7f030007; + public static final int abc_activity_chooser_view_list_item=0x7f030008; + public static final int abc_alert_dialog_button_bar_material=0x7f030009; + public static final int abc_alert_dialog_material=0x7f03000a; + public static final int abc_dialog_title_material=0x7f03000b; + public static final int abc_expanded_menu_layout=0x7f03000c; + public static final int abc_list_menu_item_checkbox=0x7f03000d; + public static final int abc_list_menu_item_icon=0x7f03000e; + public static final int abc_list_menu_item_layout=0x7f03000f; + public static final int abc_list_menu_item_radio=0x7f030010; + public static final int abc_popup_menu_header_item_layout=0x7f030011; + public static final int abc_popup_menu_item_layout=0x7f030012; + public static final int abc_screen_content_include=0x7f030013; + public static final int abc_screen_simple=0x7f030014; + public static final int abc_screen_simple_overlay_action_mode=0x7f030015; + public static final int abc_screen_toolbar=0x7f030016; + public static final int abc_search_dropdown_item_icons_2line=0x7f030017; + public static final int abc_search_view=0x7f030018; + public static final int abc_select_dialog_material=0x7f030019; + public static final int bottom_bar=0x7f03001a; + public static final int design_bottom_sheet_dialog=0x7f03001b; + public static final int design_layout_snackbar=0x7f03001c; + public static final int design_layout_snackbar_include=0x7f03001d; + public static final int design_layout_tab_icon=0x7f03001e; + public static final int design_layout_tab_text=0x7f03001f; + public static final int design_menu_item_action_area=0x7f030020; + public static final int design_navigation_item=0x7f030021; + public static final int design_navigation_item_header=0x7f030022; + public static final int design_navigation_item_separator=0x7f030023; + public static final int design_navigation_item_subheader=0x7f030024; + public static final int design_navigation_menu=0x7f030025; + public static final int design_navigation_menu_item=0x7f030026; + public static final int launcher_login=0x7f030027; + public static final int launcher_main=0x7f030028; + public static final int launcher_update=0x7f030029; + public static final int launcher_user=0x7f03002a; + public static final int lmaintab_consolelog=0x7f03002b; + public static final int lmaintab_crashlog=0x7f03002c; + public static final int lmaintab_news=0x7f03002d; + public static final int main=0x7f03002e; + public static final int notification_media_action=0x7f03002f; + public static final int notification_media_cancel_action=0x7f030030; + public static final int notification_template_big_media=0x7f030031; + public static final int notification_template_big_media_narrow=0x7f030032; + public static final int notification_template_lines=0x7f030033; + public static final int notification_template_media=0x7f030034; + public static final int notification_template_part_chronometer=0x7f030035; + public static final int notification_template_part_time=0x7f030036; + public static final int overlay=0x7f030037; + public static final int select_dialog_item_material=0x7f030038; + public static final int select_dialog_multichoice_material=0x7f030039; + public static final int select_dialog_singlechoice_material=0x7f03003a; + public static final int start_screen=0x7f03003b; + public static final int support_simple_spinner_dropdown_item=0x7f03003c; + public static final int top_bar=0x7f03003d; + } + public static final class menu { + public static final int menu_runopt=0x7f0d0000; + public static final int menu_versionopt=0x7f0d0001; + } + public static final class string { + public static final int abc_action_bar_home_description=0x7f0a0003; + public static final int abc_action_bar_home_description_format=0x7f0a0004; + public static final int abc_action_bar_home_subtitle_description_format=0x7f0a0005; + public static final int abc_action_bar_up_description=0x7f0a0006; + public static final int abc_action_menu_overflow_description=0x7f0a0007; + public static final int abc_action_mode_done=0x7f0a0008; + public static final int abc_activity_chooser_view_see_all=0x7f0a0009; + public static final int abc_activitychooserview_choose_application=0x7f0a000a; + public static final int abc_capital_off=0x7f0a000b; + public static final int abc_capital_on=0x7f0a000c; + public static final int abc_font_family_body_1_material=0x7f0a0017; + public static final int abc_font_family_body_2_material=0x7f0a0018; + public static final int abc_font_family_button_material=0x7f0a0019; + public static final int abc_font_family_caption_material=0x7f0a001a; + public static final int abc_font_family_display_1_material=0x7f0a001b; + public static final int abc_font_family_display_2_material=0x7f0a001c; + public static final int abc_font_family_display_3_material=0x7f0a001d; + public static final int abc_font_family_display_4_material=0x7f0a001e; + public static final int abc_font_family_headline_material=0x7f0a001f; + public static final int abc_font_family_menu_material=0x7f0a0020; + public static final int abc_font_family_subhead_material=0x7f0a0021; + public static final int abc_font_family_title_material=0x7f0a0022; + public static final int abc_search_hint=0x7f0a000d; + public static final int abc_searchview_description_clear=0x7f0a000e; + public static final int abc_searchview_description_query=0x7f0a000f; + public static final int abc_searchview_description_search=0x7f0a0010; + public static final int abc_searchview_description_submit=0x7f0a0011; + public static final int abc_searchview_description_voice=0x7f0a0012; + public static final int abc_shareactionprovider_share_with=0x7f0a0013; + public static final int abc_shareactionprovider_share_with_application=0x7f0a0014; + public static final int abc_toolbar_collapse_description=0x7f0a0015; + /** Action bar part + */ + public static final int actionbar_help=0x7f0a0025; + /** App name part + */ + public static final int app_name=0x7f0a0023; + public static final int app_short_name=0x7f0a0024; + public static final int appbar_scrolling_view_behavior=0x7f0a0000; + public static final int bottom_sheet_behavior=0x7f0a0001; + public static final int character_counter_pattern=0x7f0a0002; + public static final int control_chat=0x7f0a0061; + public static final int control_debug=0x7f0a0062; + public static final int control_down=0x7f0a006c; + /** MainActivity: Menu advanced controls + */ + public static final int control_forceclose=0x7f0a0072; + public static final int control_inventory=0x7f0a0068; + public static final int control_jump=0x7f0a006d; + /** MainActivity: Control buttons + */ + public static final int control_keyboard=0x7f0a0060; + public static final int control_left=0x7f0a006a; + public static final int control_listplayers=0x7f0a006f; + public static final int control_more2=0x7f0a0074; + public static final int control_more3=0x7f0a0075; + public static final int control_more4=0x7f0a0076; + public static final int control_mouseoff=0x7f0a0070; + public static final int control_mouseon=0x7f0a0071; + public static final int control_primary=0x7f0a0065; + public static final int control_right=0x7f0a006b; + public static final int control_screenshot=0x7f0a0063; + public static final int control_secondary=0x7f0a0066; + public static final int control_shift=0x7f0a0067; + public static final int control_thirdperson=0x7f0a006e; + public static final int control_up=0x7f0a0069; + public static final int control_viewout=0x7f0a0073; + public static final int controls=0x7f0a0064; + /** Error messages + */ + public static final int error_checklog=0x7f0a003e; + public static final int error_convert_client=0x7f0a0043; + public static final int error_convert_lib=0x7f0a0042; + public static final int error_load_version=0x7f0a0041; + public static final int error_no_version=0x7f0a0040; + public static final int error_show_less=0x7f0a0045; + public static final int error_show_more=0x7f0a0044; + public static final int error_title=0x7f0a003f; + /** Hint + */ + public static final int hint_select_account=0x7f0a0036; + /** Languages list part + */ + public static final int language_name=0x7f0a0026; + /** Logging output + */ + public static final int log_title=0x7f0a0027; + public static final int login_error_empty_username=0x7f0a0032; + public static final int login_error_exist_username=0x7f0a0034; + public static final int login_error_short_username=0x7f0a0033; + public static final int login_offline_alert_skip=0x7f0a0031; + public static final int login_offline_switch=0x7f0a002f; + public static final int login_offline_warning_1=0x7f0a0030; + public static final int login_online_create_account=0x7f0a002e; + public static final int login_online_login_label=0x7f0a002d; + public static final int login_online_password_hint=0x7f0a002a; + public static final int login_online_password_question=0x7f0a002b; + public static final int login_online_remember=0x7f0a002c; + /** Login strings + */ + public static final int login_online_username_hint=0x7f0a0028; + public static final int login_online_username_question=0x7f0a0029; + public static final int login_select_account=0x7f0a0035; + public static final int mcl_launch_cleancache=0x7f0a004c; + public static final int mcl_launch_convert_client=0x7f0a0051; + public static final int mcl_launch_convert_lib=0x7f0a0050; + public static final int mcl_launch_download_assets=0x7f0a0053; + public static final int mcl_launch_download_client=0x7f0a004f; + public static final int mcl_launch_download_lib=0x7f0a004e; + public static final int mcl_launch_downloading=0x7f0a004d; + public static final int mcl_launch_patch_client=0x7f0a0052; + public static final int mcl_option_about=0x7f0a0057; + public static final int mcl_option_checkupdate=0x7f0a0056; + public static final int mcl_option_modmgr=0x7f0a0055; + public static final int mcl_options=0x7f0a0054; + public static final int mcl_tab_console=0x7f0a0049; + public static final int mcl_tab_crash=0x7f0a004a; + /** + Exit + Exit + + MCLauncherActivity: Tabs + */ + public static final int mcl_tab_news=0x7f0a0048; + public static final int mcl_version_clone=0x7f0a0058; + public static final int mcl_version_edit=0x7f0a0059; + /** MCLauncherActivity: Strings + */ + public static final int mcl_version_msg=0x7f0a004b; + public static final int mcl_version_remove=0x7f0a005a; + public static final int mcn_exit_call=0x7f0a005c; + public static final int mcn_exit_confirm=0x7f0a005f; + public static final int mcn_exit_crash=0x7f0a005d; + public static final int mcn_exit_errcrash=0x7f0a005e; + /** + +%1$s BETA (Minecraft Java launcher for Android), version " + PathTools.usingVerName + "\n" + + " - by Khanh Duy Tran (based from \"Boardwalk\" app)\n" + + //"© 2019 Khanh Duy Tran\n" + + "Using libraries:\n" + + " • LWJGL " + org.lwjgl.Sys.getVersion() + "\n" + + //" • Boardwalk memory manager (not used now).\n" + + " • gl4es: OpenGL for OpenGL ES devices by lunixbochs and ptitSeb.\n" + + " • dx: tool to convert.\n" + + " • Java AWT Implementation includes:\n" + + " - Boardwalk's makeshift.\n" + + " - Apache Harmony AWT Framework.\n" + + " - OpenJDK 7 codes implementation.\n" + + " - Developer code implement (copy text, open browser,...)\n" + + "\n" + + "* Notes:\n" + + " - This app is currently BETA, it will not be stable.\n" + + //"* This app will unstable on Android 7.0 or higher devices.\n" + + " - This app only use LWJGL2 and don't have a JRE8 desugar, so doesn't support 1.13 or higher versions.\n" + + " - This app is not affiliated with Minecraft, Mojang or Microsoft.\n") + + + MainActivity: strings + */ + public static final int mcn_exit_title=0x7f0a005b; + public static final int status_bar_notification_info_overflow=0x7f0a0016; + public static final int toast_login_error=0x7f0a0047; + /** Toast messages + */ + public static final int toast_permission_denied=0x7f0a0046; + /** Update part (unused now) + */ + public static final int update_console=0x7f0a0077; + public static final int warning_action_exit=0x7f0a003c; + public static final int warning_action_install=0x7f0a003a; + public static final int warning_action_tryanyway=0x7f0a003b; + public static final int warning_msg=0x7f0a0038; + public static final int warning_noshowagain=0x7f0a0039; + public static final int warning_remove_account=0x7f0a003d; + /** Warning + */ + public static final int warning_title=0x7f0a0037; + } + public static final class style { + public static final int AlertDialog_AppCompat=0x7f0700a4; + public static final int AlertDialog_AppCompat_Light=0x7f0700a5; + public static final int AlertTheme=0x7f070167; + public static final int Animation_AppCompat_Dialog=0x7f0700a6; + public static final int Animation_AppCompat_DropDownUp=0x7f0700a7; + public static final int Animation_Design_BottomSheetDialog=0x7f070002; + public static final int AppTheme=0x7f070165; + public static final int Base_AlertDialog_AppCompat=0x7f0700a8; + public static final int Base_AlertDialog_AppCompat_Light=0x7f0700a9; + public static final int Base_Animation_AppCompat_Dialog=0x7f0700aa; + public static final int Base_Animation_AppCompat_DropDownUp=0x7f0700ab; + public static final int Base_DialogWindowTitle_AppCompat=0x7f0700ac; + public static final int Base_DialogWindowTitleBackground_AppCompat=0x7f0700ad; + public static final int Base_TextAppearance_AppCompat=0x7f070052; + public static final int Base_TextAppearance_AppCompat_Body1=0x7f070053; + public static final int Base_TextAppearance_AppCompat_Body2=0x7f070054; + public static final int Base_TextAppearance_AppCompat_Button=0x7f07003c; + public static final int Base_TextAppearance_AppCompat_Caption=0x7f070055; + public static final int Base_TextAppearance_AppCompat_Display1=0x7f070056; + public static final int Base_TextAppearance_AppCompat_Display2=0x7f070057; + public static final int Base_TextAppearance_AppCompat_Display3=0x7f070058; + public static final int Base_TextAppearance_AppCompat_Display4=0x7f070059; + public static final int Base_TextAppearance_AppCompat_Headline=0x7f07005a; + public static final int Base_TextAppearance_AppCompat_Inverse=0x7f070025; + public static final int Base_TextAppearance_AppCompat_Large=0x7f07005b; + public static final int Base_TextAppearance_AppCompat_Large_Inverse=0x7f070026; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f07005c; + public static final int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f07005d; + public static final int Base_TextAppearance_AppCompat_Medium=0x7f07005e; + public static final int Base_TextAppearance_AppCompat_Medium_Inverse=0x7f070027; + public static final int Base_TextAppearance_AppCompat_Menu=0x7f07005f; + public static final int Base_TextAppearance_AppCompat_SearchResult=0x7f0700ae; + public static final int Base_TextAppearance_AppCompat_SearchResult_Subtitle=0x7f070060; + public static final int Base_TextAppearance_AppCompat_SearchResult_Title=0x7f070061; + public static final int Base_TextAppearance_AppCompat_Small=0x7f070062; + public static final int Base_TextAppearance_AppCompat_Small_Inverse=0x7f070028; + public static final int Base_TextAppearance_AppCompat_Subhead=0x7f070063; + public static final int Base_TextAppearance_AppCompat_Subhead_Inverse=0x7f070029; + public static final int Base_TextAppearance_AppCompat_Title=0x7f070064; + public static final int Base_TextAppearance_AppCompat_Title_Inverse=0x7f07002a; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f07009d; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f070065; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f070066; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f070067; + public static final int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f070068; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f070069; + public static final int Base_TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f07006a; + public static final int Base_TextAppearance_AppCompat_Widget_Button=0x7f07006b; + public static final int Base_TextAppearance_AppCompat_Widget_Button_Inverse=0x7f07009e; + public static final int Base_TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700af; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f07006c; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f07006d; + public static final int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f07006e; + public static final int Base_TextAppearance_AppCompat_Widget_Switch=0x7f07006f; + public static final int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070070; + public static final int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f0700b0; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070071; + public static final int Base_TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070072; + public static final int Base_Theme_AppCompat=0x7f070073; + public static final int Base_Theme_AppCompat_CompactMenu=0x7f0700b1; + public static final int Base_Theme_AppCompat_Dialog=0x7f07002b; + public static final int Base_Theme_AppCompat_Dialog_Alert=0x7f0700b2; + public static final int Base_Theme_AppCompat_Dialog_FixedSize=0x7f0700b3; + public static final int Base_Theme_AppCompat_Dialog_MinWidth=0x7f0700b4; + public static final int Base_Theme_AppCompat_DialogWhenLarge=0x7f07001b; + public static final int Base_Theme_AppCompat_Light=0x7f070074; + public static final int Base_Theme_AppCompat_Light_DarkActionBar=0x7f0700b5; + public static final int Base_Theme_AppCompat_Light_Dialog=0x7f07002c; + public static final int Base_Theme_AppCompat_Light_Dialog_Alert=0x7f0700b6; + public static final int Base_Theme_AppCompat_Light_Dialog_FixedSize=0x7f0700b7; + public static final int Base_Theme_AppCompat_Light_Dialog_MinWidth=0x7f0700b8; + public static final int Base_Theme_AppCompat_Light_DialogWhenLarge=0x7f07001c; + public static final int Base_ThemeOverlay_AppCompat=0x7f0700b9; + public static final int Base_ThemeOverlay_AppCompat_ActionBar=0x7f0700ba; + public static final int Base_ThemeOverlay_AppCompat_Dark=0x7f0700bb; + public static final int Base_ThemeOverlay_AppCompat_Dark_ActionBar=0x7f0700bc; + public static final int Base_ThemeOverlay_AppCompat_Dialog=0x7f07002d; + public static final int Base_ThemeOverlay_AppCompat_Dialog_Alert=0x7f0700bd; + public static final int Base_ThemeOverlay_AppCompat_Light=0x7f0700be; + public static final int Base_V11_Theme_AppCompat_Dialog=0x7f07002e; + public static final int Base_V11_Theme_AppCompat_Light_Dialog=0x7f07002f; + public static final int Base_V11_ThemeOverlay_AppCompat_Dialog=0x7f070030; + public static final int Base_V12_Widget_AppCompat_AutoCompleteTextView=0x7f070038; + public static final int Base_V12_Widget_AppCompat_EditText=0x7f070039; + public static final int Base_V21_Theme_AppCompat=0x7f070075; + public static final int Base_V21_Theme_AppCompat_Dialog=0x7f070076; + public static final int Base_V21_Theme_AppCompat_Light=0x7f070077; + public static final int Base_V21_Theme_AppCompat_Light_Dialog=0x7f070078; + public static final int Base_V21_ThemeOverlay_AppCompat_Dialog=0x7f070079; + public static final int Base_V22_Theme_AppCompat=0x7f07009b; + public static final int Base_V22_Theme_AppCompat_Light=0x7f07009c; + public static final int Base_V23_Theme_AppCompat=0x7f07009f; + public static final int Base_V23_Theme_AppCompat_Light=0x7f0700a0; + public static final int Base_V7_Theme_AppCompat=0x7f0700bf; + public static final int Base_V7_Theme_AppCompat_Dialog=0x7f0700c0; + public static final int Base_V7_Theme_AppCompat_Light=0x7f0700c1; + public static final int Base_V7_Theme_AppCompat_Light_Dialog=0x7f0700c2; + public static final int Base_V7_ThemeOverlay_AppCompat_Dialog=0x7f0700c3; + public static final int Base_V7_Widget_AppCompat_AutoCompleteTextView=0x7f0700c4; + public static final int Base_V7_Widget_AppCompat_EditText=0x7f0700c5; + public static final int Base_Widget_AppCompat_ActionBar=0x7f0700c6; + public static final int Base_Widget_AppCompat_ActionBar_Solid=0x7f0700c7; + public static final int Base_Widget_AppCompat_ActionBar_TabBar=0x7f0700c8; + public static final int Base_Widget_AppCompat_ActionBar_TabText=0x7f07007a; + public static final int Base_Widget_AppCompat_ActionBar_TabView=0x7f07007b; + public static final int Base_Widget_AppCompat_ActionButton=0x7f07007c; + public static final int Base_Widget_AppCompat_ActionButton_CloseMode=0x7f07007d; + public static final int Base_Widget_AppCompat_ActionButton_Overflow=0x7f07007e; + public static final int Base_Widget_AppCompat_ActionMode=0x7f0700c9; + public static final int Base_Widget_AppCompat_ActivityChooserView=0x7f0700ca; + public static final int Base_Widget_AppCompat_AutoCompleteTextView=0x7f07003a; + public static final int Base_Widget_AppCompat_Button=0x7f07007f; + public static final int Base_Widget_AppCompat_Button_Borderless=0x7f070080; + public static final int Base_Widget_AppCompat_Button_Borderless_Colored=0x7f070081; + public static final int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f0700cb; + public static final int Base_Widget_AppCompat_Button_Colored=0x7f0700a1; + public static final int Base_Widget_AppCompat_Button_Small=0x7f070082; + public static final int Base_Widget_AppCompat_ButtonBar=0x7f070083; + public static final int Base_Widget_AppCompat_ButtonBar_AlertDialog=0x7f0700cc; + public static final int Base_Widget_AppCompat_CompoundButton_CheckBox=0x7f070084; + public static final int Base_Widget_AppCompat_CompoundButton_RadioButton=0x7f070085; + public static final int Base_Widget_AppCompat_CompoundButton_Switch=0x7f0700cd; + public static final int Base_Widget_AppCompat_DrawerArrowToggle=0x7f07001a; + public static final int Base_Widget_AppCompat_DrawerArrowToggle_Common=0x7f0700ce; + public static final int Base_Widget_AppCompat_DropDownItem_Spinner=0x7f070086; + public static final int Base_Widget_AppCompat_EditText=0x7f07003b; + public static final int Base_Widget_AppCompat_ImageButton=0x7f070087; + public static final int Base_Widget_AppCompat_Light_ActionBar=0x7f0700cf; + public static final int Base_Widget_AppCompat_Light_ActionBar_Solid=0x7f0700d0; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabBar=0x7f0700d1; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText=0x7f070088; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f070089; + public static final int Base_Widget_AppCompat_Light_ActionBar_TabView=0x7f07008a; + public static final int Base_Widget_AppCompat_Light_PopupMenu=0x7f07008b; + public static final int Base_Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07008c; + public static final int Base_Widget_AppCompat_ListMenuView=0x7f0700d2; + public static final int Base_Widget_AppCompat_ListPopupWindow=0x7f07008d; + public static final int Base_Widget_AppCompat_ListView=0x7f07008e; + public static final int Base_Widget_AppCompat_ListView_DropDown=0x7f07008f; + public static final int Base_Widget_AppCompat_ListView_Menu=0x7f070090; + public static final int Base_Widget_AppCompat_PopupMenu=0x7f070091; + public static final int Base_Widget_AppCompat_PopupMenu_Overflow=0x7f070092; + public static final int Base_Widget_AppCompat_PopupWindow=0x7f0700d3; + public static final int Base_Widget_AppCompat_ProgressBar=0x7f070031; + public static final int Base_Widget_AppCompat_ProgressBar_Horizontal=0x7f070032; + public static final int Base_Widget_AppCompat_RatingBar=0x7f070093; + public static final int Base_Widget_AppCompat_RatingBar_Indicator=0x7f0700a2; + public static final int Base_Widget_AppCompat_RatingBar_Small=0x7f0700a3; + public static final int Base_Widget_AppCompat_SearchView=0x7f0700d4; + public static final int Base_Widget_AppCompat_SearchView_ActionBar=0x7f0700d5; + public static final int Base_Widget_AppCompat_SeekBar=0x7f070094; + public static final int Base_Widget_AppCompat_SeekBar_Discrete=0x7f0700d6; + public static final int Base_Widget_AppCompat_Spinner=0x7f070095; + public static final int Base_Widget_AppCompat_Spinner_Underlined=0x7f07001d; + public static final int Base_Widget_AppCompat_TextView_SpinnerItem=0x7f070096; + public static final int Base_Widget_AppCompat_Toolbar=0x7f0700d7; + public static final int Base_Widget_AppCompat_Toolbar_Button_Navigation=0x7f070097; + public static final int Base_Widget_Design_AppBarLayout=0x7f070003; + public static final int Base_Widget_Design_TabLayout=0x7f070004; + public static final int MenuDialog=0x7f070168; + public static final int MenuDialogAnimation=0x7f070169; + public static final int Platform_AppCompat=0x7f070033; + public static final int Platform_AppCompat_Light=0x7f070034; + public static final int Platform_ThemeOverlay_AppCompat=0x7f070098; + public static final int Platform_ThemeOverlay_AppCompat_Dark=0x7f070099; + public static final int Platform_ThemeOverlay_AppCompat_Light=0x7f07009a; + public static final int Platform_V11_AppCompat=0x7f070035; + public static final int Platform_V11_AppCompat_Light=0x7f070036; + public static final int Platform_V14_AppCompat=0x7f07003d; + public static final int Platform_V14_AppCompat_Light=0x7f07003e; + public static final int Platform_Widget_AppCompat_Spinner=0x7f070037; + public static final int RtlOverlay_DialogWindowTitle_AppCompat=0x7f070044; + public static final int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem=0x7f070045; + public static final int RtlOverlay_Widget_AppCompat_DialogTitle_Icon=0x7f070046; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem=0x7f070047; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup=0x7f070048; + public static final int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text=0x7f070049; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown=0x7f07004a; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1=0x7f07004b; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2=0x7f07004c; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Query=0x7f07004d; + public static final int RtlOverlay_Widget_AppCompat_Search_DropDown_Text=0x7f07004e; + public static final int RtlOverlay_Widget_AppCompat_SearchView_MagIcon=0x7f07004f; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton=0x7f070050; + public static final int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow=0x7f070051; + public static final int RunTheme=0x7f070166; + public static final int TextAppearance_AppCompat=0x7f0700d8; + public static final int TextAppearance_AppCompat_Body1=0x7f0700d9; + public static final int TextAppearance_AppCompat_Body2=0x7f0700da; + public static final int TextAppearance_AppCompat_Button=0x7f0700db; + public static final int TextAppearance_AppCompat_Caption=0x7f0700dc; + public static final int TextAppearance_AppCompat_Display1=0x7f0700dd; + public static final int TextAppearance_AppCompat_Display2=0x7f0700de; + public static final int TextAppearance_AppCompat_Display3=0x7f0700df; + public static final int TextAppearance_AppCompat_Display4=0x7f0700e0; + public static final int TextAppearance_AppCompat_Headline=0x7f0700e1; + public static final int TextAppearance_AppCompat_Inverse=0x7f0700e2; + public static final int TextAppearance_AppCompat_Large=0x7f0700e3; + public static final int TextAppearance_AppCompat_Large_Inverse=0x7f0700e4; + public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle=0x7f0700e5; + public static final int TextAppearance_AppCompat_Light_SearchResult_Title=0x7f0700e6; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large=0x7f0700e7; + public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small=0x7f0700e8; + public static final int TextAppearance_AppCompat_Medium=0x7f0700e9; + public static final int TextAppearance_AppCompat_Medium_Inverse=0x7f0700ea; + public static final int TextAppearance_AppCompat_Menu=0x7f0700eb; + public static final int TextAppearance_AppCompat_SearchResult_Subtitle=0x7f0700ec; + public static final int TextAppearance_AppCompat_SearchResult_Title=0x7f0700ed; + public static final int TextAppearance_AppCompat_Small=0x7f0700ee; + public static final int TextAppearance_AppCompat_Small_Inverse=0x7f0700ef; + public static final int TextAppearance_AppCompat_Subhead=0x7f0700f0; + public static final int TextAppearance_AppCompat_Subhead_Inverse=0x7f0700f1; + public static final int TextAppearance_AppCompat_Title=0x7f0700f2; + public static final int TextAppearance_AppCompat_Title_Inverse=0x7f0700f3; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu=0x7f0700f4; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle=0x7f0700f5; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse=0x7f0700f6; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title=0x7f0700f7; + public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse=0x7f0700f8; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle=0x7f0700f9; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse=0x7f0700fa; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title=0x7f0700fb; + public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse=0x7f0700fc; + public static final int TextAppearance_AppCompat_Widget_Button=0x7f0700fd; + public static final int TextAppearance_AppCompat_Widget_Button_Inverse=0x7f0700fe; + public static final int TextAppearance_AppCompat_Widget_DropDownItem=0x7f0700ff; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Header=0x7f070100; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large=0x7f070101; + public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small=0x7f070102; + public static final int TextAppearance_AppCompat_Widget_Switch=0x7f070103; + public static final int TextAppearance_AppCompat_Widget_TextView_SpinnerItem=0x7f070104; + public static final int TextAppearance_Design_CollapsingToolbar_Expanded=0x7f070005; + public static final int TextAppearance_Design_Counter=0x7f070006; + public static final int TextAppearance_Design_Counter_Overflow=0x7f070007; + public static final int TextAppearance_Design_Error=0x7f070008; + public static final int TextAppearance_Design_Hint=0x7f070009; + public static final int TextAppearance_Design_Snackbar_Message=0x7f07000a; + public static final int TextAppearance_Design_Tab=0x7f07000b; + public static final int TextAppearance_StatusBar_EventContent=0x7f07003f; + public static final int TextAppearance_StatusBar_EventContent_Info=0x7f070040; + public static final int TextAppearance_StatusBar_EventContent_Line2=0x7f070041; + public static final int TextAppearance_StatusBar_EventContent_Time=0x7f070042; + public static final int TextAppearance_StatusBar_EventContent_Title=0x7f070043; + public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item=0x7f070105; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Subtitle=0x7f070106; + public static final int TextAppearance_Widget_AppCompat_Toolbar_Title=0x7f070107; + public static final int Theme_AppCompat=0x7f070108; + public static final int Theme_AppCompat_CompactMenu=0x7f070109; + public static final int Theme_AppCompat_DayNight=0x7f07001e; + public static final int Theme_AppCompat_DayNight_DarkActionBar=0x7f07001f; + public static final int Theme_AppCompat_DayNight_Dialog=0x7f070020; + public static final int Theme_AppCompat_DayNight_Dialog_Alert=0x7f070021; + public static final int Theme_AppCompat_DayNight_Dialog_MinWidth=0x7f070022; + public static final int Theme_AppCompat_DayNight_DialogWhenLarge=0x7f070023; + public static final int Theme_AppCompat_DayNight_NoActionBar=0x7f070024; + public static final int Theme_AppCompat_Dialog=0x7f07010a; + public static final int Theme_AppCompat_Dialog_Alert=0x7f07010b; + public static final int Theme_AppCompat_Dialog_MinWidth=0x7f07010c; + public static final int Theme_AppCompat_DialogWhenLarge=0x7f07010d; + public static final int Theme_AppCompat_Light=0x7f07010e; + public static final int Theme_AppCompat_Light_DarkActionBar=0x7f07010f; + public static final int Theme_AppCompat_Light_Dialog=0x7f070110; + public static final int Theme_AppCompat_Light_Dialog_Alert=0x7f070111; + public static final int Theme_AppCompat_Light_Dialog_MinWidth=0x7f070112; + public static final int Theme_AppCompat_Light_DialogWhenLarge=0x7f070113; + public static final int Theme_AppCompat_Light_NoActionBar=0x7f070114; + public static final int Theme_AppCompat_NoActionBar=0x7f070115; + public static final int Theme_Design=0x7f07000c; + public static final int Theme_Design_BottomSheetDialog=0x7f07000d; + public static final int Theme_Design_Light=0x7f07000e; + public static final int Theme_Design_Light_BottomSheetDialog=0x7f07000f; + public static final int Theme_Design_Light_NoActionBar=0x7f070010; + public static final int Theme_Design_NoActionBar=0x7f070011; + public static final int ThemeOverlay_AppCompat=0x7f070116; + public static final int ThemeOverlay_AppCompat_ActionBar=0x7f070117; + public static final int ThemeOverlay_AppCompat_Dark=0x7f070118; + public static final int ThemeOverlay_AppCompat_Dark_ActionBar=0x7f070119; + public static final int ThemeOverlay_AppCompat_Dialog=0x7f07011a; + public static final int ThemeOverlay_AppCompat_Dialog_Alert=0x7f07011b; + public static final int ThemeOverlay_AppCompat_Light=0x7f07011c; + public static final int Widget_AppCompat_ActionBar=0x7f07011d; + public static final int Widget_AppCompat_ActionBar_Solid=0x7f07011e; + public static final int Widget_AppCompat_ActionBar_TabBar=0x7f07011f; + public static final int Widget_AppCompat_ActionBar_TabText=0x7f070120; + public static final int Widget_AppCompat_ActionBar_TabView=0x7f070121; + public static final int Widget_AppCompat_ActionButton=0x7f070122; + public static final int Widget_AppCompat_ActionButton_CloseMode=0x7f070123; + public static final int Widget_AppCompat_ActionButton_Overflow=0x7f070124; + public static final int Widget_AppCompat_ActionMode=0x7f070125; + public static final int Widget_AppCompat_ActivityChooserView=0x7f070126; + public static final int Widget_AppCompat_AutoCompleteTextView=0x7f070127; + public static final int Widget_AppCompat_Button=0x7f070128; + public static final int Widget_AppCompat_Button_Borderless=0x7f070129; + public static final int Widget_AppCompat_Button_Borderless_Colored=0x7f07012a; + public static final int Widget_AppCompat_Button_ButtonBar_AlertDialog=0x7f07012b; + public static final int Widget_AppCompat_Button_Colored=0x7f07012c; + public static final int Widget_AppCompat_Button_Small=0x7f07012d; + public static final int Widget_AppCompat_ButtonBar=0x7f07012e; + public static final int Widget_AppCompat_ButtonBar_AlertDialog=0x7f07012f; + public static final int Widget_AppCompat_CompoundButton_CheckBox=0x7f070130; + public static final int Widget_AppCompat_CompoundButton_RadioButton=0x7f070131; + public static final int Widget_AppCompat_CompoundButton_Switch=0x7f070132; + public static final int Widget_AppCompat_DrawerArrowToggle=0x7f070133; + public static final int Widget_AppCompat_DropDownItem_Spinner=0x7f070134; + public static final int Widget_AppCompat_EditText=0x7f070135; + public static final int Widget_AppCompat_ImageButton=0x7f070136; + public static final int Widget_AppCompat_Light_ActionBar=0x7f070137; + public static final int Widget_AppCompat_Light_ActionBar_Solid=0x7f070138; + public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse=0x7f070139; + public static final int Widget_AppCompat_Light_ActionBar_TabBar=0x7f07013a; + public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse=0x7f07013b; + public static final int Widget_AppCompat_Light_ActionBar_TabText=0x7f07013c; + public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse=0x7f07013d; + public static final int Widget_AppCompat_Light_ActionBar_TabView=0x7f07013e; + public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse=0x7f07013f; + public static final int Widget_AppCompat_Light_ActionButton=0x7f070140; + public static final int Widget_AppCompat_Light_ActionButton_CloseMode=0x7f070141; + public static final int Widget_AppCompat_Light_ActionButton_Overflow=0x7f070142; + public static final int Widget_AppCompat_Light_ActionMode_Inverse=0x7f070143; + public static final int Widget_AppCompat_Light_ActivityChooserView=0x7f070144; + public static final int Widget_AppCompat_Light_AutoCompleteTextView=0x7f070145; + public static final int Widget_AppCompat_Light_DropDownItem_Spinner=0x7f070146; + public static final int Widget_AppCompat_Light_ListPopupWindow=0x7f070147; + public static final int Widget_AppCompat_Light_ListView_DropDown=0x7f070148; + public static final int Widget_AppCompat_Light_PopupMenu=0x7f070149; + public static final int Widget_AppCompat_Light_PopupMenu_Overflow=0x7f07014a; + public static final int Widget_AppCompat_Light_SearchView=0x7f07014b; + public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar=0x7f07014c; + public static final int Widget_AppCompat_ListMenuView=0x7f07014d; + public static final int Widget_AppCompat_ListPopupWindow=0x7f07014e; + public static final int Widget_AppCompat_ListView=0x7f07014f; + public static final int Widget_AppCompat_ListView_DropDown=0x7f070150; + public static final int Widget_AppCompat_ListView_Menu=0x7f070151; + public static final int Widget_AppCompat_PopupMenu=0x7f070152; + public static final int Widget_AppCompat_PopupMenu_Overflow=0x7f070153; + public static final int Widget_AppCompat_PopupWindow=0x7f070154; + public static final int Widget_AppCompat_ProgressBar=0x7f070155; + public static final int Widget_AppCompat_ProgressBar_Horizontal=0x7f070156; + public static final int Widget_AppCompat_RatingBar=0x7f070157; + public static final int Widget_AppCompat_RatingBar_Indicator=0x7f070158; + public static final int Widget_AppCompat_RatingBar_Small=0x7f070159; + public static final int Widget_AppCompat_SearchView=0x7f07015a; + public static final int Widget_AppCompat_SearchView_ActionBar=0x7f07015b; + public static final int Widget_AppCompat_SeekBar=0x7f07015c; + public static final int Widget_AppCompat_SeekBar_Discrete=0x7f07015d; + public static final int Widget_AppCompat_Spinner=0x7f07015e; + public static final int Widget_AppCompat_Spinner_DropDown=0x7f07015f; + public static final int Widget_AppCompat_Spinner_DropDown_ActionBar=0x7f070160; + public static final int Widget_AppCompat_Spinner_Underlined=0x7f070161; + public static final int Widget_AppCompat_TextView_SpinnerItem=0x7f070162; + public static final int Widget_AppCompat_Toolbar=0x7f070163; + public static final int Widget_AppCompat_Toolbar_Button_Navigation=0x7f070164; + public static final int Widget_Design_AppBarLayout=0x7f070001; + public static final int Widget_Design_BottomSheet_Modal=0x7f070012; + public static final int Widget_Design_CollapsingToolbar=0x7f070013; + public static final int Widget_Design_CoordinatorLayout=0x7f070014; + public static final int Widget_Design_FloatingActionButton=0x7f070015; + public static final int Widget_Design_NavigationView=0x7f070016; + public static final int Widget_Design_ScrimInsetsFrameLayout=0x7f070017; + public static final int Widget_Design_Snackbar=0x7f070018; + public static final int Widget_Design_TabLayout=0x7f070000; + public static final int Widget_Design_TextInputLayout=0x7f070019; + } + public static final class styleable { + /** Attributes that can be used with a ActionBar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #ActionBar_background net.kdt.pojavlaunch:background}
{@link #ActionBar_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionBar_backgroundStacked net.kdt.pojavlaunch:backgroundStacked}
{@link #ActionBar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #ActionBar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #ActionBar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #ActionBar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #ActionBar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #ActionBar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #ActionBar_customNavigationLayout net.kdt.pojavlaunch:customNavigationLayout}
{@link #ActionBar_displayOptions net.kdt.pojavlaunch:displayOptions}
{@link #ActionBar_divider net.kdt.pojavlaunch:divider}
{@link #ActionBar_elevation net.kdt.pojavlaunch:elevation}
{@link #ActionBar_height net.kdt.pojavlaunch:height}
{@link #ActionBar_hideOnContentScroll net.kdt.pojavlaunch:hideOnContentScroll}
{@link #ActionBar_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #ActionBar_homeLayout net.kdt.pojavlaunch:homeLayout}
{@link #ActionBar_icon net.kdt.pojavlaunch:icon}
{@link #ActionBar_indeterminateProgressStyle net.kdt.pojavlaunch:indeterminateProgressStyle}
{@link #ActionBar_itemPadding net.kdt.pojavlaunch:itemPadding}
{@link #ActionBar_logo net.kdt.pojavlaunch:logo}
{@link #ActionBar_navigationMode net.kdt.pojavlaunch:navigationMode}
{@link #ActionBar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #ActionBar_progressBarPadding net.kdt.pojavlaunch:progressBarPadding}
{@link #ActionBar_progressBarStyle net.kdt.pojavlaunch:progressBarStyle}
{@link #ActionBar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #ActionBar_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionBar_title net.kdt.pojavlaunch:title}
{@link #ActionBar_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionBar_background + @see #ActionBar_backgroundSplit + @see #ActionBar_backgroundStacked + @see #ActionBar_contentInsetEnd + @see #ActionBar_contentInsetEndWithActions + @see #ActionBar_contentInsetLeft + @see #ActionBar_contentInsetRight + @see #ActionBar_contentInsetStart + @see #ActionBar_contentInsetStartWithNavigation + @see #ActionBar_customNavigationLayout + @see #ActionBar_displayOptions + @see #ActionBar_divider + @see #ActionBar_elevation + @see #ActionBar_height + @see #ActionBar_hideOnContentScroll + @see #ActionBar_homeAsUpIndicator + @see #ActionBar_homeLayout + @see #ActionBar_icon + @see #ActionBar_indeterminateProgressStyle + @see #ActionBar_itemPadding + @see #ActionBar_logo + @see #ActionBar_navigationMode + @see #ActionBar_popupTheme + @see #ActionBar_progressBarPadding + @see #ActionBar_progressBarStyle + @see #ActionBar_subtitle + @see #ActionBar_subtitleTextStyle + @see #ActionBar_title + @see #ActionBar_titleTextStyle + */ + public static final int[] ActionBar = { + 0x7f01004f, 0x7f010051, 0x7f010052, 0x7f010053, + 0x7f010054, 0x7f010055, 0x7f010056, 0x7f010057, + 0x7f010058, 0x7f010059, 0x7f01005a, 0x7f01005b, + 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f, + 0x7f010060, 0x7f010061, 0x7f010062, 0x7f010063, + 0x7f010064, 0x7f010065, 0x7f010066, 0x7f010067, + 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b, + 0x7f0100a8 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionBar_background = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionBar_backgroundSplit = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundStacked} + attribute's value can be found in the {@link #ActionBar} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundStacked + */ + public static final int ActionBar_backgroundStacked = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int ActionBar_contentInsetEnd = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int ActionBar_contentInsetEndWithActions = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int ActionBar_contentInsetLeft = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int ActionBar_contentInsetRight = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int ActionBar_contentInsetStart = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int ActionBar_contentInsetStartWithNavigation = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#customNavigationLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:customNavigationLayout + */ + public static final int ActionBar_customNavigationLayout = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#displayOptions} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + +
ConstantValueDescription
none0
useLogo0x1
showHome0x2
homeAsUp0x4
showTitle0x8
showCustom0x10
disableHome0x20
+ @attr name net.kdt.pojavlaunch:displayOptions + */ + public static final int ActionBar_displayOptions = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int ActionBar_divider = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int ActionBar_elevation = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionBar_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hideOnContentScroll} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hideOnContentScroll + */ + public static final int ActionBar_hideOnContentScroll = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int ActionBar_homeAsUpIndicator = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeLayout} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeLayout + */ + public static final int ActionBar_homeLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#icon} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:icon + */ + public static final int ActionBar_icon = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#indeterminateProgressStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:indeterminateProgressStyle + */ + public static final int ActionBar_indeterminateProgressStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemPadding + */ + public static final int ActionBar_itemPadding = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int ActionBar_logo = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationMode} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
normal0
listMode1
tabMode2
+ @attr name net.kdt.pojavlaunch:navigationMode + */ + public static final int ActionBar_navigationMode = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int ActionBar_popupTheme = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarPadding} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:progressBarPadding + */ + public static final int ActionBar_progressBarPadding = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#progressBarStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:progressBarStyle + */ + public static final int ActionBar_progressBarStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int ActionBar_subtitle = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionBar_subtitleTextStyle = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int ActionBar_title = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionBar_titleTextStyle = 5; + /** Attributes that can be used with a ActionBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionBarLayout_android_layout_gravity android:layout_gravity}
+ @see #ActionBarLayout_android_layout_gravity + */ + public static final int[] ActionBarLayout = { + 0x010100b3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #ActionBarLayout} array. + @attr name android:layout_gravity + */ + public static final int ActionBarLayout_android_layout_gravity = 0; + /** Attributes that can be used with a ActionMenuItemView. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ActionMenuItemView_android_minWidth android:minWidth}
+ @see #ActionMenuItemView_android_minWidth + */ + public static final int[] ActionMenuItemView = { + 0x0101013f + }; + /** +

This symbol is the offset where the {@link android.R.attr#minWidth} + attribute's value can be found in the {@link #ActionMenuItemView} array. + @attr name android:minWidth + */ + public static final int ActionMenuItemView_android_minWidth = 0; + /** Attributes that can be used with a ActionMenuView. + */ + public static final int[] ActionMenuView = { + + }; + /** Attributes that can be used with a ActionMode. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #ActionMode_background net.kdt.pojavlaunch:background}
{@link #ActionMode_backgroundSplit net.kdt.pojavlaunch:backgroundSplit}
{@link #ActionMode_closeItemLayout net.kdt.pojavlaunch:closeItemLayout}
{@link #ActionMode_height net.kdt.pojavlaunch:height}
{@link #ActionMode_subtitleTextStyle net.kdt.pojavlaunch:subtitleTextStyle}
{@link #ActionMode_titleTextStyle net.kdt.pojavlaunch:titleTextStyle}
+ @see #ActionMode_background + @see #ActionMode_backgroundSplit + @see #ActionMode_closeItemLayout + @see #ActionMode_height + @see #ActionMode_subtitleTextStyle + @see #ActionMode_titleTextStyle + */ + public static final int[] ActionMode = { + 0x7f01004f, 0x7f010055, 0x7f010056, 0x7f01005a, + 0x7f01005c, 0x7f01006c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#background} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:background + */ + public static final int ActionMode_background = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundSplit} + attribute's value can be found in the {@link #ActionMode} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:backgroundSplit + */ + public static final int ActionMode_backgroundSplit = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeItemLayout} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeItemLayout + */ + public static final int ActionMode_closeItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#height} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:height + */ + public static final int ActionMode_height = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextStyle + */ + public static final int ActionMode_subtitleTextStyle = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextStyle} + attribute's value can be found in the {@link #ActionMode} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextStyle + */ + public static final int ActionMode_titleTextStyle = 1; + /** Attributes that can be used with a ActivityChooserView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ActivityChooserView_expandActivityOverflowButtonDrawable net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable}
{@link #ActivityChooserView_initialActivityCount net.kdt.pojavlaunch:initialActivityCount}
+ @see #ActivityChooserView_expandActivityOverflowButtonDrawable + @see #ActivityChooserView_initialActivityCount + */ + public static final int[] ActivityChooserView = { + 0x7f01006d, 0x7f01006e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandActivityOverflowButtonDrawable} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandActivityOverflowButtonDrawable + */ + public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#initialActivityCount} + attribute's value can be found in the {@link #ActivityChooserView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:initialActivityCount + */ + public static final int ActivityChooserView_initialActivityCount = 0; + /** Attributes that can be used with a AlertDialog. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #AlertDialog_android_layout android:layout}
{@link #AlertDialog_buttonPanelSideLayout net.kdt.pojavlaunch:buttonPanelSideLayout}
{@link #AlertDialog_listItemLayout net.kdt.pojavlaunch:listItemLayout}
{@link #AlertDialog_listLayout net.kdt.pojavlaunch:listLayout}
{@link #AlertDialog_multiChoiceItemLayout net.kdt.pojavlaunch:multiChoiceItemLayout}
{@link #AlertDialog_singleChoiceItemLayout net.kdt.pojavlaunch:singleChoiceItemLayout}
+ @see #AlertDialog_android_layout + @see #AlertDialog_buttonPanelSideLayout + @see #AlertDialog_listItemLayout + @see #AlertDialog_listLayout + @see #AlertDialog_multiChoiceItemLayout + @see #AlertDialog_singleChoiceItemLayout + */ + public static final int[] AlertDialog = { + 0x010100f2, 0x7f01006f, 0x7f010070, 0x7f010071, + 0x7f010072, 0x7f010073 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #AlertDialog} array. + @attr name android:layout + */ + public static final int AlertDialog_android_layout = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonPanelSideLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonPanelSideLayout + */ + public static final int AlertDialog_buttonPanelSideLayout = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listItemLayout + */ + public static final int AlertDialog_listItemLayout = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listLayout + */ + public static final int AlertDialog_listLayout = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#multiChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:multiChoiceItemLayout + */ + public static final int AlertDialog_multiChoiceItemLayout = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#singleChoiceItemLayout} + attribute's value can be found in the {@link #AlertDialog} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:singleChoiceItemLayout + */ + public static final int AlertDialog_singleChoiceItemLayout = 4; + /** Attributes that can be used with a AppBarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #AppBarLayout_android_background android:background}
{@link #AppBarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #AppBarLayout_expanded net.kdt.pojavlaunch:expanded}
+ @see #AppBarLayout_android_background + @see #AppBarLayout_elevation + @see #AppBarLayout_expanded + */ + public static final int[] AppBarLayout = { + 0x010100d4, 0x7f010004, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #AppBarLayout} array. + @attr name android:background + */ + public static final int AppBarLayout_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int AppBarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expanded} + attribute's value can be found in the {@link #AppBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expanded + */ + public static final int AppBarLayout_expanded = 1; + /** Attributes that can be used with a AppBarLayoutStates. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayoutStates_state_collapsed net.kdt.pojavlaunch:state_collapsed}
{@link #AppBarLayoutStates_state_collapsible net.kdt.pojavlaunch:state_collapsible}
+ @see #AppBarLayoutStates_state_collapsed + @see #AppBarLayoutStates_state_collapsible + */ + public static final int[] AppBarLayoutStates = { + 0x7f010005, 0x7f010006 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsed} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsed + */ + public static final int AppBarLayoutStates_state_collapsed = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_collapsible} + attribute's value can be found in the {@link #AppBarLayoutStates} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_collapsible + */ + public static final int AppBarLayoutStates_state_collapsible = 1; + /** Attributes that can be used with a AppBarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppBarLayout_Layout_layout_scrollFlags net.kdt.pojavlaunch:layout_scrollFlags}
{@link #AppBarLayout_Layout_layout_scrollInterpolator net.kdt.pojavlaunch:layout_scrollInterpolator}
+ @see #AppBarLayout_Layout_layout_scrollFlags + @see #AppBarLayout_Layout_layout_scrollInterpolator + */ + public static final int[] AppBarLayout_Layout = { + 0x7f010007, 0x7f010008 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollFlags} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
scroll0x1
exitUntilCollapsed0x2
enterAlways0x4
enterAlwaysCollapsed0x8
snap0x10
+ @attr name net.kdt.pojavlaunch:layout_scrollFlags + */ + public static final int AppBarLayout_Layout_layout_scrollFlags = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_scrollInterpolator} + attribute's value can be found in the {@link #AppBarLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_scrollInterpolator + */ + public static final int AppBarLayout_Layout_layout_scrollInterpolator = 1; + /** Attributes that can be used with a AppCompatImageView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatImageView_android_src android:src}
{@link #AppCompatImageView_srcCompat net.kdt.pojavlaunch:srcCompat}
+ @see #AppCompatImageView_android_src + @see #AppCompatImageView_srcCompat + */ + public static final int[] AppCompatImageView = { + 0x01010119, 0x7f010074 + }; + /** +

This symbol is the offset where the {@link android.R.attr#src} + attribute's value can be found in the {@link #AppCompatImageView} array. + @attr name android:src + */ + public static final int AppCompatImageView_android_src = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#srcCompat} + attribute's value can be found in the {@link #AppCompatImageView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:srcCompat + */ + public static final int AppCompatImageView_srcCompat = 1; + /** Attributes that can be used with a AppCompatSeekBar. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #AppCompatSeekBar_android_thumb android:thumb}
{@link #AppCompatSeekBar_tickMark net.kdt.pojavlaunch:tickMark}
{@link #AppCompatSeekBar_tickMarkTint net.kdt.pojavlaunch:tickMarkTint}
{@link #AppCompatSeekBar_tickMarkTintMode net.kdt.pojavlaunch:tickMarkTintMode}
+ @see #AppCompatSeekBar_android_thumb + @see #AppCompatSeekBar_tickMark + @see #AppCompatSeekBar_tickMarkTint + @see #AppCompatSeekBar_tickMarkTintMode + */ + public static final int[] AppCompatSeekBar = { + 0x01010142, 0x7f010075, 0x7f010076, 0x7f010077 + }; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + @attr name android:thumb + */ + public static final int AppCompatSeekBar_android_thumb = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMark} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tickMark + */ + public static final int AppCompatSeekBar_tickMark = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTint} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tickMarkTint + */ + public static final int AppCompatSeekBar_tickMarkTint = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tickMarkTintMode} + attribute's value can be found in the {@link #AppCompatSeekBar} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:tickMarkTintMode + */ + public static final int AppCompatSeekBar_tickMarkTintMode = 3; + /** Attributes that can be used with a AppCompatTextView. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #AppCompatTextView_android_textAppearance android:textAppearance}
{@link #AppCompatTextView_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #AppCompatTextView_android_textAppearance + @see #AppCompatTextView_textAllCaps + */ + public static final int[] AppCompatTextView = { + 0x01010034, 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textAppearance} + attribute's value can be found in the {@link #AppCompatTextView} array. + @attr name android:textAppearance + */ + public static final int AppCompatTextView_android_textAppearance = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #AppCompatTextView} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int AppCompatTextView_textAllCaps = 1; + /** Attributes that can be used with a AppCompatTheme. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #AppCompatTheme_actionBarDivider net.kdt.pojavlaunch:actionBarDivider}
{@link #AppCompatTheme_actionBarItemBackground net.kdt.pojavlaunch:actionBarItemBackground}
{@link #AppCompatTheme_actionBarPopupTheme net.kdt.pojavlaunch:actionBarPopupTheme}
{@link #AppCompatTheme_actionBarSize net.kdt.pojavlaunch:actionBarSize}
{@link #AppCompatTheme_actionBarSplitStyle net.kdt.pojavlaunch:actionBarSplitStyle}
{@link #AppCompatTheme_actionBarStyle net.kdt.pojavlaunch:actionBarStyle}
{@link #AppCompatTheme_actionBarTabBarStyle net.kdt.pojavlaunch:actionBarTabBarStyle}
{@link #AppCompatTheme_actionBarTabStyle net.kdt.pojavlaunch:actionBarTabStyle}
{@link #AppCompatTheme_actionBarTabTextStyle net.kdt.pojavlaunch:actionBarTabTextStyle}
{@link #AppCompatTheme_actionBarTheme net.kdt.pojavlaunch:actionBarTheme}
{@link #AppCompatTheme_actionBarWidgetTheme net.kdt.pojavlaunch:actionBarWidgetTheme}
{@link #AppCompatTheme_actionButtonStyle net.kdt.pojavlaunch:actionButtonStyle}
{@link #AppCompatTheme_actionDropDownStyle net.kdt.pojavlaunch:actionDropDownStyle}
{@link #AppCompatTheme_actionMenuTextAppearance net.kdt.pojavlaunch:actionMenuTextAppearance}
{@link #AppCompatTheme_actionMenuTextColor net.kdt.pojavlaunch:actionMenuTextColor}
{@link #AppCompatTheme_actionModeBackground net.kdt.pojavlaunch:actionModeBackground}
{@link #AppCompatTheme_actionModeCloseButtonStyle net.kdt.pojavlaunch:actionModeCloseButtonStyle}
{@link #AppCompatTheme_actionModeCloseDrawable net.kdt.pojavlaunch:actionModeCloseDrawable}
{@link #AppCompatTheme_actionModeCopyDrawable net.kdt.pojavlaunch:actionModeCopyDrawable}
{@link #AppCompatTheme_actionModeCutDrawable net.kdt.pojavlaunch:actionModeCutDrawable}
{@link #AppCompatTheme_actionModeFindDrawable net.kdt.pojavlaunch:actionModeFindDrawable}
{@link #AppCompatTheme_actionModePasteDrawable net.kdt.pojavlaunch:actionModePasteDrawable}
{@link #AppCompatTheme_actionModePopupWindowStyle net.kdt.pojavlaunch:actionModePopupWindowStyle}
{@link #AppCompatTheme_actionModeSelectAllDrawable net.kdt.pojavlaunch:actionModeSelectAllDrawable}
{@link #AppCompatTheme_actionModeShareDrawable net.kdt.pojavlaunch:actionModeShareDrawable}
{@link #AppCompatTheme_actionModeSplitBackground net.kdt.pojavlaunch:actionModeSplitBackground}
{@link #AppCompatTheme_actionModeStyle net.kdt.pojavlaunch:actionModeStyle}
{@link #AppCompatTheme_actionModeWebSearchDrawable net.kdt.pojavlaunch:actionModeWebSearchDrawable}
{@link #AppCompatTheme_actionOverflowButtonStyle net.kdt.pojavlaunch:actionOverflowButtonStyle}
{@link #AppCompatTheme_actionOverflowMenuStyle net.kdt.pojavlaunch:actionOverflowMenuStyle}
{@link #AppCompatTheme_activityChooserViewStyle net.kdt.pojavlaunch:activityChooserViewStyle}
{@link #AppCompatTheme_alertDialogButtonGroupStyle net.kdt.pojavlaunch:alertDialogButtonGroupStyle}
{@link #AppCompatTheme_alertDialogCenterButtons net.kdt.pojavlaunch:alertDialogCenterButtons}
{@link #AppCompatTheme_alertDialogStyle net.kdt.pojavlaunch:alertDialogStyle}
{@link #AppCompatTheme_alertDialogTheme net.kdt.pojavlaunch:alertDialogTheme}
{@link #AppCompatTheme_android_windowAnimationStyle android:windowAnimationStyle}
{@link #AppCompatTheme_android_windowIsFloating android:windowIsFloating}
{@link #AppCompatTheme_autoCompleteTextViewStyle net.kdt.pojavlaunch:autoCompleteTextViewStyle}
{@link #AppCompatTheme_borderlessButtonStyle net.kdt.pojavlaunch:borderlessButtonStyle}
{@link #AppCompatTheme_buttonBarButtonStyle net.kdt.pojavlaunch:buttonBarButtonStyle}
{@link #AppCompatTheme_buttonBarNegativeButtonStyle net.kdt.pojavlaunch:buttonBarNegativeButtonStyle}
{@link #AppCompatTheme_buttonBarNeutralButtonStyle net.kdt.pojavlaunch:buttonBarNeutralButtonStyle}
{@link #AppCompatTheme_buttonBarPositiveButtonStyle net.kdt.pojavlaunch:buttonBarPositiveButtonStyle}
{@link #AppCompatTheme_buttonBarStyle net.kdt.pojavlaunch:buttonBarStyle}
{@link #AppCompatTheme_buttonStyle net.kdt.pojavlaunch:buttonStyle}
{@link #AppCompatTheme_buttonStyleSmall net.kdt.pojavlaunch:buttonStyleSmall}
{@link #AppCompatTheme_checkboxStyle net.kdt.pojavlaunch:checkboxStyle}
{@link #AppCompatTheme_checkedTextViewStyle net.kdt.pojavlaunch:checkedTextViewStyle}
{@link #AppCompatTheme_colorAccent net.kdt.pojavlaunch:colorAccent}
{@link #AppCompatTheme_colorBackgroundFloating net.kdt.pojavlaunch:colorBackgroundFloating}
{@link #AppCompatTheme_colorButtonNormal net.kdt.pojavlaunch:colorButtonNormal}
{@link #AppCompatTheme_colorControlActivated net.kdt.pojavlaunch:colorControlActivated}
{@link #AppCompatTheme_colorControlHighlight net.kdt.pojavlaunch:colorControlHighlight}
{@link #AppCompatTheme_colorControlNormal net.kdt.pojavlaunch:colorControlNormal}
{@link #AppCompatTheme_colorPrimary net.kdt.pojavlaunch:colorPrimary}
{@link #AppCompatTheme_colorPrimaryDark net.kdt.pojavlaunch:colorPrimaryDark}
{@link #AppCompatTheme_colorSwitchThumbNormal net.kdt.pojavlaunch:colorSwitchThumbNormal}
{@link #AppCompatTheme_controlBackground net.kdt.pojavlaunch:controlBackground}
{@link #AppCompatTheme_dialogPreferredPadding net.kdt.pojavlaunch:dialogPreferredPadding}
{@link #AppCompatTheme_dialogTheme net.kdt.pojavlaunch:dialogTheme}
{@link #AppCompatTheme_dividerHorizontal net.kdt.pojavlaunch:dividerHorizontal}
{@link #AppCompatTheme_dividerVertical net.kdt.pojavlaunch:dividerVertical}
{@link #AppCompatTheme_dropDownListViewStyle net.kdt.pojavlaunch:dropDownListViewStyle}
{@link #AppCompatTheme_dropdownListPreferredItemHeight net.kdt.pojavlaunch:dropdownListPreferredItemHeight}
{@link #AppCompatTheme_editTextBackground net.kdt.pojavlaunch:editTextBackground}
{@link #AppCompatTheme_editTextColor net.kdt.pojavlaunch:editTextColor}
{@link #AppCompatTheme_editTextStyle net.kdt.pojavlaunch:editTextStyle}
{@link #AppCompatTheme_homeAsUpIndicator net.kdt.pojavlaunch:homeAsUpIndicator}
{@link #AppCompatTheme_imageButtonStyle net.kdt.pojavlaunch:imageButtonStyle}
{@link #AppCompatTheme_listChoiceBackgroundIndicator net.kdt.pojavlaunch:listChoiceBackgroundIndicator}
{@link #AppCompatTheme_listDividerAlertDialog net.kdt.pojavlaunch:listDividerAlertDialog}
{@link #AppCompatTheme_listMenuViewStyle net.kdt.pojavlaunch:listMenuViewStyle}
{@link #AppCompatTheme_listPopupWindowStyle net.kdt.pojavlaunch:listPopupWindowStyle}
{@link #AppCompatTheme_listPreferredItemHeight net.kdt.pojavlaunch:listPreferredItemHeight}
{@link #AppCompatTheme_listPreferredItemHeightLarge net.kdt.pojavlaunch:listPreferredItemHeightLarge}
{@link #AppCompatTheme_listPreferredItemHeightSmall net.kdt.pojavlaunch:listPreferredItemHeightSmall}
{@link #AppCompatTheme_listPreferredItemPaddingLeft net.kdt.pojavlaunch:listPreferredItemPaddingLeft}
{@link #AppCompatTheme_listPreferredItemPaddingRight net.kdt.pojavlaunch:listPreferredItemPaddingRight}
{@link #AppCompatTheme_panelBackground net.kdt.pojavlaunch:panelBackground}
{@link #AppCompatTheme_panelMenuListTheme net.kdt.pojavlaunch:panelMenuListTheme}
{@link #AppCompatTheme_panelMenuListWidth net.kdt.pojavlaunch:panelMenuListWidth}
{@link #AppCompatTheme_popupMenuStyle net.kdt.pojavlaunch:popupMenuStyle}
{@link #AppCompatTheme_popupWindowStyle net.kdt.pojavlaunch:popupWindowStyle}
{@link #AppCompatTheme_radioButtonStyle net.kdt.pojavlaunch:radioButtonStyle}
{@link #AppCompatTheme_ratingBarStyle net.kdt.pojavlaunch:ratingBarStyle}
{@link #AppCompatTheme_ratingBarStyleIndicator net.kdt.pojavlaunch:ratingBarStyleIndicator}
{@link #AppCompatTheme_ratingBarStyleSmall net.kdt.pojavlaunch:ratingBarStyleSmall}
{@link #AppCompatTheme_searchViewStyle net.kdt.pojavlaunch:searchViewStyle}
{@link #AppCompatTheme_seekBarStyle net.kdt.pojavlaunch:seekBarStyle}
{@link #AppCompatTheme_selectableItemBackground net.kdt.pojavlaunch:selectableItemBackground}
{@link #AppCompatTheme_selectableItemBackgroundBorderless net.kdt.pojavlaunch:selectableItemBackgroundBorderless}
{@link #AppCompatTheme_spinnerDropDownItemStyle net.kdt.pojavlaunch:spinnerDropDownItemStyle}
{@link #AppCompatTheme_spinnerStyle net.kdt.pojavlaunch:spinnerStyle}
{@link #AppCompatTheme_switchStyle net.kdt.pojavlaunch:switchStyle}
{@link #AppCompatTheme_textAppearanceLargePopupMenu net.kdt.pojavlaunch:textAppearanceLargePopupMenu}
{@link #AppCompatTheme_textAppearanceListItem net.kdt.pojavlaunch:textAppearanceListItem}
{@link #AppCompatTheme_textAppearanceListItemSmall net.kdt.pojavlaunch:textAppearanceListItemSmall}
{@link #AppCompatTheme_textAppearancePopupMenuHeader net.kdt.pojavlaunch:textAppearancePopupMenuHeader}
{@link #AppCompatTheme_textAppearanceSearchResultSubtitle net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle}
{@link #AppCompatTheme_textAppearanceSearchResultTitle net.kdt.pojavlaunch:textAppearanceSearchResultTitle}
{@link #AppCompatTheme_textAppearanceSmallPopupMenu net.kdt.pojavlaunch:textAppearanceSmallPopupMenu}
{@link #AppCompatTheme_textColorAlertDialogListItem net.kdt.pojavlaunch:textColorAlertDialogListItem}
{@link #AppCompatTheme_textColorSearchUrl net.kdt.pojavlaunch:textColorSearchUrl}
{@link #AppCompatTheme_toolbarNavigationButtonStyle net.kdt.pojavlaunch:toolbarNavigationButtonStyle}
{@link #AppCompatTheme_toolbarStyle net.kdt.pojavlaunch:toolbarStyle}
{@link #AppCompatTheme_windowActionBar net.kdt.pojavlaunch:windowActionBar}
{@link #AppCompatTheme_windowActionBarOverlay net.kdt.pojavlaunch:windowActionBarOverlay}
{@link #AppCompatTheme_windowActionModeOverlay net.kdt.pojavlaunch:windowActionModeOverlay}
{@link #AppCompatTheme_windowFixedHeightMajor net.kdt.pojavlaunch:windowFixedHeightMajor}
{@link #AppCompatTheme_windowFixedHeightMinor net.kdt.pojavlaunch:windowFixedHeightMinor}
{@link #AppCompatTheme_windowFixedWidthMajor net.kdt.pojavlaunch:windowFixedWidthMajor}
{@link #AppCompatTheme_windowFixedWidthMinor net.kdt.pojavlaunch:windowFixedWidthMinor}
{@link #AppCompatTheme_windowMinWidthMajor net.kdt.pojavlaunch:windowMinWidthMajor}
{@link #AppCompatTheme_windowMinWidthMinor net.kdt.pojavlaunch:windowMinWidthMinor}
{@link #AppCompatTheme_windowNoTitle net.kdt.pojavlaunch:windowNoTitle}
+ @see #AppCompatTheme_actionBarDivider + @see #AppCompatTheme_actionBarItemBackground + @see #AppCompatTheme_actionBarPopupTheme + @see #AppCompatTheme_actionBarSize + @see #AppCompatTheme_actionBarSplitStyle + @see #AppCompatTheme_actionBarStyle + @see #AppCompatTheme_actionBarTabBarStyle + @see #AppCompatTheme_actionBarTabStyle + @see #AppCompatTheme_actionBarTabTextStyle + @see #AppCompatTheme_actionBarTheme + @see #AppCompatTheme_actionBarWidgetTheme + @see #AppCompatTheme_actionButtonStyle + @see #AppCompatTheme_actionDropDownStyle + @see #AppCompatTheme_actionMenuTextAppearance + @see #AppCompatTheme_actionMenuTextColor + @see #AppCompatTheme_actionModeBackground + @see #AppCompatTheme_actionModeCloseButtonStyle + @see #AppCompatTheme_actionModeCloseDrawable + @see #AppCompatTheme_actionModeCopyDrawable + @see #AppCompatTheme_actionModeCutDrawable + @see #AppCompatTheme_actionModeFindDrawable + @see #AppCompatTheme_actionModePasteDrawable + @see #AppCompatTheme_actionModePopupWindowStyle + @see #AppCompatTheme_actionModeSelectAllDrawable + @see #AppCompatTheme_actionModeShareDrawable + @see #AppCompatTheme_actionModeSplitBackground + @see #AppCompatTheme_actionModeStyle + @see #AppCompatTheme_actionModeWebSearchDrawable + @see #AppCompatTheme_actionOverflowButtonStyle + @see #AppCompatTheme_actionOverflowMenuStyle + @see #AppCompatTheme_activityChooserViewStyle + @see #AppCompatTheme_alertDialogButtonGroupStyle + @see #AppCompatTheme_alertDialogCenterButtons + @see #AppCompatTheme_alertDialogStyle + @see #AppCompatTheme_alertDialogTheme + @see #AppCompatTheme_android_windowAnimationStyle + @see #AppCompatTheme_android_windowIsFloating + @see #AppCompatTheme_autoCompleteTextViewStyle + @see #AppCompatTheme_borderlessButtonStyle + @see #AppCompatTheme_buttonBarButtonStyle + @see #AppCompatTheme_buttonBarNegativeButtonStyle + @see #AppCompatTheme_buttonBarNeutralButtonStyle + @see #AppCompatTheme_buttonBarPositiveButtonStyle + @see #AppCompatTheme_buttonBarStyle + @see #AppCompatTheme_buttonStyle + @see #AppCompatTheme_buttonStyleSmall + @see #AppCompatTheme_checkboxStyle + @see #AppCompatTheme_checkedTextViewStyle + @see #AppCompatTheme_colorAccent + @see #AppCompatTheme_colorBackgroundFloating + @see #AppCompatTheme_colorButtonNormal + @see #AppCompatTheme_colorControlActivated + @see #AppCompatTheme_colorControlHighlight + @see #AppCompatTheme_colorControlNormal + @see #AppCompatTheme_colorPrimary + @see #AppCompatTheme_colorPrimaryDark + @see #AppCompatTheme_colorSwitchThumbNormal + @see #AppCompatTheme_controlBackground + @see #AppCompatTheme_dialogPreferredPadding + @see #AppCompatTheme_dialogTheme + @see #AppCompatTheme_dividerHorizontal + @see #AppCompatTheme_dividerVertical + @see #AppCompatTheme_dropDownListViewStyle + @see #AppCompatTheme_dropdownListPreferredItemHeight + @see #AppCompatTheme_editTextBackground + @see #AppCompatTheme_editTextColor + @see #AppCompatTheme_editTextStyle + @see #AppCompatTheme_homeAsUpIndicator + @see #AppCompatTheme_imageButtonStyle + @see #AppCompatTheme_listChoiceBackgroundIndicator + @see #AppCompatTheme_listDividerAlertDialog + @see #AppCompatTheme_listMenuViewStyle + @see #AppCompatTheme_listPopupWindowStyle + @see #AppCompatTheme_listPreferredItemHeight + @see #AppCompatTheme_listPreferredItemHeightLarge + @see #AppCompatTheme_listPreferredItemHeightSmall + @see #AppCompatTheme_listPreferredItemPaddingLeft + @see #AppCompatTheme_listPreferredItemPaddingRight + @see #AppCompatTheme_panelBackground + @see #AppCompatTheme_panelMenuListTheme + @see #AppCompatTheme_panelMenuListWidth + @see #AppCompatTheme_popupMenuStyle + @see #AppCompatTheme_popupWindowStyle + @see #AppCompatTheme_radioButtonStyle + @see #AppCompatTheme_ratingBarStyle + @see #AppCompatTheme_ratingBarStyleIndicator + @see #AppCompatTheme_ratingBarStyleSmall + @see #AppCompatTheme_searchViewStyle + @see #AppCompatTheme_seekBarStyle + @see #AppCompatTheme_selectableItemBackground + @see #AppCompatTheme_selectableItemBackgroundBorderless + @see #AppCompatTheme_spinnerDropDownItemStyle + @see #AppCompatTheme_spinnerStyle + @see #AppCompatTheme_switchStyle + @see #AppCompatTheme_textAppearanceLargePopupMenu + @see #AppCompatTheme_textAppearanceListItem + @see #AppCompatTheme_textAppearanceListItemSmall + @see #AppCompatTheme_textAppearancePopupMenuHeader + @see #AppCompatTheme_textAppearanceSearchResultSubtitle + @see #AppCompatTheme_textAppearanceSearchResultTitle + @see #AppCompatTheme_textAppearanceSmallPopupMenu + @see #AppCompatTheme_textColorAlertDialogListItem + @see #AppCompatTheme_textColorSearchUrl + @see #AppCompatTheme_toolbarNavigationButtonStyle + @see #AppCompatTheme_toolbarStyle + @see #AppCompatTheme_windowActionBar + @see #AppCompatTheme_windowActionBarOverlay + @see #AppCompatTheme_windowActionModeOverlay + @see #AppCompatTheme_windowFixedHeightMajor + @see #AppCompatTheme_windowFixedHeightMinor + @see #AppCompatTheme_windowFixedWidthMajor + @see #AppCompatTheme_windowFixedWidthMinor + @see #AppCompatTheme_windowMinWidthMajor + @see #AppCompatTheme_windowMinWidthMinor + @see #AppCompatTheme_windowNoTitle + */ + public static final int[] AppCompatTheme = { + 0x01010057, 0x010100ae, 0x7f010079, 0x7f01007a, + 0x7f01007b, 0x7f01007c, 0x7f01007d, 0x7f01007e, + 0x7f01007f, 0x7f010080, 0x7f010081, 0x7f010082, + 0x7f010083, 0x7f010084, 0x7f010085, 0x7f010086, + 0x7f010087, 0x7f010088, 0x7f010089, 0x7f01008a, + 0x7f01008b, 0x7f01008c, 0x7f01008d, 0x7f01008e, + 0x7f01008f, 0x7f010090, 0x7f010091, 0x7f010092, + 0x7f010093, 0x7f010094, 0x7f010095, 0x7f010096, + 0x7f010097, 0x7f010098, 0x7f010099, 0x7f01009a, + 0x7f01009b, 0x7f01009c, 0x7f01009d, 0x7f01009e, + 0x7f01009f, 0x7f0100a0, 0x7f0100a1, 0x7f0100a2, + 0x7f0100a3, 0x7f0100a4, 0x7f0100a5, 0x7f0100a6, + 0x7f0100a7, 0x7f0100a8, 0x7f0100a9, 0x7f0100aa, + 0x7f0100ab, 0x7f0100ac, 0x7f0100ad, 0x7f0100ae, + 0x7f0100af, 0x7f0100b0, 0x7f0100b1, 0x7f0100b2, + 0x7f0100b3, 0x7f0100b4, 0x7f0100b5, 0x7f0100b6, + 0x7f0100b7, 0x7f0100b8, 0x7f0100b9, 0x7f0100ba, + 0x7f0100bb, 0x7f0100bc, 0x7f0100bd, 0x7f0100be, + 0x7f0100bf, 0x7f0100c0, 0x7f0100c1, 0x7f0100c2, + 0x7f0100c3, 0x7f0100c4, 0x7f0100c5, 0x7f0100c6, + 0x7f0100c7, 0x7f0100c8, 0x7f0100c9, 0x7f0100ca, + 0x7f0100cb, 0x7f0100cc, 0x7f0100cd, 0x7f0100ce, + 0x7f0100cf, 0x7f0100d0, 0x7f0100d1, 0x7f0100d2, + 0x7f0100d3, 0x7f0100d4, 0x7f0100d5, 0x7f0100d6, + 0x7f0100d7, 0x7f0100d8, 0x7f0100d9, 0x7f0100da, + 0x7f0100db, 0x7f0100dc, 0x7f0100dd, 0x7f0100de, + 0x7f0100df, 0x7f0100e0, 0x7f0100e1, 0x7f0100e2, + 0x7f0100e3, 0x7f0100e4, 0x7f0100e5, 0x7f0100e6, + 0x7f0100e7, 0x7f0100e8, 0x7f0100e9 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarDivider} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarDivider + */ + public static final int AppCompatTheme_actionBarDivider = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarItemBackground + */ + public static final int AppCompatTheme_actionBarItemBackground = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarPopupTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarPopupTheme + */ + public static final int AppCompatTheme_actionBarPopupTheme = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSize} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. +

May be one of the following constant values.

+ ++++ + +
ConstantValueDescription
wrap_content0
+ @attr name net.kdt.pojavlaunch:actionBarSize + */ + public static final int AppCompatTheme_actionBarSize = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarSplitStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarSplitStyle + */ + public static final int AppCompatTheme_actionBarSplitStyle = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarStyle + */ + public static final int AppCompatTheme_actionBarStyle = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabBarStyle + */ + public static final int AppCompatTheme_actionBarTabBarStyle = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabStyle + */ + public static final int AppCompatTheme_actionBarTabStyle = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTabTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTabTextStyle + */ + public static final int AppCompatTheme_actionBarTabTextStyle = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarTheme + */ + public static final int AppCompatTheme_actionBarTheme = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionBarWidgetTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionBarWidgetTheme + */ + public static final int AppCompatTheme_actionBarWidgetTheme = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionButtonStyle + */ + public static final int AppCompatTheme_actionButtonStyle = 50; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionDropDownStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionDropDownStyle + */ + public static final int AppCompatTheme_actionDropDownStyle = 46; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextAppearance} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionMenuTextAppearance + */ + public static final int AppCompatTheme_actionMenuTextAppearance = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionMenuTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:actionMenuTextColor + */ + public static final int AppCompatTheme_actionMenuTextColor = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeBackground + */ + public static final int AppCompatTheme_actionModeBackground = 29; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseButtonStyle + */ + public static final int AppCompatTheme_actionModeCloseButtonStyle = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCloseDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCloseDrawable + */ + public static final int AppCompatTheme_actionModeCloseDrawable = 31; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCopyDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCopyDrawable + */ + public static final int AppCompatTheme_actionModeCopyDrawable = 33; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeCutDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeCutDrawable + */ + public static final int AppCompatTheme_actionModeCutDrawable = 32; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeFindDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeFindDrawable + */ + public static final int AppCompatTheme_actionModeFindDrawable = 37; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePasteDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePasteDrawable + */ + public static final int AppCompatTheme_actionModePasteDrawable = 34; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModePopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModePopupWindowStyle + */ + public static final int AppCompatTheme_actionModePopupWindowStyle = 39; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSelectAllDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSelectAllDrawable + */ + public static final int AppCompatTheme_actionModeSelectAllDrawable = 35; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeShareDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeShareDrawable + */ + public static final int AppCompatTheme_actionModeShareDrawable = 36; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeSplitBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeSplitBackground + */ + public static final int AppCompatTheme_actionModeSplitBackground = 30; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeStyle + */ + public static final int AppCompatTheme_actionModeStyle = 27; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionModeWebSearchDrawable} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionModeWebSearchDrawable + */ + public static final int AppCompatTheme_actionModeWebSearchDrawable = 38; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowButtonStyle + */ + public static final int AppCompatTheme_actionOverflowButtonStyle = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionOverflowMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionOverflowMenuStyle + */ + public static final int AppCompatTheme_actionOverflowMenuStyle = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#activityChooserViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:activityChooserViewStyle + */ + public static final int AppCompatTheme_activityChooserViewStyle = 58; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogButtonGroupStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogButtonGroupStyle + */ + public static final int AppCompatTheme_alertDialogButtonGroupStyle = 94; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogCenterButtons} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alertDialogCenterButtons + */ + public static final int AppCompatTheme_alertDialogCenterButtons = 95; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogStyle + */ + public static final int AppCompatTheme_alertDialogStyle = 93; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alertDialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:alertDialogTheme + */ + public static final int AppCompatTheme_alertDialogTheme = 96; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowAnimationStyle + */ + public static final int AppCompatTheme_android_windowAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#windowIsFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + @attr name android:windowIsFloating + */ + public static final int AppCompatTheme_android_windowIsFloating = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#autoCompleteTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:autoCompleteTextViewStyle + */ + public static final int AppCompatTheme_autoCompleteTextViewStyle = 101; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderlessButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:borderlessButtonStyle + */ + public static final int AppCompatTheme_borderlessButtonStyle = 55; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarButtonStyle + */ + public static final int AppCompatTheme_buttonBarButtonStyle = 52; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNegativeButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNegativeButtonStyle + */ + public static final int AppCompatTheme_buttonBarNegativeButtonStyle = 99; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarNeutralButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarNeutralButtonStyle + */ + public static final int AppCompatTheme_buttonBarNeutralButtonStyle = 100; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarPositiveButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarPositiveButtonStyle + */ + public static final int AppCompatTheme_buttonBarPositiveButtonStyle = 98; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonBarStyle + */ + public static final int AppCompatTheme_buttonBarStyle = 51; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyle + */ + public static final int AppCompatTheme_buttonStyle = 102; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:buttonStyleSmall + */ + public static final int AppCompatTheme_buttonStyleSmall = 103; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkboxStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkboxStyle + */ + public static final int AppCompatTheme_checkboxStyle = 104; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#checkedTextViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:checkedTextViewStyle + */ + public static final int AppCompatTheme_checkedTextViewStyle = 105; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorAccent} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorAccent + */ + public static final int AppCompatTheme_colorAccent = 85; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorBackgroundFloating} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorBackgroundFloating + */ + public static final int AppCompatTheme_colorBackgroundFloating = 92; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorButtonNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorButtonNormal + */ + public static final int AppCompatTheme_colorButtonNormal = 89; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlActivated} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlActivated + */ + public static final int AppCompatTheme_colorControlActivated = 87; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlHighlight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlHighlight + */ + public static final int AppCompatTheme_colorControlHighlight = 88; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorControlNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorControlNormal + */ + public static final int AppCompatTheme_colorControlNormal = 86; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimary} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimary + */ + public static final int AppCompatTheme_colorPrimary = 83; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorPrimaryDark} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorPrimaryDark + */ + public static final int AppCompatTheme_colorPrimaryDark = 84; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#colorSwitchThumbNormal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:colorSwitchThumbNormal + */ + public static final int AppCompatTheme_colorSwitchThumbNormal = 90; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#controlBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:controlBackground + */ + public static final int AppCompatTheme_controlBackground = 91; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogPreferredPadding} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dialogPreferredPadding + */ + public static final int AppCompatTheme_dialogPreferredPadding = 44; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dialogTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dialogTheme + */ + public static final int AppCompatTheme_dialogTheme = 43; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerHorizontal} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerHorizontal + */ + public static final int AppCompatTheme_dividerHorizontal = 57; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerVertical} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dividerVertical + */ + public static final int AppCompatTheme_dividerVertical = 56; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropDownListViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:dropDownListViewStyle + */ + public static final int AppCompatTheme_dropDownListViewStyle = 75; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dropdownListPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dropdownListPreferredItemHeight + */ + public static final int AppCompatTheme_dropdownListPreferredItemHeight = 47; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextBackground + */ + public static final int AppCompatTheme_editTextBackground = 64; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextColor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:editTextColor + */ + public static final int AppCompatTheme_editTextColor = 63; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#editTextStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:editTextStyle + */ + public static final int AppCompatTheme_editTextStyle = 106; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#homeAsUpIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:homeAsUpIndicator + */ + public static final int AppCompatTheme_homeAsUpIndicator = 49; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#imageButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:imageButtonStyle + */ + public static final int AppCompatTheme_imageButtonStyle = 65; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listChoiceBackgroundIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listChoiceBackgroundIndicator + */ + public static final int AppCompatTheme_listChoiceBackgroundIndicator = 82; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listDividerAlertDialog} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listDividerAlertDialog + */ + public static final int AppCompatTheme_listDividerAlertDialog = 45; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listMenuViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listMenuViewStyle + */ + public static final int AppCompatTheme_listMenuViewStyle = 114; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPopupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:listPopupWindowStyle + */ + public static final int AppCompatTheme_listPopupWindowStyle = 76; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeight + */ + public static final int AppCompatTheme_listPreferredItemHeight = 70; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightLarge} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightLarge + */ + public static final int AppCompatTheme_listPreferredItemHeightLarge = 72; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemHeightSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemHeightSmall + */ + public static final int AppCompatTheme_listPreferredItemHeightSmall = 71; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingLeft} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingLeft + */ + public static final int AppCompatTheme_listPreferredItemPaddingLeft = 73; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#listPreferredItemPaddingRight} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:listPreferredItemPaddingRight + */ + public static final int AppCompatTheme_listPreferredItemPaddingRight = 74; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelBackground + */ + public static final int AppCompatTheme_panelBackground = 79; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListTheme} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:panelMenuListTheme + */ + public static final int AppCompatTheme_panelMenuListTheme = 81; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#panelMenuListWidth} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:panelMenuListWidth + */ + public static final int AppCompatTheme_panelMenuListWidth = 80; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupMenuStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupMenuStyle + */ + public static final int AppCompatTheme_popupMenuStyle = 61; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupWindowStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupWindowStyle + */ + public static final int AppCompatTheme_popupWindowStyle = 62; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#radioButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:radioButtonStyle + */ + public static final int AppCompatTheme_radioButtonStyle = 107; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyle + */ + public static final int AppCompatTheme_ratingBarStyle = 108; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleIndicator} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleIndicator + */ + public static final int AppCompatTheme_ratingBarStyleIndicator = 109; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#ratingBarStyleSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:ratingBarStyleSmall + */ + public static final int AppCompatTheme_ratingBarStyleSmall = 110; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchViewStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchViewStyle + */ + public static final int AppCompatTheme_searchViewStyle = 69; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#seekBarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:seekBarStyle + */ + public static final int AppCompatTheme_seekBarStyle = 111; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackground} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackground + */ + public static final int AppCompatTheme_selectableItemBackground = 53; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#selectableItemBackgroundBorderless} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:selectableItemBackgroundBorderless + */ + public static final int AppCompatTheme_selectableItemBackgroundBorderless = 54; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerDropDownItemStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerDropDownItemStyle + */ + public static final int AppCompatTheme_spinnerDropDownItemStyle = 48; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinnerStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:spinnerStyle + */ + public static final int AppCompatTheme_spinnerStyle = 112; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchStyle + */ + public static final int AppCompatTheme_switchStyle = 113; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceLargePopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceLargePopupMenu + */ + public static final int AppCompatTheme_textAppearanceLargePopupMenu = 40; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItem + */ + public static final int AppCompatTheme_textAppearanceListItem = 77; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceListItemSmall} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceListItemSmall + */ + public static final int AppCompatTheme_textAppearanceListItemSmall = 78; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearancePopupMenuHeader} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearancePopupMenuHeader + */ + public static final int AppCompatTheme_textAppearancePopupMenuHeader = 42; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultSubtitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultSubtitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultSubtitle = 67; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSearchResultTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSearchResultTitle + */ + public static final int AppCompatTheme_textAppearanceSearchResultTitle = 66; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAppearanceSmallPopupMenu} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:textAppearanceSmallPopupMenu + */ + public static final int AppCompatTheme_textAppearanceSmallPopupMenu = 41; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorAlertDialogListItem} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorAlertDialogListItem + */ + public static final int AppCompatTheme_textColorAlertDialogListItem = 97; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorSearchUrl} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:textColorSearchUrl + */ + public static final int AppCompatTheme_textColorSearchUrl = 68; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarNavigationButtonStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarNavigationButtonStyle + */ + public static final int AppCompatTheme_toolbarNavigationButtonStyle = 60; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarStyle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarStyle + */ + public static final int AppCompatTheme_toolbarStyle = 59; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBar} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBar + */ + public static final int AppCompatTheme_windowActionBar = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionBarOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionBarOverlay + */ + public static final int AppCompatTheme_windowActionBarOverlay = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowActionModeOverlay} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowActionModeOverlay + */ + public static final int AppCompatTheme_windowActionModeOverlay = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMajor + */ + public static final int AppCompatTheme_windowFixedHeightMajor = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedHeightMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedHeightMinor + */ + public static final int AppCompatTheme_windowFixedHeightMinor = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMajor + */ + public static final int AppCompatTheme_windowFixedWidthMajor = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowFixedWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowFixedWidthMinor + */ + public static final int AppCompatTheme_windowFixedWidthMinor = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMajor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMajor + */ + public static final int AppCompatTheme_windowMinWidthMajor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowMinWidthMinor} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". +The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to +some parent container. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowMinWidthMinor + */ + public static final int AppCompatTheme_windowMinWidthMinor = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#windowNoTitle} + attribute's value can be found in the {@link #AppCompatTheme} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:windowNoTitle + */ + public static final int AppCompatTheme_windowNoTitle = 3; + /** Attributes that can be used with a BottomSheetBehavior_Layout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #BottomSheetBehavior_Layout_behavior_hideable net.kdt.pojavlaunch:behavior_hideable}
{@link #BottomSheetBehavior_Layout_behavior_peekHeight net.kdt.pojavlaunch:behavior_peekHeight}
{@link #BottomSheetBehavior_Layout_behavior_skipCollapsed net.kdt.pojavlaunch:behavior_skipCollapsed}
+ @see #BottomSheetBehavior_Layout_behavior_hideable + @see #BottomSheetBehavior_Layout_behavior_peekHeight + @see #BottomSheetBehavior_Layout_behavior_skipCollapsed + */ + public static final int[] BottomSheetBehavior_Layout = { + 0x7f010009, 0x7f01000a, 0x7f01000b + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_hideable} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_hideable + */ + public static final int BottomSheetBehavior_Layout_behavior_hideable = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_peekHeight} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_peekHeight + */ + public static final int BottomSheetBehavior_Layout_behavior_peekHeight = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_skipCollapsed} + attribute's value can be found in the {@link #BottomSheetBehavior_Layout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_skipCollapsed + */ + public static final int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2; + /** Attributes that can be used with a ButtonBarLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ButtonBarLayout_allowStacking net.kdt.pojavlaunch:allowStacking}
+ @see #ButtonBarLayout_allowStacking + */ + public static final int[] ButtonBarLayout = { + 0x7f0100ea + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#allowStacking} + attribute's value can be found in the {@link #ButtonBarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:allowStacking + */ + public static final int ButtonBarLayout_allowStacking = 0; + /** Attributes that can be used with a CollapsingToolbarLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_collapsedTitleGravity net.kdt.pojavlaunch:collapsedTitleGravity}
{@link #CollapsingToolbarLayout_collapsedTitleTextAppearance net.kdt.pojavlaunch:collapsedTitleTextAppearance}
{@link #CollapsingToolbarLayout_contentScrim net.kdt.pojavlaunch:contentScrim}
{@link #CollapsingToolbarLayout_expandedTitleGravity net.kdt.pojavlaunch:expandedTitleGravity}
{@link #CollapsingToolbarLayout_expandedTitleMargin net.kdt.pojavlaunch:expandedTitleMargin}
{@link #CollapsingToolbarLayout_expandedTitleMarginBottom net.kdt.pojavlaunch:expandedTitleMarginBottom}
{@link #CollapsingToolbarLayout_expandedTitleMarginEnd net.kdt.pojavlaunch:expandedTitleMarginEnd}
{@link #CollapsingToolbarLayout_expandedTitleMarginStart net.kdt.pojavlaunch:expandedTitleMarginStart}
{@link #CollapsingToolbarLayout_expandedTitleMarginTop net.kdt.pojavlaunch:expandedTitleMarginTop}
{@link #CollapsingToolbarLayout_expandedTitleTextAppearance net.kdt.pojavlaunch:expandedTitleTextAppearance}
{@link #CollapsingToolbarLayout_scrimAnimationDuration net.kdt.pojavlaunch:scrimAnimationDuration}
{@link #CollapsingToolbarLayout_scrimVisibleHeightTrigger net.kdt.pojavlaunch:scrimVisibleHeightTrigger}
{@link #CollapsingToolbarLayout_statusBarScrim net.kdt.pojavlaunch:statusBarScrim}
{@link #CollapsingToolbarLayout_title net.kdt.pojavlaunch:title}
{@link #CollapsingToolbarLayout_titleEnabled net.kdt.pojavlaunch:titleEnabled}
{@link #CollapsingToolbarLayout_toolbarId net.kdt.pojavlaunch:toolbarId}
+ @see #CollapsingToolbarLayout_collapsedTitleGravity + @see #CollapsingToolbarLayout_collapsedTitleTextAppearance + @see #CollapsingToolbarLayout_contentScrim + @see #CollapsingToolbarLayout_expandedTitleGravity + @see #CollapsingToolbarLayout_expandedTitleMargin + @see #CollapsingToolbarLayout_expandedTitleMarginBottom + @see #CollapsingToolbarLayout_expandedTitleMarginEnd + @see #CollapsingToolbarLayout_expandedTitleMarginStart + @see #CollapsingToolbarLayout_expandedTitleMarginTop + @see #CollapsingToolbarLayout_expandedTitleTextAppearance + @see #CollapsingToolbarLayout_scrimAnimationDuration + @see #CollapsingToolbarLayout_scrimVisibleHeightTrigger + @see #CollapsingToolbarLayout_statusBarScrim + @see #CollapsingToolbarLayout_title + @see #CollapsingToolbarLayout_titleEnabled + @see #CollapsingToolbarLayout_toolbarId + */ + public static final int[] CollapsingToolbarLayout = { + 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, + 0x7f010010, 0x7f010011, 0x7f010012, 0x7f010013, + 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, + 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f010051 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:collapsedTitleGravity + */ + public static final int CollapsingToolbarLayout_collapsedTitleGravity = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapsedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapsedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_collapsedTitleTextAppearance = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentScrim + */ + public static final int CollapsingToolbarLayout_contentScrim = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleGravity} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
center0x11
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:expandedTitleGravity + */ + public static final int CollapsingToolbarLayout_expandedTitleGravity = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMargin} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMargin + */ + public static final int CollapsingToolbarLayout_expandedTitleMargin = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginBottom} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginBottom + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginBottom = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginEnd} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginEnd + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginStart} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginStart + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginStart = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleMarginTop} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:expandedTitleMarginTop + */ + public static final int CollapsingToolbarLayout_expandedTitleMarginTop = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#expandedTitleTextAppearance} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:expandedTitleTextAppearance + */ + public static final int CollapsingToolbarLayout_expandedTitleTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimAnimationDuration} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimAnimationDuration + */ + public static final int CollapsingToolbarLayout_scrimAnimationDuration = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#scrimVisibleHeightTrigger} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:scrimVisibleHeightTrigger + */ + public static final int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarScrim} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:statusBarScrim + */ + public static final int CollapsingToolbarLayout_statusBarScrim = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int CollapsingToolbarLayout_title = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleEnabled} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleEnabled + */ + public static final int CollapsingToolbarLayout_titleEnabled = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#toolbarId} + attribute's value can be found in the {@link #CollapsingToolbarLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:toolbarId + */ + public static final int CollapsingToolbarLayout_toolbarId = 9; + /** Attributes that can be used with a CollapsingToolbarLayout_Layout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CollapsingToolbarLayout_Layout_layout_collapseMode net.kdt.pojavlaunch:layout_collapseMode}
{@link #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier net.kdt.pojavlaunch:layout_collapseParallaxMultiplier}
+ @see #CollapsingToolbarLayout_Layout_layout_collapseMode + @see #CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier + */ + public static final int[] CollapsingToolbarLayout_Layout = { + 0x7f01001b, 0x7f01001c + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseMode} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
none0
pin1
parallax2
+ @attr name net.kdt.pojavlaunch:layout_collapseMode + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseMode = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_collapseParallaxMultiplier} + attribute's value can be found in the {@link #CollapsingToolbarLayout_Layout} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_collapseParallaxMultiplier + */ + public static final int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1; + /** Attributes that can be used with a ColorStateListItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ColorStateListItem_alpha net.kdt.pojavlaunch:alpha}
{@link #ColorStateListItem_android_alpha android:alpha}
{@link #ColorStateListItem_android_color android:color}
+ @see #ColorStateListItem_alpha + @see #ColorStateListItem_android_alpha + @see #ColorStateListItem_android_color + */ + public static final int[] ColorStateListItem = { + 0x010101a5, 0x0101031f, 0x7f0100eb + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + + +

Must be a floating point value, such as "1.2". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:alpha + */ + public static final int ColorStateListItem_alpha = 2; + /** +

This symbol is the offset where the {@link android.R.attr#alpha} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:alpha + */ + public static final int ColorStateListItem_android_alpha = 1; + /** +

This symbol is the offset where the {@link android.R.attr#color} + attribute's value can be found in the {@link #ColorStateListItem} array. + @attr name android:color + */ + public static final int ColorStateListItem_android_color = 0; + /** Attributes that can be used with a CompoundButton. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #CompoundButton_android_button android:button}
{@link #CompoundButton_buttonTint net.kdt.pojavlaunch:buttonTint}
{@link #CompoundButton_buttonTintMode net.kdt.pojavlaunch:buttonTintMode}
+ @see #CompoundButton_android_button + @see #CompoundButton_buttonTint + @see #CompoundButton_buttonTintMode + */ + public static final int[] CompoundButton = { + 0x01010107, 0x7f0100ec, 0x7f0100ed + }; + /** +

This symbol is the offset where the {@link android.R.attr#button} + attribute's value can be found in the {@link #CompoundButton} array. + @attr name android:button + */ + public static final int CompoundButton_android_button = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTint} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:buttonTint + */ + public static final int CompoundButton_buttonTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonTintMode} + attribute's value can be found in the {@link #CompoundButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:buttonTintMode + */ + public static final int CompoundButton_buttonTintMode = 2; + /** Attributes that can be used with a CoordinatorLayout. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #CoordinatorLayout_keylines net.kdt.pojavlaunch:keylines}
{@link #CoordinatorLayout_statusBarBackground net.kdt.pojavlaunch:statusBarBackground}
+ @see #CoordinatorLayout_keylines + @see #CoordinatorLayout_statusBarBackground + */ + public static final int[] CoordinatorLayout = { + 0x7f01001d, 0x7f01001e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#keylines} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:keylines + */ + public static final int CoordinatorLayout_keylines = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#statusBarBackground} + attribute's value can be found in the {@link #CoordinatorLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:statusBarBackground + */ + public static final int CoordinatorLayout_statusBarBackground = 1; + /** Attributes that can be used with a CoordinatorLayout_Layout. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #CoordinatorLayout_Layout_android_layout_gravity android:layout_gravity}
{@link #CoordinatorLayout_Layout_layout_anchor net.kdt.pojavlaunch:layout_anchor}
{@link #CoordinatorLayout_Layout_layout_anchorGravity net.kdt.pojavlaunch:layout_anchorGravity}
{@link #CoordinatorLayout_Layout_layout_behavior net.kdt.pojavlaunch:layout_behavior}
{@link #CoordinatorLayout_Layout_layout_keyline net.kdt.pojavlaunch:layout_keyline}
+ @see #CoordinatorLayout_Layout_android_layout_gravity + @see #CoordinatorLayout_Layout_layout_anchor + @see #CoordinatorLayout_Layout_layout_anchorGravity + @see #CoordinatorLayout_Layout_layout_behavior + @see #CoordinatorLayout_Layout_layout_keyline + */ + public static final int[] CoordinatorLayout_Layout = { + 0x010100b3, 0x7f01001f, 0x7f010020, 0x7f010021, + 0x7f010022 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + @attr name android:layout_gravity + */ + public static final int CoordinatorLayout_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchor} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout_anchor + */ + public static final int CoordinatorLayout_Layout_layout_anchor = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_anchorGravity} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + + + + + + + + + + +
ConstantValueDescription
top0x30
bottom0x50
left0x03
right0x05
center_vertical0x10
fill_vertical0x70
center_horizontal0x01
fill_horizontal0x07
center0x11
fill0x77
clip_vertical0x80
clip_horizontal0x08
start0x00800003
end0x00800005
+ @attr name net.kdt.pojavlaunch:layout_anchorGravity + */ + public static final int CoordinatorLayout_Layout_layout_anchorGravity = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_behavior} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_behavior + */ + public static final int CoordinatorLayout_Layout_layout_behavior = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout_keyline} + attribute's value can be found in the {@link #CoordinatorLayout_Layout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layout_keyline + */ + public static final int CoordinatorLayout_Layout_layout_keyline = 3; + /** Attributes that can be used with a DesignTheme. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #DesignTheme_bottomSheetDialogTheme net.kdt.pojavlaunch:bottomSheetDialogTheme}
{@link #DesignTheme_bottomSheetStyle net.kdt.pojavlaunch:bottomSheetStyle}
{@link #DesignTheme_textColorError net.kdt.pojavlaunch:textColorError}
+ @see #DesignTheme_bottomSheetDialogTheme + @see #DesignTheme_bottomSheetStyle + @see #DesignTheme_textColorError + */ + public static final int[] DesignTheme = { + 0x7f010023, 0x7f010024, 0x7f010025 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetDialogTheme} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetDialogTheme + */ + public static final int DesignTheme_bottomSheetDialogTheme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#bottomSheetStyle} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:bottomSheetStyle + */ + public static final int DesignTheme_bottomSheetStyle = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textColorError} + attribute's value can be found in the {@link #DesignTheme} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:textColorError + */ + public static final int DesignTheme_textColorError = 2; + /** Attributes that can be used with a DrawerArrowToggle. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #DrawerArrowToggle_arrowHeadLength net.kdt.pojavlaunch:arrowHeadLength}
{@link #DrawerArrowToggle_arrowShaftLength net.kdt.pojavlaunch:arrowShaftLength}
{@link #DrawerArrowToggle_barLength net.kdt.pojavlaunch:barLength}
{@link #DrawerArrowToggle_color net.kdt.pojavlaunch:color}
{@link #DrawerArrowToggle_drawableSize net.kdt.pojavlaunch:drawableSize}
{@link #DrawerArrowToggle_gapBetweenBars net.kdt.pojavlaunch:gapBetweenBars}
{@link #DrawerArrowToggle_spinBars net.kdt.pojavlaunch:spinBars}
{@link #DrawerArrowToggle_thickness net.kdt.pojavlaunch:thickness}
+ @see #DrawerArrowToggle_arrowHeadLength + @see #DrawerArrowToggle_arrowShaftLength + @see #DrawerArrowToggle_barLength + @see #DrawerArrowToggle_color + @see #DrawerArrowToggle_drawableSize + @see #DrawerArrowToggle_gapBetweenBars + @see #DrawerArrowToggle_spinBars + @see #DrawerArrowToggle_thickness + */ + public static final int[] DrawerArrowToggle = { + 0x7f0100ee, 0x7f0100ef, 0x7f0100f0, 0x7f0100f1, + 0x7f0100f2, 0x7f0100f3, 0x7f0100f4, 0x7f0100f5 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowHeadLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowHeadLength + */ + public static final int DrawerArrowToggle_arrowHeadLength = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#arrowShaftLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:arrowShaftLength + */ + public static final int DrawerArrowToggle_arrowShaftLength = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#barLength} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:barLength + */ + public static final int DrawerArrowToggle_barLength = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#color} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:color + */ + public static final int DrawerArrowToggle_color = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#drawableSize} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:drawableSize + */ + public static final int DrawerArrowToggle_drawableSize = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#gapBetweenBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:gapBetweenBars + */ + public static final int DrawerArrowToggle_gapBetweenBars = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spinBars} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spinBars + */ + public static final int DrawerArrowToggle_spinBars = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thickness} + attribute's value can be found in the {@link #DrawerArrowToggle} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thickness + */ + public static final int DrawerArrowToggle_thickness = 7; + /** Attributes that can be used with a FloatingActionButton. +

Includes the following attributes:

+ + + + + + + + + + + + +
AttributeDescription
{@link #FloatingActionButton_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #FloatingActionButton_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
{@link #FloatingActionButton_borderWidth net.kdt.pojavlaunch:borderWidth}
{@link #FloatingActionButton_elevation net.kdt.pojavlaunch:elevation}
{@link #FloatingActionButton_fabSize net.kdt.pojavlaunch:fabSize}
{@link #FloatingActionButton_pressedTranslationZ net.kdt.pojavlaunch:pressedTranslationZ}
{@link #FloatingActionButton_rippleColor net.kdt.pojavlaunch:rippleColor}
{@link #FloatingActionButton_useCompatPadding net.kdt.pojavlaunch:useCompatPadding}
+ @see #FloatingActionButton_backgroundTint + @see #FloatingActionButton_backgroundTintMode + @see #FloatingActionButton_borderWidth + @see #FloatingActionButton_elevation + @see #FloatingActionButton_fabSize + @see #FloatingActionButton_pressedTranslationZ + @see #FloatingActionButton_rippleColor + @see #FloatingActionButton_useCompatPadding + */ + public static final int[] FloatingActionButton = { + 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, + 0x7f01002a, 0x7f01006a, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int FloatingActionButton_backgroundTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int FloatingActionButton_backgroundTintMode = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#borderWidth} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:borderWidth + */ + public static final int FloatingActionButton_borderWidth = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int FloatingActionButton_elevation = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#fabSize} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be one of the following constant values.

+ ++++ + + + +
ConstantValueDescription
auto-1
normal0
mini1
+ @attr name net.kdt.pojavlaunch:fabSize + */ + public static final int FloatingActionButton_fabSize = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#pressedTranslationZ} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:pressedTranslationZ + */ + public static final int FloatingActionButton_pressedTranslationZ = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#rippleColor} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:rippleColor + */ + public static final int FloatingActionButton_rippleColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#useCompatPadding} + attribute's value can be found in the {@link #FloatingActionButton} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:useCompatPadding + */ + public static final int FloatingActionButton_useCompatPadding = 4; + /** Attributes that can be used with a ForegroundLinearLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ForegroundLinearLayout_android_foreground android:foreground}
{@link #ForegroundLinearLayout_android_foregroundGravity android:foregroundGravity}
{@link #ForegroundLinearLayout_foregroundInsidePadding net.kdt.pojavlaunch:foregroundInsidePadding}
+ @see #ForegroundLinearLayout_android_foreground + @see #ForegroundLinearLayout_android_foregroundGravity + @see #ForegroundLinearLayout_foregroundInsidePadding + */ + public static final int[] ForegroundLinearLayout = { + 0x01010109, 0x01010200, 0x7f01002b + }; + /** +

This symbol is the offset where the {@link android.R.attr#foreground} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foreground + */ + public static final int ForegroundLinearLayout_android_foreground = 0; + /** +

This symbol is the offset where the {@link android.R.attr#foregroundGravity} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + @attr name android:foregroundGravity + */ + public static final int ForegroundLinearLayout_android_foregroundGravity = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#foregroundInsidePadding} + attribute's value can be found in the {@link #ForegroundLinearLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:foregroundInsidePadding + */ + public static final int ForegroundLinearLayout_foregroundInsidePadding = 2; + /** Attributes that can be used with a LinearLayoutCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_android_baselineAligned android:baselineAligned}
{@link #LinearLayoutCompat_android_baselineAlignedChildIndex android:baselineAlignedChildIndex}
{@link #LinearLayoutCompat_android_gravity android:gravity}
{@link #LinearLayoutCompat_android_orientation android:orientation}
{@link #LinearLayoutCompat_android_weightSum android:weightSum}
{@link #LinearLayoutCompat_divider net.kdt.pojavlaunch:divider}
{@link #LinearLayoutCompat_dividerPadding net.kdt.pojavlaunch:dividerPadding}
{@link #LinearLayoutCompat_measureWithLargestChild net.kdt.pojavlaunch:measureWithLargestChild}
{@link #LinearLayoutCompat_showDividers net.kdt.pojavlaunch:showDividers}
+ @see #LinearLayoutCompat_android_baselineAligned + @see #LinearLayoutCompat_android_baselineAlignedChildIndex + @see #LinearLayoutCompat_android_gravity + @see #LinearLayoutCompat_android_orientation + @see #LinearLayoutCompat_android_weightSum + @see #LinearLayoutCompat_divider + @see #LinearLayoutCompat_dividerPadding + @see #LinearLayoutCompat_measureWithLargestChild + @see #LinearLayoutCompat_showDividers + */ + public static final int[] LinearLayoutCompat = { + 0x010100af, 0x010100c4, 0x01010126, 0x01010127, + 0x01010128, 0x7f010059, 0x7f0100f6, 0x7f0100f7, + 0x7f0100f8 + }; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAligned} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAligned + */ + public static final int LinearLayoutCompat_android_baselineAligned = 2; + /** +

This symbol is the offset where the {@link android.R.attr#baselineAlignedChildIndex} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:baselineAlignedChildIndex + */ + public static final int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:gravity + */ + public static final int LinearLayoutCompat_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:orientation + */ + public static final int LinearLayoutCompat_android_orientation = 1; + /** +

This symbol is the offset where the {@link android.R.attr#weightSum} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + @attr name android:weightSum + */ + public static final int LinearLayoutCompat_android_weightSum = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#divider} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:divider + */ + public static final int LinearLayoutCompat_divider = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#dividerPadding} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:dividerPadding + */ + public static final int LinearLayoutCompat_dividerPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#measureWithLargestChild} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:measureWithLargestChild + */ + public static final int LinearLayoutCompat_measureWithLargestChild = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showDividers} + attribute's value can be found in the {@link #LinearLayoutCompat} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + +
ConstantValueDescription
none0
beginning1
middle2
end4
+ @attr name net.kdt.pojavlaunch:showDividers + */ + public static final int LinearLayoutCompat_showDividers = 7; + /** Attributes that can be used with a LinearLayoutCompat_Layout. +

Includes the following attributes:

+ + + + + + + + +
AttributeDescription
{@link #LinearLayoutCompat_Layout_android_layout_gravity android:layout_gravity}
{@link #LinearLayoutCompat_Layout_android_layout_height android:layout_height}
{@link #LinearLayoutCompat_Layout_android_layout_weight android:layout_weight}
{@link #LinearLayoutCompat_Layout_android_layout_width android:layout_width}
+ @see #LinearLayoutCompat_Layout_android_layout_gravity + @see #LinearLayoutCompat_Layout_android_layout_height + @see #LinearLayoutCompat_Layout_android_layout_weight + @see #LinearLayoutCompat_Layout_android_layout_width + */ + public static final int[] LinearLayoutCompat_Layout = { + 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 + }; + /** +

This symbol is the offset where the {@link android.R.attr#layout_gravity} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_gravity + */ + public static final int LinearLayoutCompat_Layout_android_layout_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout_height} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_height + */ + public static final int LinearLayoutCompat_Layout_android_layout_height = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout_weight} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_weight + */ + public static final int LinearLayoutCompat_Layout_android_layout_weight = 3; + /** +

This symbol is the offset where the {@link android.R.attr#layout_width} + attribute's value can be found in the {@link #LinearLayoutCompat_Layout} array. + @attr name android:layout_width + */ + public static final int LinearLayoutCompat_Layout_android_layout_width = 1; + /** Attributes that can be used with a ListPopupWindow. +

Includes the following attributes:

+ + + + + + +
AttributeDescription
{@link #ListPopupWindow_android_dropDownHorizontalOffset android:dropDownHorizontalOffset}
{@link #ListPopupWindow_android_dropDownVerticalOffset android:dropDownVerticalOffset}
+ @see #ListPopupWindow_android_dropDownHorizontalOffset + @see #ListPopupWindow_android_dropDownVerticalOffset + */ + public static final int[] ListPopupWindow = { + 0x010102ac, 0x010102ad + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownHorizontalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownHorizontalOffset + */ + public static final int ListPopupWindow_android_dropDownHorizontalOffset = 0; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownVerticalOffset} + attribute's value can be found in the {@link #ListPopupWindow} array. + @attr name android:dropDownVerticalOffset + */ + public static final int ListPopupWindow_android_dropDownVerticalOffset = 1; + /** Attributes that can be used with a MenuGroup. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #MenuGroup_android_checkableBehavior android:checkableBehavior}
{@link #MenuGroup_android_enabled android:enabled}
{@link #MenuGroup_android_id android:id}
{@link #MenuGroup_android_menuCategory android:menuCategory}
{@link #MenuGroup_android_orderInCategory android:orderInCategory}
{@link #MenuGroup_android_visible android:visible}
+ @see #MenuGroup_android_checkableBehavior + @see #MenuGroup_android_enabled + @see #MenuGroup_android_id + @see #MenuGroup_android_menuCategory + @see #MenuGroup_android_orderInCategory + @see #MenuGroup_android_visible + */ + public static final int[] MenuGroup = { + 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, + 0x010101df, 0x010101e0 + }; + /** +

This symbol is the offset where the {@link android.R.attr#checkableBehavior} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:checkableBehavior + */ + public static final int MenuGroup_android_checkableBehavior = 5; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:enabled + */ + public static final int MenuGroup_android_enabled = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:id + */ + public static final int MenuGroup_android_id = 1; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:menuCategory + */ + public static final int MenuGroup_android_menuCategory = 3; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:orderInCategory + */ + public static final int MenuGroup_android_orderInCategory = 4; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuGroup} array. + @attr name android:visible + */ + public static final int MenuGroup_android_visible = 2; + /** Attributes that can be used with a MenuItem. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #MenuItem_actionLayout net.kdt.pojavlaunch:actionLayout}
{@link #MenuItem_actionProviderClass net.kdt.pojavlaunch:actionProviderClass}
{@link #MenuItem_actionViewClass net.kdt.pojavlaunch:actionViewClass}
{@link #MenuItem_android_alphabeticShortcut android:alphabeticShortcut}
{@link #MenuItem_android_checkable android:checkable}
{@link #MenuItem_android_checked android:checked}
{@link #MenuItem_android_enabled android:enabled}
{@link #MenuItem_android_icon android:icon}
{@link #MenuItem_android_id android:id}
{@link #MenuItem_android_menuCategory android:menuCategory}
{@link #MenuItem_android_numericShortcut android:numericShortcut}
{@link #MenuItem_android_onClick android:onClick}
{@link #MenuItem_android_orderInCategory android:orderInCategory}
{@link #MenuItem_android_title android:title}
{@link #MenuItem_android_titleCondensed android:titleCondensed}
{@link #MenuItem_android_visible android:visible}
{@link #MenuItem_showAsAction net.kdt.pojavlaunch:showAsAction}
+ @see #MenuItem_actionLayout + @see #MenuItem_actionProviderClass + @see #MenuItem_actionViewClass + @see #MenuItem_android_alphabeticShortcut + @see #MenuItem_android_checkable + @see #MenuItem_android_checked + @see #MenuItem_android_enabled + @see #MenuItem_android_icon + @see #MenuItem_android_id + @see #MenuItem_android_menuCategory + @see #MenuItem_android_numericShortcut + @see #MenuItem_android_onClick + @see #MenuItem_android_orderInCategory + @see #MenuItem_android_title + @see #MenuItem_android_titleCondensed + @see #MenuItem_android_visible + @see #MenuItem_showAsAction + */ + public static final int[] MenuItem = { + 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, + 0x01010194, 0x010101de, 0x010101df, 0x010101e1, + 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, + 0x0101026f, 0x7f0100f9, 0x7f0100fa, 0x7f0100fb, + 0x7f0100fc + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionLayout} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:actionLayout + */ + public static final int MenuItem_actionLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionProviderClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionProviderClass + */ + public static final int MenuItem_actionProviderClass = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#actionViewClass} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:actionViewClass + */ + public static final int MenuItem_actionViewClass = 15; + /** +

This symbol is the offset where the {@link android.R.attr#alphabeticShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:alphabeticShortcut + */ + public static final int MenuItem_android_alphabeticShortcut = 9; + /** +

This symbol is the offset where the {@link android.R.attr#checkable} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checkable + */ + public static final int MenuItem_android_checkable = 11; + /** +

This symbol is the offset where the {@link android.R.attr#checked} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:checked + */ + public static final int MenuItem_android_checked = 3; + /** +

This symbol is the offset where the {@link android.R.attr#enabled} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:enabled + */ + public static final int MenuItem_android_enabled = 1; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:icon + */ + public static final int MenuItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:id + */ + public static final int MenuItem_android_id = 2; + /** +

This symbol is the offset where the {@link android.R.attr#menuCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:menuCategory + */ + public static final int MenuItem_android_menuCategory = 5; + /** +

This symbol is the offset where the {@link android.R.attr#numericShortcut} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:numericShortcut + */ + public static final int MenuItem_android_numericShortcut = 10; + /** +

This symbol is the offset where the {@link android.R.attr#onClick} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:onClick + */ + public static final int MenuItem_android_onClick = 12; + /** +

This symbol is the offset where the {@link android.R.attr#orderInCategory} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:orderInCategory + */ + public static final int MenuItem_android_orderInCategory = 6; + /** +

This symbol is the offset where the {@link android.R.attr#title} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:title + */ + public static final int MenuItem_android_title = 7; + /** +

This symbol is the offset where the {@link android.R.attr#titleCondensed} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:titleCondensed + */ + public static final int MenuItem_android_titleCondensed = 8; + /** +

This symbol is the offset where the {@link android.R.attr#visible} + attribute's value can be found in the {@link #MenuItem} array. + @attr name android:visible + */ + public static final int MenuItem_android_visible = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showAsAction} + attribute's value can be found in the {@link #MenuItem} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
never0
ifRoom1
always2
withText4
collapseActionView8
+ @attr name net.kdt.pojavlaunch:showAsAction + */ + public static final int MenuItem_showAsAction = 13; + /** Attributes that can be used with a MenuView. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #MenuView_android_headerBackground android:headerBackground}
{@link #MenuView_android_horizontalDivider android:horizontalDivider}
{@link #MenuView_android_itemBackground android:itemBackground}
{@link #MenuView_android_itemIconDisabledAlpha android:itemIconDisabledAlpha}
{@link #MenuView_android_itemTextAppearance android:itemTextAppearance}
{@link #MenuView_android_verticalDivider android:verticalDivider}
{@link #MenuView_android_windowAnimationStyle android:windowAnimationStyle}
{@link #MenuView_preserveIconSpacing net.kdt.pojavlaunch:preserveIconSpacing}
{@link #MenuView_subMenuArrow net.kdt.pojavlaunch:subMenuArrow}
+ @see #MenuView_android_headerBackground + @see #MenuView_android_horizontalDivider + @see #MenuView_android_itemBackground + @see #MenuView_android_itemIconDisabledAlpha + @see #MenuView_android_itemTextAppearance + @see #MenuView_android_verticalDivider + @see #MenuView_android_windowAnimationStyle + @see #MenuView_preserveIconSpacing + @see #MenuView_subMenuArrow + */ + public static final int[] MenuView = { + 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, + 0x0101012f, 0x01010130, 0x01010131, 0x7f0100fd, + 0x7f0100fe + }; + /** +

This symbol is the offset where the {@link android.R.attr#headerBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:headerBackground + */ + public static final int MenuView_android_headerBackground = 4; + /** +

This symbol is the offset where the {@link android.R.attr#horizontalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:horizontalDivider + */ + public static final int MenuView_android_horizontalDivider = 2; + /** +

This symbol is the offset where the {@link android.R.attr#itemBackground} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemBackground + */ + public static final int MenuView_android_itemBackground = 5; + /** +

This symbol is the offset where the {@link android.R.attr#itemIconDisabledAlpha} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemIconDisabledAlpha + */ + public static final int MenuView_android_itemIconDisabledAlpha = 6; + /** +

This symbol is the offset where the {@link android.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:itemTextAppearance + */ + public static final int MenuView_android_itemTextAppearance = 1; + /** +

This symbol is the offset where the {@link android.R.attr#verticalDivider} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:verticalDivider + */ + public static final int MenuView_android_verticalDivider = 3; + /** +

This symbol is the offset where the {@link android.R.attr#windowAnimationStyle} + attribute's value can be found in the {@link #MenuView} array. + @attr name android:windowAnimationStyle + */ + public static final int MenuView_android_windowAnimationStyle = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#preserveIconSpacing} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:preserveIconSpacing + */ + public static final int MenuView_preserveIconSpacing = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subMenuArrow} + attribute's value can be found in the {@link #MenuView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subMenuArrow + */ + public static final int MenuView_subMenuArrow = 8; + /** Attributes that can be used with a NavigationView. +

Includes the following attributes:

+ + + + + + + + + + + + + + +
AttributeDescription
{@link #NavigationView_android_background android:background}
{@link #NavigationView_android_fitsSystemWindows android:fitsSystemWindows}
{@link #NavigationView_android_maxWidth android:maxWidth}
{@link #NavigationView_elevation net.kdt.pojavlaunch:elevation}
{@link #NavigationView_headerLayout net.kdt.pojavlaunch:headerLayout}
{@link #NavigationView_itemBackground net.kdt.pojavlaunch:itemBackground}
{@link #NavigationView_itemIconTint net.kdt.pojavlaunch:itemIconTint}
{@link #NavigationView_itemTextAppearance net.kdt.pojavlaunch:itemTextAppearance}
{@link #NavigationView_itemTextColor net.kdt.pojavlaunch:itemTextColor}
{@link #NavigationView_menu net.kdt.pojavlaunch:menu}
+ @see #NavigationView_android_background + @see #NavigationView_android_fitsSystemWindows + @see #NavigationView_android_maxWidth + @see #NavigationView_elevation + @see #NavigationView_headerLayout + @see #NavigationView_itemBackground + @see #NavigationView_itemIconTint + @see #NavigationView_itemTextAppearance + @see #NavigationView_itemTextColor + @see #NavigationView_menu + */ + public static final int[] NavigationView = { + 0x010100d4, 0x010100dd, 0x0101011f, 0x7f01002c, + 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, + 0x7f010031, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:background + */ + public static final int NavigationView_android_background = 0; + /** +

This symbol is the offset where the {@link android.R.attr#fitsSystemWindows} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:fitsSystemWindows + */ + public static final int NavigationView_android_fitsSystemWindows = 1; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #NavigationView} array. + @attr name android:maxWidth + */ + public static final int NavigationView_android_maxWidth = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int NavigationView_elevation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#headerLayout} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:headerLayout + */ + public static final int NavigationView_headerLayout = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemBackground} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemBackground + */ + public static final int NavigationView_itemBackground = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemIconTint} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemIconTint + */ + public static final int NavigationView_itemIconTint = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextAppearance} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:itemTextAppearance + */ + public static final int NavigationView_itemTextAppearance = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#itemTextColor} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:itemTextColor + */ + public static final int NavigationView_itemTextColor = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#menu} + attribute's value can be found in the {@link #NavigationView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:menu + */ + public static final int NavigationView_menu = 3; + /** Attributes that can be used with a PopupWindow. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #PopupWindow_android_popupAnimationStyle android:popupAnimationStyle}
{@link #PopupWindow_android_popupBackground android:popupBackground}
{@link #PopupWindow_overlapAnchor net.kdt.pojavlaunch:overlapAnchor}
+ @see #PopupWindow_android_popupAnimationStyle + @see #PopupWindow_android_popupBackground + @see #PopupWindow_overlapAnchor + */ + public static final int[] PopupWindow = { + 0x01010176, 0x010102c9, 0x7f0100ff + }; + /** +

This symbol is the offset where the {@link android.R.attr#popupAnimationStyle} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupAnimationStyle + */ + public static final int PopupWindow_android_popupAnimationStyle = 1; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #PopupWindow} array. + @attr name android:popupBackground + */ + public static final int PopupWindow_android_popupBackground = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#overlapAnchor} + attribute's value can be found in the {@link #PopupWindow} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:overlapAnchor + */ + public static final int PopupWindow_overlapAnchor = 2; + /** Attributes that can be used with a PopupWindowBackgroundState. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #PopupWindowBackgroundState_state_above_anchor net.kdt.pojavlaunch:state_above_anchor}
+ @see #PopupWindowBackgroundState_state_above_anchor + */ + public static final int[] PopupWindowBackgroundState = { + 0x7f010100 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#state_above_anchor} + attribute's value can be found in the {@link #PopupWindowBackgroundState} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:state_above_anchor + */ + public static final int PopupWindowBackgroundState_state_above_anchor = 0; + /** Attributes that can be used with a RecyclerView. +

Includes the following attributes:

+ + + + + + + + + + +
AttributeDescription
{@link #RecyclerView_android_descendantFocusability android:descendantFocusability}
{@link #RecyclerView_android_orientation android:orientation}
{@link #RecyclerView_layoutManager net.kdt.pojavlaunch:layoutManager}
{@link #RecyclerView_reverseLayout net.kdt.pojavlaunch:reverseLayout}
{@link #RecyclerView_spanCount net.kdt.pojavlaunch:spanCount}
{@link #RecyclerView_stackFromEnd net.kdt.pojavlaunch:stackFromEnd}
+ @see #RecyclerView_android_descendantFocusability + @see #RecyclerView_android_orientation + @see #RecyclerView_layoutManager + @see #RecyclerView_reverseLayout + @see #RecyclerView_spanCount + @see #RecyclerView_stackFromEnd + */ + public static final int[] RecyclerView = { + 0x010100c4, 0x010100f1, 0x7f010000, 0x7f010001, + 0x7f010002, 0x7f010003 + }; + /** +

This symbol is the offset where the {@link android.R.attr#descendantFocusability} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:descendantFocusability + */ + public static final int RecyclerView_android_descendantFocusability = 1; + /** +

This symbol is the offset where the {@link android.R.attr#orientation} + attribute's value can be found in the {@link #RecyclerView} array. + @attr name android:orientation + */ + public static final int RecyclerView_android_orientation = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layoutManager} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:layoutManager + */ + public static final int RecyclerView_layoutManager = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#reverseLayout} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:reverseLayout + */ + public static final int RecyclerView_reverseLayout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#spanCount} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:spanCount + */ + public static final int RecyclerView_spanCount = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#stackFromEnd} + attribute's value can be found in the {@link #RecyclerView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:stackFromEnd + */ + public static final int RecyclerView_stackFromEnd = 5; + /** Attributes that can be used with a ScrimInsetsFrameLayout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrimInsetsFrameLayout_insetForeground net.kdt.pojavlaunch:insetForeground}
+ @see #ScrimInsetsFrameLayout_insetForeground + */ + public static final int[] ScrimInsetsFrameLayout = { + 0x7f010032 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#insetForeground} + attribute's value can be found in the {@link #ScrimInsetsFrameLayout} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". + @attr name net.kdt.pojavlaunch:insetForeground + */ + public static final int ScrimInsetsFrameLayout_insetForeground = 0; + /** Attributes that can be used with a ScrollingViewBehavior_Layout. +

Includes the following attributes:

+ + + + + +
AttributeDescription
{@link #ScrollingViewBehavior_Layout_behavior_overlapTop net.kdt.pojavlaunch:behavior_overlapTop}
+ @see #ScrollingViewBehavior_Layout_behavior_overlapTop + */ + public static final int[] ScrollingViewBehavior_Layout = { + 0x7f010033 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#behavior_overlapTop} + attribute's value can be found in the {@link #ScrollingViewBehavior_Layout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:behavior_overlapTop + */ + public static final int ScrollingViewBehavior_Layout_behavior_overlapTop = 0; + /** Attributes that can be used with a SearchView. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SearchView_android_focusable android:focusable}
{@link #SearchView_android_imeOptions android:imeOptions}
{@link #SearchView_android_inputType android:inputType}
{@link #SearchView_android_maxWidth android:maxWidth}
{@link #SearchView_closeIcon net.kdt.pojavlaunch:closeIcon}
{@link #SearchView_commitIcon net.kdt.pojavlaunch:commitIcon}
{@link #SearchView_defaultQueryHint net.kdt.pojavlaunch:defaultQueryHint}
{@link #SearchView_goIcon net.kdt.pojavlaunch:goIcon}
{@link #SearchView_iconifiedByDefault net.kdt.pojavlaunch:iconifiedByDefault}
{@link #SearchView_layout net.kdt.pojavlaunch:layout}
{@link #SearchView_queryBackground net.kdt.pojavlaunch:queryBackground}
{@link #SearchView_queryHint net.kdt.pojavlaunch:queryHint}
{@link #SearchView_searchHintIcon net.kdt.pojavlaunch:searchHintIcon}
{@link #SearchView_searchIcon net.kdt.pojavlaunch:searchIcon}
{@link #SearchView_submitBackground net.kdt.pojavlaunch:submitBackground}
{@link #SearchView_suggestionRowLayout net.kdt.pojavlaunch:suggestionRowLayout}
{@link #SearchView_voiceIcon net.kdt.pojavlaunch:voiceIcon}
+ @see #SearchView_android_focusable + @see #SearchView_android_imeOptions + @see #SearchView_android_inputType + @see #SearchView_android_maxWidth + @see #SearchView_closeIcon + @see #SearchView_commitIcon + @see #SearchView_defaultQueryHint + @see #SearchView_goIcon + @see #SearchView_iconifiedByDefault + @see #SearchView_layout + @see #SearchView_queryBackground + @see #SearchView_queryHint + @see #SearchView_searchHintIcon + @see #SearchView_searchIcon + @see #SearchView_submitBackground + @see #SearchView_suggestionRowLayout + @see #SearchView_voiceIcon + */ + public static final int[] SearchView = { + 0x010100da, 0x0101011f, 0x01010220, 0x01010264, + 0x7f010101, 0x7f010102, 0x7f010103, 0x7f010104, + 0x7f010105, 0x7f010106, 0x7f010107, 0x7f010108, + 0x7f010109, 0x7f01010a, 0x7f01010b, 0x7f01010c, + 0x7f01010d + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:focusable + */ + public static final int SearchView_android_focusable = 0; + /** +

This symbol is the offset where the {@link android.R.attr#imeOptions} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:imeOptions + */ + public static final int SearchView_android_imeOptions = 3; + /** +

This symbol is the offset where the {@link android.R.attr#inputType} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:inputType + */ + public static final int SearchView_android_inputType = 2; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SearchView} array. + @attr name android:maxWidth + */ + public static final int SearchView_android_maxWidth = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#closeIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:closeIcon + */ + public static final int SearchView_closeIcon = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#commitIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:commitIcon + */ + public static final int SearchView_commitIcon = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#defaultQueryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:defaultQueryHint + */ + public static final int SearchView_defaultQueryHint = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#goIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:goIcon + */ + public static final int SearchView_goIcon = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#iconifiedByDefault} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:iconifiedByDefault + */ + public static final int SearchView_iconifiedByDefault = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#layout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:layout + */ + public static final int SearchView_layout = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:queryBackground + */ + public static final int SearchView_queryBackground = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#queryHint} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:queryHint + */ + public static final int SearchView_queryHint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchHintIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchHintIcon + */ + public static final int SearchView_searchHintIcon = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#searchIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:searchIcon + */ + public static final int SearchView_searchIcon = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#submitBackground} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:submitBackground + */ + public static final int SearchView_submitBackground = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#suggestionRowLayout} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:suggestionRowLayout + */ + public static final int SearchView_suggestionRowLayout = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#voiceIcon} + attribute's value can be found in the {@link #SearchView} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:voiceIcon + */ + public static final int SearchView_voiceIcon = 12; + /** Attributes that can be used with a SnackbarLayout. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #SnackbarLayout_android_maxWidth android:maxWidth}
{@link #SnackbarLayout_elevation net.kdt.pojavlaunch:elevation}
{@link #SnackbarLayout_maxActionInlineWidth net.kdt.pojavlaunch:maxActionInlineWidth}
+ @see #SnackbarLayout_android_maxWidth + @see #SnackbarLayout_elevation + @see #SnackbarLayout_maxActionInlineWidth + */ + public static final int[] SnackbarLayout = { + 0x0101011f, 0x7f010034, 0x7f01006a + }; + /** +

This symbol is the offset where the {@link android.R.attr#maxWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + @attr name android:maxWidth + */ + public static final int SnackbarLayout_android_maxWidth = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#elevation} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:elevation + */ + public static final int SnackbarLayout_elevation = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxActionInlineWidth} + attribute's value can be found in the {@link #SnackbarLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxActionInlineWidth + */ + public static final int SnackbarLayout_maxActionInlineWidth = 1; + /** Attributes that can be used with a Spinner. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #Spinner_android_dropDownWidth android:dropDownWidth}
{@link #Spinner_android_entries android:entries}
{@link #Spinner_android_popupBackground android:popupBackground}
{@link #Spinner_android_prompt android:prompt}
{@link #Spinner_popupTheme net.kdt.pojavlaunch:popupTheme}
+ @see #Spinner_android_dropDownWidth + @see #Spinner_android_entries + @see #Spinner_android_popupBackground + @see #Spinner_android_prompt + @see #Spinner_popupTheme + */ + public static final int[] Spinner = { + 0x010100b2, 0x01010176, 0x0101017b, 0x01010262, + 0x7f01006b + }; + /** +

This symbol is the offset where the {@link android.R.attr#dropDownWidth} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:dropDownWidth + */ + public static final int Spinner_android_dropDownWidth = 3; + /** +

This symbol is the offset where the {@link android.R.attr#entries} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:entries + */ + public static final int Spinner_android_entries = 0; + /** +

This symbol is the offset where the {@link android.R.attr#popupBackground} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:popupBackground + */ + public static final int Spinner_android_popupBackground = 1; + /** +

This symbol is the offset where the {@link android.R.attr#prompt} + attribute's value can be found in the {@link #Spinner} array. + @attr name android:prompt + */ + public static final int Spinner_android_prompt = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Spinner} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Spinner_popupTheme = 4; + /** Attributes that can be used with a SwitchCompat. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #SwitchCompat_android_textOff android:textOff}
{@link #SwitchCompat_android_textOn android:textOn}
{@link #SwitchCompat_android_thumb android:thumb}
{@link #SwitchCompat_showText net.kdt.pojavlaunch:showText}
{@link #SwitchCompat_splitTrack net.kdt.pojavlaunch:splitTrack}
{@link #SwitchCompat_switchMinWidth net.kdt.pojavlaunch:switchMinWidth}
{@link #SwitchCompat_switchPadding net.kdt.pojavlaunch:switchPadding}
{@link #SwitchCompat_switchTextAppearance net.kdt.pojavlaunch:switchTextAppearance}
{@link #SwitchCompat_thumbTextPadding net.kdt.pojavlaunch:thumbTextPadding}
{@link #SwitchCompat_thumbTint net.kdt.pojavlaunch:thumbTint}
{@link #SwitchCompat_thumbTintMode net.kdt.pojavlaunch:thumbTintMode}
{@link #SwitchCompat_track net.kdt.pojavlaunch:track}
{@link #SwitchCompat_trackTint net.kdt.pojavlaunch:trackTint}
{@link #SwitchCompat_trackTintMode net.kdt.pojavlaunch:trackTintMode}
+ @see #SwitchCompat_android_textOff + @see #SwitchCompat_android_textOn + @see #SwitchCompat_android_thumb + @see #SwitchCompat_showText + @see #SwitchCompat_splitTrack + @see #SwitchCompat_switchMinWidth + @see #SwitchCompat_switchPadding + @see #SwitchCompat_switchTextAppearance + @see #SwitchCompat_thumbTextPadding + @see #SwitchCompat_thumbTint + @see #SwitchCompat_thumbTintMode + @see #SwitchCompat_track + @see #SwitchCompat_trackTint + @see #SwitchCompat_trackTintMode + */ + public static final int[] SwitchCompat = { + 0x01010124, 0x01010125, 0x01010142, 0x7f01010e, + 0x7f01010f, 0x7f010110, 0x7f010111, 0x7f010112, + 0x7f010113, 0x7f010114, 0x7f010115, 0x7f010116, + 0x7f010117, 0x7f010118 + }; + /** +

This symbol is the offset where the {@link android.R.attr#textOff} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOff + */ + public static final int SwitchCompat_android_textOff = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textOn} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:textOn + */ + public static final int SwitchCompat_android_textOn = 0; + /** +

This symbol is the offset where the {@link android.R.attr#thumb} + attribute's value can be found in the {@link #SwitchCompat} array. + @attr name android:thumb + */ + public static final int SwitchCompat_android_thumb = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#showText} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:showText + */ + public static final int SwitchCompat_showText = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#splitTrack} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:splitTrack + */ + public static final int SwitchCompat_splitTrack = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchMinWidth} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchMinWidth + */ + public static final int SwitchCompat_switchMinWidth = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:switchPadding + */ + public static final int SwitchCompat_switchPadding = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#switchTextAppearance} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:switchTextAppearance + */ + public static final int SwitchCompat_switchTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTextPadding} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTextPadding + */ + public static final int SwitchCompat_thumbTextPadding = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:thumbTint + */ + public static final int SwitchCompat_thumbTint = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#thumbTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:thumbTintMode + */ + public static final int SwitchCompat_thumbTintMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#track} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:track + */ + public static final int SwitchCompat_track = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTint} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:trackTint + */ + public static final int SwitchCompat_trackTint = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#trackTintMode} + attribute's value can be found in the {@link #SwitchCompat} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
add16
+ @attr name net.kdt.pojavlaunch:trackTintMode + */ + public static final int SwitchCompat_trackTintMode = 7; + /** Attributes that can be used with a TabItem. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #TabItem_android_icon android:icon}
{@link #TabItem_android_layout android:layout}
{@link #TabItem_android_text android:text}
+ @see #TabItem_android_icon + @see #TabItem_android_layout + @see #TabItem_android_text + */ + public static final int[] TabItem = { + 0x01010002, 0x010100f2, 0x0101014f + }; + /** +

This symbol is the offset where the {@link android.R.attr#icon} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:icon + */ + public static final int TabItem_android_icon = 0; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:layout + */ + public static final int TabItem_android_layout = 1; + /** +

This symbol is the offset where the {@link android.R.attr#text} + attribute's value can be found in the {@link #TabItem} array. + @attr name android:text + */ + public static final int TabItem_android_text = 2; + /** Attributes that can be used with a TabLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #TabLayout_tabBackground net.kdt.pojavlaunch:tabBackground}
{@link #TabLayout_tabContentStart net.kdt.pojavlaunch:tabContentStart}
{@link #TabLayout_tabGravity net.kdt.pojavlaunch:tabGravity}
{@link #TabLayout_tabIndicatorColor net.kdt.pojavlaunch:tabIndicatorColor}
{@link #TabLayout_tabIndicatorHeight net.kdt.pojavlaunch:tabIndicatorHeight}
{@link #TabLayout_tabMaxWidth net.kdt.pojavlaunch:tabMaxWidth}
{@link #TabLayout_tabMinWidth net.kdt.pojavlaunch:tabMinWidth}
{@link #TabLayout_tabMode net.kdt.pojavlaunch:tabMode}
{@link #TabLayout_tabPadding net.kdt.pojavlaunch:tabPadding}
{@link #TabLayout_tabPaddingBottom net.kdt.pojavlaunch:tabPaddingBottom}
{@link #TabLayout_tabPaddingEnd net.kdt.pojavlaunch:tabPaddingEnd}
{@link #TabLayout_tabPaddingStart net.kdt.pojavlaunch:tabPaddingStart}
{@link #TabLayout_tabPaddingTop net.kdt.pojavlaunch:tabPaddingTop}
{@link #TabLayout_tabSelectedTextColor net.kdt.pojavlaunch:tabSelectedTextColor}
{@link #TabLayout_tabTextAppearance net.kdt.pojavlaunch:tabTextAppearance}
{@link #TabLayout_tabTextColor net.kdt.pojavlaunch:tabTextColor}
+ @see #TabLayout_tabBackground + @see #TabLayout_tabContentStart + @see #TabLayout_tabGravity + @see #TabLayout_tabIndicatorColor + @see #TabLayout_tabIndicatorHeight + @see #TabLayout_tabMaxWidth + @see #TabLayout_tabMinWidth + @see #TabLayout_tabMode + @see #TabLayout_tabPadding + @see #TabLayout_tabPaddingBottom + @see #TabLayout_tabPaddingEnd + @see #TabLayout_tabPaddingStart + @see #TabLayout_tabPaddingTop + @see #TabLayout_tabSelectedTextColor + @see #TabLayout_tabTextAppearance + @see #TabLayout_tabTextColor + */ + public static final int[] TabLayout = { + 0x7f010035, 0x7f010036, 0x7f010037, 0x7f010038, + 0x7f010039, 0x7f01003a, 0x7f01003b, 0x7f01003c, + 0x7f01003d, 0x7f01003e, 0x7f01003f, 0x7f010040, + 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044 + }; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabBackground} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabBackground + */ + public static final int TabLayout_tabBackground = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabContentStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabContentStart + */ + public static final int TabLayout_tabContentStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabGravity} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
fill0
center1
+ @attr name net.kdt.pojavlaunch:tabGravity + */ + public static final int TabLayout_tabGravity = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorColor + */ + public static final int TabLayout_tabIndicatorColor = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabIndicatorHeight} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabIndicatorHeight + */ + public static final int TabLayout_tabIndicatorHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMaxWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMaxWidth + */ + public static final int TabLayout_tabMaxWidth = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMinWidth} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabMinWidth + */ + public static final int TabLayout_tabMinWidth = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabMode} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be one of the following constant values.

+ ++++ + + +
ConstantValueDescription
scrollable0
fixed1
+ @attr name net.kdt.pojavlaunch:tabMode + */ + public static final int TabLayout_tabMode = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPadding} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPadding + */ + public static final int TabLayout_tabPadding = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingBottom} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingBottom + */ + public static final int TabLayout_tabPaddingBottom = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingEnd} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingEnd + */ + public static final int TabLayout_tabPaddingEnd = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingStart} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingStart + */ + public static final int TabLayout_tabPaddingStart = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabPaddingTop} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabPaddingTop + */ + public static final int TabLayout_tabPaddingTop = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabSelectedTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabSelectedTextColor + */ + public static final int TabLayout_tabSelectedTextColor = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextAppearance} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:tabTextAppearance + */ + public static final int TabLayout_tabTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#tabTextColor} + attribute's value can be found in the {@link #TabLayout} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:tabTextColor + */ + public static final int TabLayout_tabTextColor = 9; + /** Attributes that can be used with a TextAppearance. +

Includes the following attributes:

+ + + + + + + + + + + + + +
AttributeDescription
{@link #TextAppearance_android_shadowColor android:shadowColor}
{@link #TextAppearance_android_shadowDx android:shadowDx}
{@link #TextAppearance_android_shadowDy android:shadowDy}
{@link #TextAppearance_android_shadowRadius android:shadowRadius}
{@link #TextAppearance_android_textColor android:textColor}
{@link #TextAppearance_android_textSize android:textSize}
{@link #TextAppearance_android_textStyle android:textStyle}
{@link #TextAppearance_android_typeface android:typeface}
{@link #TextAppearance_textAllCaps net.kdt.pojavlaunch:textAllCaps}
+ @see #TextAppearance_android_shadowColor + @see #TextAppearance_android_shadowDx + @see #TextAppearance_android_shadowDy + @see #TextAppearance_android_shadowRadius + @see #TextAppearance_android_textColor + @see #TextAppearance_android_textSize + @see #TextAppearance_android_textStyle + @see #TextAppearance_android_typeface + @see #TextAppearance_textAllCaps + */ + public static final int[] TextAppearance = { + 0x01010095, 0x01010096, 0x01010097, 0x01010098, + 0x01010161, 0x01010162, 0x01010163, 0x01010164, + 0x7f010078 + }; + /** +

This symbol is the offset where the {@link android.R.attr#shadowColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowColor + */ + public static final int TextAppearance_android_shadowColor = 4; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDx} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDx + */ + public static final int TextAppearance_android_shadowDx = 5; + /** +

This symbol is the offset where the {@link android.R.attr#shadowDy} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowDy + */ + public static final int TextAppearance_android_shadowDy = 6; + /** +

This symbol is the offset where the {@link android.R.attr#shadowRadius} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:shadowRadius + */ + public static final int TextAppearance_android_shadowRadius = 7; + /** +

This symbol is the offset where the {@link android.R.attr#textColor} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textColor + */ + public static final int TextAppearance_android_textColor = 3; + /** +

This symbol is the offset where the {@link android.R.attr#textSize} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textSize + */ + public static final int TextAppearance_android_textSize = 0; + /** +

This symbol is the offset where the {@link android.R.attr#textStyle} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:textStyle + */ + public static final int TextAppearance_android_textStyle = 2; + /** +

This symbol is the offset where the {@link android.R.attr#typeface} + attribute's value can be found in the {@link #TextAppearance} array. + @attr name android:typeface + */ + public static final int TextAppearance_android_typeface = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#textAllCaps} + attribute's value can be found in the {@link #TextAppearance} array. + + +

May be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". +

May be a boolean value, either "true" or "false". + @attr name net.kdt.pojavlaunch:textAllCaps + */ + public static final int TextAppearance_textAllCaps = 8; + /** Attributes that can be used with a TextInputLayout. +

Includes the following attributes:

+ + + + + + + + + + + + + + + +
AttributeDescription
{@link #TextInputLayout_android_hint android:hint}
{@link #TextInputLayout_android_textColorHint android:textColorHint}
{@link #TextInputLayout_counterEnabled net.kdt.pojavlaunch:counterEnabled}
{@link #TextInputLayout_counterMaxLength net.kdt.pojavlaunch:counterMaxLength}
{@link #TextInputLayout_counterOverflowTextAppearance net.kdt.pojavlaunch:counterOverflowTextAppearance}
{@link #TextInputLayout_counterTextAppearance net.kdt.pojavlaunch:counterTextAppearance}
{@link #TextInputLayout_errorEnabled net.kdt.pojavlaunch:errorEnabled}
{@link #TextInputLayout_errorTextAppearance net.kdt.pojavlaunch:errorTextAppearance}
{@link #TextInputLayout_hintAnimationEnabled net.kdt.pojavlaunch:hintAnimationEnabled}
{@link #TextInputLayout_hintEnabled net.kdt.pojavlaunch:hintEnabled}
{@link #TextInputLayout_hintTextAppearance net.kdt.pojavlaunch:hintTextAppearance}
+ @see #TextInputLayout_android_hint + @see #TextInputLayout_android_textColorHint + @see #TextInputLayout_counterEnabled + @see #TextInputLayout_counterMaxLength + @see #TextInputLayout_counterOverflowTextAppearance + @see #TextInputLayout_counterTextAppearance + @see #TextInputLayout_errorEnabled + @see #TextInputLayout_errorTextAppearance + @see #TextInputLayout_hintAnimationEnabled + @see #TextInputLayout_hintEnabled + @see #TextInputLayout_hintTextAppearance + */ + public static final int[] TextInputLayout = { + 0x0101009a, 0x01010150, 0x7f010045, 0x7f010046, + 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, + 0x7f01004b, 0x7f01004c, 0x7f01004d + }; + /** +

This symbol is the offset where the {@link android.R.attr#hint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:hint + */ + public static final int TextInputLayout_android_hint = 1; + /** +

This symbol is the offset where the {@link android.R.attr#textColorHint} + attribute's value can be found in the {@link #TextInputLayout} array. + @attr name android:textColorHint + */ + public static final int TextInputLayout_android_textColorHint = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterEnabled + */ + public static final int TextInputLayout_counterEnabled = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterMaxLength} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be an integer value, such as "100". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:counterMaxLength + */ + public static final int TextInputLayout_counterMaxLength = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterOverflowTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterOverflowTextAppearance + */ + public static final int TextInputLayout_counterOverflowTextAppearance = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#counterTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:counterTextAppearance + */ + public static final int TextInputLayout_counterTextAppearance = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:errorEnabled + */ + public static final int TextInputLayout_errorEnabled = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#errorTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:errorTextAppearance + */ + public static final int TextInputLayout_errorTextAppearance = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintAnimationEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintAnimationEnabled + */ + public static final int TextInputLayout_hintAnimationEnabled = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintEnabled} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a boolean value, either "true" or "false". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:hintEnabled + */ + public static final int TextInputLayout_hintEnabled = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#hintTextAppearance} + attribute's value can be found in the {@link #TextInputLayout} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:hintTextAppearance + */ + public static final int TextInputLayout_hintTextAppearance = 2; + /** Attributes that can be used with a Toolbar. +

Includes the following attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributeDescription
{@link #Toolbar_android_gravity android:gravity}
{@link #Toolbar_android_minHeight android:minHeight}
{@link #Toolbar_buttonGravity net.kdt.pojavlaunch:buttonGravity}
{@link #Toolbar_collapseContentDescription net.kdt.pojavlaunch:collapseContentDescription}
{@link #Toolbar_collapseIcon net.kdt.pojavlaunch:collapseIcon}
{@link #Toolbar_contentInsetEnd net.kdt.pojavlaunch:contentInsetEnd}
{@link #Toolbar_contentInsetEndWithActions net.kdt.pojavlaunch:contentInsetEndWithActions}
{@link #Toolbar_contentInsetLeft net.kdt.pojavlaunch:contentInsetLeft}
{@link #Toolbar_contentInsetRight net.kdt.pojavlaunch:contentInsetRight}
{@link #Toolbar_contentInsetStart net.kdt.pojavlaunch:contentInsetStart}
{@link #Toolbar_contentInsetStartWithNavigation net.kdt.pojavlaunch:contentInsetStartWithNavigation}
{@link #Toolbar_logo net.kdt.pojavlaunch:logo}
{@link #Toolbar_logoDescription net.kdt.pojavlaunch:logoDescription}
{@link #Toolbar_maxButtonHeight net.kdt.pojavlaunch:maxButtonHeight}
{@link #Toolbar_navigationContentDescription net.kdt.pojavlaunch:navigationContentDescription}
{@link #Toolbar_navigationIcon net.kdt.pojavlaunch:navigationIcon}
{@link #Toolbar_popupTheme net.kdt.pojavlaunch:popupTheme}
{@link #Toolbar_subtitle net.kdt.pojavlaunch:subtitle}
{@link #Toolbar_subtitleTextAppearance net.kdt.pojavlaunch:subtitleTextAppearance}
{@link #Toolbar_subtitleTextColor net.kdt.pojavlaunch:subtitleTextColor}
{@link #Toolbar_title net.kdt.pojavlaunch:title}
{@link #Toolbar_titleMargin net.kdt.pojavlaunch:titleMargin}
{@link #Toolbar_titleMarginBottom net.kdt.pojavlaunch:titleMarginBottom}
{@link #Toolbar_titleMarginEnd net.kdt.pojavlaunch:titleMarginEnd}
{@link #Toolbar_titleMarginStart net.kdt.pojavlaunch:titleMarginStart}
{@link #Toolbar_titleMarginTop net.kdt.pojavlaunch:titleMarginTop}
{@link #Toolbar_titleMargins net.kdt.pojavlaunch:titleMargins}
{@link #Toolbar_titleTextAppearance net.kdt.pojavlaunch:titleTextAppearance}
{@link #Toolbar_titleTextColor net.kdt.pojavlaunch:titleTextColor}
+ @see #Toolbar_android_gravity + @see #Toolbar_android_minHeight + @see #Toolbar_buttonGravity + @see #Toolbar_collapseContentDescription + @see #Toolbar_collapseIcon + @see #Toolbar_contentInsetEnd + @see #Toolbar_contentInsetEndWithActions + @see #Toolbar_contentInsetLeft + @see #Toolbar_contentInsetRight + @see #Toolbar_contentInsetStart + @see #Toolbar_contentInsetStartWithNavigation + @see #Toolbar_logo + @see #Toolbar_logoDescription + @see #Toolbar_maxButtonHeight + @see #Toolbar_navigationContentDescription + @see #Toolbar_navigationIcon + @see #Toolbar_popupTheme + @see #Toolbar_subtitle + @see #Toolbar_subtitleTextAppearance + @see #Toolbar_subtitleTextColor + @see #Toolbar_title + @see #Toolbar_titleMargin + @see #Toolbar_titleMarginBottom + @see #Toolbar_titleMarginEnd + @see #Toolbar_titleMarginStart + @see #Toolbar_titleMarginTop + @see #Toolbar_titleMargins + @see #Toolbar_titleTextAppearance + @see #Toolbar_titleTextColor + */ + public static final int[] Toolbar = { + 0x010100af, 0x01010140, 0x7f010051, 0x7f010054, + 0x7f010058, 0x7f010064, 0x7f010065, 0x7f010066, + 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006b, + 0x7f010119, 0x7f01011a, 0x7f01011b, 0x7f01011c, + 0x7f01011d, 0x7f01011e, 0x7f01011f, 0x7f010120, + 0x7f010121, 0x7f010122, 0x7f010123, 0x7f010124, + 0x7f010125, 0x7f010126, 0x7f010127, 0x7f010128, + 0x7f010129 + }; + /** +

This symbol is the offset where the {@link android.R.attr#gravity} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:gravity + */ + public static final int Toolbar_android_gravity = 0; + /** +

This symbol is the offset where the {@link android.R.attr#minHeight} + attribute's value can be found in the {@link #Toolbar} array. + @attr name android:minHeight + */ + public static final int Toolbar_android_minHeight = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#buttonGravity} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be one or more (separated by '|') of the following constant values.

+ ++++ + + +
ConstantValueDescription
top0x30
bottom0x50
+ @attr name net.kdt.pojavlaunch:buttonGravity + */ + public static final int Toolbar_buttonGravity = 21; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:collapseContentDescription + */ + public static final int Toolbar_collapseContentDescription = 23; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#collapseIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:collapseIcon + */ + public static final int Toolbar_collapseIcon = 22; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEnd + */ + public static final int Toolbar_contentInsetEnd = 6; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetEndWithActions} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetEndWithActions + */ + public static final int Toolbar_contentInsetEndWithActions = 10; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetLeft} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetLeft + */ + public static final int Toolbar_contentInsetLeft = 7; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetRight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetRight + */ + public static final int Toolbar_contentInsetRight = 8; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStart + */ + public static final int Toolbar_contentInsetStart = 5; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#contentInsetStartWithNavigation} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:contentInsetStartWithNavigation + */ + public static final int Toolbar_contentInsetStartWithNavigation = 9; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logo} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:logo + */ + public static final int Toolbar_logo = 4; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#logoDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:logoDescription + */ + public static final int Toolbar_logoDescription = 26; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#maxButtonHeight} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:maxButtonHeight + */ + public static final int Toolbar_maxButtonHeight = 20; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationContentDescription} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:navigationContentDescription + */ + public static final int Toolbar_navigationContentDescription = 25; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#navigationIcon} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:navigationIcon + */ + public static final int Toolbar_navigationIcon = 24; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#popupTheme} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:popupTheme + */ + public static final int Toolbar_popupTheme = 11; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitle} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitle + */ + public static final int Toolbar_subtitle = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:subtitleTextAppearance + */ + public static final int Toolbar_subtitleTextAppearance = 13; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#subtitleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:subtitleTextColor + */ + public static final int Toolbar_subtitleTextColor = 28; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#title} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:title + */ + public static final int Toolbar_title = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargin} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargin + */ + public static final int Toolbar_titleMargin = 14; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginBottom} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginBottom + */ + public static final int Toolbar_titleMarginBottom = 18; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginEnd} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginEnd + */ + public static final int Toolbar_titleMarginEnd = 16; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginStart} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginStart + */ + public static final int Toolbar_titleMarginStart = 15; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMarginTop} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMarginTop + */ + public static final int Toolbar_titleMarginTop = 17; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleMargins} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleMargins + */ + public static final int Toolbar_titleMargins = 19; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextAppearance} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:titleTextAppearance + */ + public static final int Toolbar_titleTextAppearance = 12; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#titleTextColor} + attribute's value can be found in the {@link #Toolbar} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:titleTextColor + */ + public static final int Toolbar_titleTextColor = 27; + /** Attributes that can be used with a View. +

Includes the following attributes:

+ + + + + + + + + +
AttributeDescription
{@link #View_android_focusable android:focusable}
{@link #View_android_theme android:theme}
{@link #View_paddingEnd net.kdt.pojavlaunch:paddingEnd}
{@link #View_paddingStart net.kdt.pojavlaunch:paddingStart}
{@link #View_theme net.kdt.pojavlaunch:theme}
+ @see #View_android_focusable + @see #View_android_theme + @see #View_paddingEnd + @see #View_paddingStart + @see #View_theme + */ + public static final int[] View = { + 0x01010000, 0x010100da, 0x7f01012a, 0x7f01012b, + 0x7f01012c + }; + /** +

This symbol is the offset where the {@link android.R.attr#focusable} + attribute's value can be found in the {@link #View} array. + @attr name android:focusable + */ + public static final int View_android_focusable = 1; + /** +

This symbol is the offset where the {@link android.R.attr#theme} + attribute's value can be found in the {@link #View} array. + @attr name android:theme + */ + public static final int View_android_theme = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingEnd} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingEnd + */ + public static final int View_paddingEnd = 3; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#paddingStart} + attribute's value can be found in the {@link #View} array. + + +

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". +Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), +in (inches), mm (millimeters). +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:paddingStart + */ + public static final int View_paddingStart = 2; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#theme} + attribute's value can be found in the {@link #View} array. + + +

Must be a reference to another resource, in the form "@[+][package:]type:name" +or to a theme attribute in the form "?[package:][type:]name". + @attr name net.kdt.pojavlaunch:theme + */ + public static final int View_theme = 4; + /** Attributes that can be used with a ViewBackgroundHelper. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewBackgroundHelper_android_background android:background}
{@link #ViewBackgroundHelper_backgroundTint net.kdt.pojavlaunch:backgroundTint}
{@link #ViewBackgroundHelper_backgroundTintMode net.kdt.pojavlaunch:backgroundTintMode}
+ @see #ViewBackgroundHelper_android_background + @see #ViewBackgroundHelper_backgroundTint + @see #ViewBackgroundHelper_backgroundTintMode + */ + public static final int[] ViewBackgroundHelper = { + 0x010100d4, 0x7f01012d, 0x7f01012e + }; + /** +

This symbol is the offset where the {@link android.R.attr#background} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + @attr name android:background + */ + public static final int ViewBackgroundHelper_android_background = 0; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTint} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be a color value, in the form of "#rgb", "#argb", +"#rrggbb", or "#aarrggbb". +

This may also be a reference to a resource (in the form +"@[package:]type:name") or +theme attribute (in the form +"?[package:][type:]name") +containing a value of this type. + @attr name net.kdt.pojavlaunch:backgroundTint + */ + public static final int ViewBackgroundHelper_backgroundTint = 1; + /** +

This symbol is the offset where the {@link net.kdt.pojavlaunch.R.attr#backgroundTintMode} + attribute's value can be found in the {@link #ViewBackgroundHelper} array. + + +

Must be one of the following constant values.

+ ++++ + + + + + +
ConstantValueDescription
src_over3
src_in5
src_atop9
multiply14
screen15
+ @attr name net.kdt.pojavlaunch:backgroundTintMode + */ + public static final int ViewBackgroundHelper_backgroundTintMode = 2; + /** Attributes that can be used with a ViewStubCompat. +

Includes the following attributes:

+ + + + + + + +
AttributeDescription
{@link #ViewStubCompat_android_id android:id}
{@link #ViewStubCompat_android_inflatedId android:inflatedId}
{@link #ViewStubCompat_android_layout android:layout}
+ @see #ViewStubCompat_android_id + @see #ViewStubCompat_android_inflatedId + @see #ViewStubCompat_android_layout + */ + public static final int[] ViewStubCompat = { + 0x010100d0, 0x010100f2, 0x010100f3 + }; + /** +

This symbol is the offset where the {@link android.R.attr#id} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:id + */ + public static final int ViewStubCompat_android_id = 0; + /** +

This symbol is the offset where the {@link android.R.attr#inflatedId} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:inflatedId + */ + public static final int ViewStubCompat_android_inflatedId = 2; + /** +

This symbol is the offset where the {@link android.R.attr#layout} + attribute's value can be found in the {@link #ViewStubCompat} array. + @attr name android:layout + */ + public static final int ViewStubCompat_android_layout = 1; + }; +} diff --git a/app/libs/PointerCapture26Wrapper.jar b/app/libs/PointerCapture26Wrapper.jar new file mode 100644 index 000000000..5cbfc92c6 Binary files /dev/null and b/app/libs/PointerCapture26Wrapper.jar differ diff --git a/app/libs/asm-tree-5.0.3.jar b/app/libs/asm-tree-5.0.3.jar new file mode 100644 index 000000000..e7eae5357 Binary files /dev/null and b/app/libs/asm-tree-5.0.3.jar differ diff --git a/app/libs/boardwalk_asm.jar b/app/libs/boardwalk_asm.jar new file mode 100644 index 000000000..3b5557ad9 Binary files /dev/null and b/app/libs/boardwalk_asm.jar differ diff --git a/app/libs/boardwalk_jinput.jar b/app/libs/boardwalk_jinput.jar new file mode 100644 index 000000000..7153409e0 Binary files /dev/null and b/app/libs/boardwalk_jinput.jar differ diff --git a/app/libs/boardwalk_lwjgl.jar b/app/libs/boardwalk_lwjgl.jar new file mode 100644 index 000000000..bd6712008 Binary files /dev/null and b/app/libs/boardwalk_lwjgl.jar differ diff --git a/app/libs/boardwalk_lzma.jar b/app/libs/boardwalk_lzma.jar new file mode 100644 index 000000000..78f484e90 Binary files /dev/null and b/app/libs/boardwalk_lzma.jar differ diff --git a/app/libs/gson-2.8.6.jar b/app/libs/gson-2.8.6.jar new file mode 100644 index 000000000..aa78b0c28 Binary files /dev/null and b/app/libs/gson-2.8.6.jar differ diff --git a/app/libs/jopt-simple-5.0.4.jar b/app/libs/jopt-simple-5.0.4.jar new file mode 100644 index 000000000..317b2b069 Binary files /dev/null and b/app/libs/jopt-simple-5.0.4.jar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 000000000..1359ec662 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,18 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\tools\adt-bundle-windows-x86_64-20131030\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# 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 *; +#} +-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..355be8f41 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/changelog.txt b/app/src/main/assets/changelog.txt new file mode 100644 index 000000000..36ba7751b --- /dev/null +++ b/app/src/main/assets/changelog.txt @@ -0,0 +1,56 @@ +# 1.0 ALPHA (private): + • Initial release. + +# 1.2 ALPHA: + • Changes: + - Added 1.2.5, 1.7.2, 1.7.10, 1.8, 1.9 pre-converted versions. + - Added Tab, Screenshot, Force close buttons. + +# 1.4 (Lost source code and APK before release) + - Added Download version option. + - Added virtual mouse (but better than 2.0 mouse rewrite) + +# v2.0 BETA: + • Changes: + - (Partial) New design (copy of 2017 MCPC launcher) + - Changed how users load/save. + - Added Menu: for more options to select. + - Added virtual mouse: helper for touching small objects! Styled PC mouse. + + • Fixed: + - Max progress -1 when converting. + - Verification failed when run some versions (by patch the client file) + +# v2.1 BETA release: + • Changes: + - Added Changelog button! + - Custom versions now visible in the list (not implemented for user) + - In-app Update now got fuctionally. + - Replaced glshim with GL4ES for OpenGL 2.0 renderer. + +# v2.2 BETA (private): + • Changes: + - Added busybox. + - Added OpenJDK for converter ARM64 only. + - Added more AWT functions. + - Screenshot (and F2 key) now capture using directly API (javax.imageio). + +# v2.3 BETA release: + • Changes: + - Changed some code in update function. + +# v2.3.1 BETA release: + • Changes: + - Added text selection on OpenJDK install log. + - Fixed devices can't be installed OpenJDK but able to hide the dialog. + +# v2.4 RELEASE: + • Remember: If your device is Android higher or equals to 7.0, use VMOS app. This app install Android 5.1 OS to your device. You can take it to run this app (VMOS is removed out of Play Store, you must install it manually) + + • Changes: + - Removed OpenJDK and busybox. + +# Not fixed: + - In some devices, app will gone or crash if it run in background. + - Some version under 1.7 may not smoothly due to AWT from OpenJDK. + - Virtual mouse is stick to scroll screens. diff --git a/app/src/main/assets/current_changelog.txt b/app/src/main/assets/current_changelog.txt new file mode 100644 index 000000000..839238963 --- /dev/null +++ b/app/src/main/assets/current_changelog.txt @@ -0,0 +1,28 @@ +Version 2.4.1 + +* Changed (user): +- Translate is easier than before. +- UI layout now fit to the big screen. +- Fixed click event triggered after touch screen. + +* Changed (development): +- Redesigned partially of UI. +- Added 'Do not show again' to warning to unsupported Android version. +- Moved strings to /res/values/strings.xml for easy translating. +- Fixed touch event trigger as click on LWJGL (exist from Boardwalk) + +* The first as '#' for FIXED or DID IT. +* Or as '$' for PARTIAL '#'. + +* Know issuses from 2.4 affect in Android 9 devices. +- Cannot find class 'com.google.guava.?' (#E0402) + +* TODO of the launcher: +# Clean unused AWT classes. +# Optimize more performance of AWT classes. +$ Fill in all missing classes. +$ Redesign user interface. +$ Run without VMOS (VMOS takes ~500MB for secondary Android system). +- External mouse tracker. +- Make LWJGL3 and GLFW translator code to LWJGL2. +- Support client 1.13 and above. diff --git a/app/src/main/assets/font/LICENSE_OFL.txt b/app/src/main/assets/font/LICENSE_OFL.txt new file mode 100644 index 000000000..d952d62c0 --- /dev/null +++ b/app/src/main/assets/font/LICENSE_OFL.txt @@ -0,0 +1,92 @@ +This Font Software is licensed under the SIL Open Font License, +Version 1.1. + +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font +creation efforts of academic and linguistic communities, and to +provide a free and open framework in which fonts may be shared and +improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply to +any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software +components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, +deleting, or substituting -- in part or in whole -- any of the +components of the Original Version, by changing formats or by porting +the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, +modify, redistribute, and sell modified and unmodified copies of the +Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in +Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the +corresponding Copyright Holder. This restriction only applies to the +primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created using +the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/app/src/main/assets/font/NotoSans-Bold.ttf b/app/src/main/assets/font/NotoSans-Bold.ttf new file mode 100644 index 000000000..ab11d3163 Binary files /dev/null and b/app/src/main/assets/font/NotoSans-Bold.ttf differ diff --git a/app/src/main/assets/libraries/com/google/guava/guava/17.0/guava-17.0.jar b/app/src/main/assets/libraries/com/google/guava/guava/17.0/guava-17.0.jar new file mode 100644 index 000000000..9beb3ead9 Binary files /dev/null and b/app/src/main/assets/libraries/com/google/guava/guava/17.0/guava-17.0.jar differ diff --git a/app/src/main/assets/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar b/app/src/main/assets/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar new file mode 100644 index 000000000..2bc76ac09 Binary files /dev/null and b/app/src/main/assets/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar differ diff --git a/app/src/main/assets/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar b/app/src/main/assets/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar new file mode 100644 index 000000000..483016644 Binary files /dev/null and b/app/src/main/assets/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar differ diff --git a/app/src/main/assets/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar b/app/src/main/assets/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar new file mode 100644 index 000000000..7055c06ca Binary files /dev/null and b/app/src/main/assets/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar differ diff --git a/app/src/main/assets/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar b/app/src/main/assets/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar new file mode 100644 index 000000000..5c59c17c0 Binary files /dev/null and b/app/src/main/assets/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar differ diff --git a/app/src/main/assets/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar b/app/src/main/assets/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar new file mode 100644 index 000000000..13576cd10 Binary files /dev/null and b/app/src/main/assets/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar differ diff --git a/app/src/main/assets/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar b/app/src/main/assets/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar new file mode 100644 index 000000000..a6cf77d7b Binary files /dev/null and b/app/src/main/assets/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar differ diff --git a/app/src/main/assets/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar b/app/src/main/assets/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar new file mode 100644 index 000000000..b6986c4ad Binary files /dev/null and b/app/src/main/assets/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar differ diff --git a/app/src/main/assets/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar b/app/src/main/assets/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar new file mode 100644 index 000000000..9fa1c5e9e Binary files /dev/null and b/app/src/main/assets/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar differ diff --git a/app/src/main/assets/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar b/app/src/main/assets/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar new file mode 100644 index 000000000..3dd320c0f Binary files /dev/null and b/app/src/main/assets/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar differ diff --git a/app/src/main/assets/libraries/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar b/app/src/main/assets/libraries/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar new file mode 100644 index 000000000..4eb347dfb Binary files /dev/null and b/app/src/main/assets/libraries/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar differ diff --git a/app/src/main/assets/libraries/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar b/app/src/main/assets/libraries/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar new file mode 100644 index 000000000..2a7d2eb2e Binary files /dev/null and b/app/src/main/assets/libraries/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar differ diff --git a/app/src/main/assets/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar b/app/src/main/assets/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar new file mode 100644 index 000000000..64c337d5a Binary files /dev/null and b/app/src/main/assets/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar differ diff --git a/app/src/main/assets/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar b/app/src/main/assets/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar new file mode 100644 index 000000000..3a52f6b45 Binary files /dev/null and b/app/src/main/assets/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar differ diff --git a/app/src/main/assets/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar b/app/src/main/assets/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar new file mode 100644 index 000000000..e3c449f29 Binary files /dev/null and b/app/src/main/assets/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar differ diff --git a/app/src/main/assets/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar b/app/src/main/assets/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar new file mode 100644 index 000000000..fd9abd88a Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar differ diff --git a/app/src/main/assets/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar b/app/src/main/assets/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar new file mode 100644 index 000000000..d694d6729 Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar differ diff --git a/app/src/main/assets/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar b/app/src/main/assets/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar new file mode 100644 index 000000000..e7290e24f Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar differ diff --git a/app/src/main/assets/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar b/app/src/main/assets/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar new file mode 100644 index 000000000..ddcbed77d Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar differ diff --git a/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar b/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar new file mode 100644 index 000000000..fd3dbf37b Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar differ diff --git a/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar b/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar new file mode 100644 index 000000000..d9ba1143d Binary files /dev/null and b/app/src/main/assets/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar differ diff --git a/app/src/main/assets/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar b/app/src/main/assets/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar new file mode 100644 index 000000000..d8a6fd056 Binary files /dev/null and b/app/src/main/assets/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar differ diff --git a/app/src/main/assets/multidoj.dex b/app/src/main/assets/multidoj.dex new file mode 100644 index 000000000..6f645fde9 Binary files /dev/null and b/app/src/main/assets/multidoj.dex differ diff --git a/app/src/main/assets/multidoj.txt b/app/src/main/assets/multidoj.txt new file mode 100644 index 000000000..d5c3b7b9f --- /dev/null +++ b/app/src/main/assets/multidoj.txt @@ -0,0 +1,32 @@ + - multidoj is a modified version of dx.jar (dexer tool). + - It creates raw dex files and a resources.jar in multidoj folder, make the RAM usage is fewer than dx. + - multidoj implements multidex and process listener for embedding to an app. + +NOTE: multidoj24 is unstable on Android 7.0 and up. So may not support... + +How to use multidoj: + - For embedding to your app: + + Make sure you have added these import: + // Begin code + import com.android.dx.observer.ObserverStatus; + // End code + + Next, set the listener when processing files: + // Begin code + ObserverStatus.setListener(new ObserverStatus.ProcessListener(){ + @Override + public void onProcess(String msg, int max, int current) { + // Implements your code here + } + }); + // End code + + Finally, convert a file: + // Begin code + String INPUT_FILE = "(your input file path)"; + String OUTPUT_FILE = "(your output file path)"; + + com.android.dx.command.Main.main( + "--dex", "--output", OUTPUT_FILE, INPUT_FILE + ); + // End code + - For load via JarClassLoader + NOTE: Only dexer feature has observer. diff --git a/app/src/main/assets/options.txt b/app/src/main/assets/options.txt new file mode 100644 index 000000000..198dcf1a8 --- /dev/null +++ b/app/src/main/assets/options.txt @@ -0,0 +1,96 @@ +invertYMouse:false +mouseSensitivity:0.5 +fov:0.0 +gamma:0.5070422 +saturation:0.0 +renderDistance:2 +guiScale:3 +particles:1 +bobView:false +anaglyph3d:false +advancedOpengl:false +maxFps:260 +fboEnable:true +difficulty:2 +fancyGraphics:false +ao:0 +clouds:true +resourcePacks:[] +lastServer: +lang:en_US +chatVisibility:0 +chatColors:true +chatLinks:true +chatLinksPrompt:true +chatOpacity:1.0 +snooperEnabled:true +fullscreen:true +enableVsync:false +hideServerAddress:false +advancedItemTooltips:false +pauseOnLostFocus:true +showCape:true +touchscreen:true +overrideWidth:0 +overrideHeight:0 +heldItemTooltips:true +chatHeightFocused:1.0 +chatHeightUnfocused:0.44366196 +chatScale:1.0 +chatWidth:1.0 +showInventoryAchievementHint:false +mipmapLevels:0 +anisotropicFiltering:1 +streamBytesPerPixel:0.5 +streamMicVolume:1.0 +streamSystemVolume:1.0 +streamKbps:0.5412844 +streamFps:0.31690142 +streamCompression:1 +streamSendMetadata:true +streamPreferredServer: +streamChatEnabled:0 +streamChatUserFilter:0 +streamMicToggleBehavior:0 +forceUnicodeFont:false +key_key.attack:-100 +key_key.use:-99 +key_key.forward:17 +key_key.left:30 +key_key.back:31 +key_key.right:32 +key_key.jump:57 +key_key.sneak:42 +key_key.drop:16 +key_key.inventory:18 +key_key.chat:20 +key_key.playerlist:15 +key_key.pickItem:-98 +key_key.command:53 +key_key.screenshot:60 +key_key.togglePerspective:63 +key_key.smoothCamera:0 +key_key.sprint:29 +key_key.streamStartStop:64 +key_key.streamPauseUnpause:65 +key_key.streamCommercial:0 +key_key.streamToggleMic:0 +key_key.fullscreen:87 +key_key.hotbar.1:2 +key_key.hotbar.2:3 +key_key.hotbar.3:4 +key_key.hotbar.4:5 +key_key.hotbar.5:6 +key_key.hotbar.6:7 +key_key.hotbar.7:8 +key_key.hotbar.8:9 +key_key.hotbar.9:10 +soundCategory_master:1.0 +soundCategory_music:1.0 +soundCategory_record:1.0 +soundCategory_weather:1.0 +soundCategory_block:1.0 +soundCategory_hostile:1.0 +soundCategory_neutral:1.0 +soundCategory_player:1.0 +soundCategory_ambient:1.0 diff --git a/app/src/main/java/android/graphics/PixelXorXfermode.java b/app/src/main/java/android/graphics/PixelXorXfermode.java new file mode 100644 index 000000000..2337c8d06 --- /dev/null +++ b/app/src/main/java/android/graphics/PixelXorXfermode.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.graphics; +import java.lang.reflect.*; +/** + * PixelXorXfermode implements a simple pixel xor (op ^ src ^ dst). + * This transformation does not follow premultiplied conventions, therefore + * this mode *always* returns an opaque color (alpha == 255). Thus it is + * not really usefull for operating on blended colors. + */ +@Deprecated +public class PixelXorXfermode extends Xfermode { + public PixelXorXfermode(int opColor) { + try { + Field field_nativeInstance = getClass().getDeclaredField("native_instance"); + field_nativeInstance.setAccessible(true); + field_nativeInstance.set(null, nativeCreate(opColor)); + } catch (Exception e) { + e.printStackTrace(); + } + } + private static native int nativeCreate(int opColor); +} diff --git a/app/src/main/java/appletlogo.gif b/app/src/main/java/appletlogo.gif new file mode 100644 index 000000000..283e15e39 Binary files /dev/null and b/app/src/main/java/appletlogo.gif differ diff --git a/app/src/main/java/appletprogress.gif b/app/src/main/java/appletprogress.gif new file mode 100644 index 000000000..3ed42c66b Binary files /dev/null and b/app/src/main/java/appletprogress.gif differ diff --git a/app/src/main/java/com/kdt/filerapi/FileListAdapter.java b/app/src/main/java/com/kdt/filerapi/FileListAdapter.java new file mode 100644 index 000000000..865157ab9 --- /dev/null +++ b/app/src/main/java/com/kdt/filerapi/FileListAdapter.java @@ -0,0 +1,120 @@ +package com.kdt.filerapi; + +/* + * Copyright (C) 2012 Paul Burke + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import android.content.*; +import android.view.*; +import android.widget.*; +import java.io.*; +import java.util.*; +import net.kdt.pojavlaunch.*; + +/** + * List adapter for Files. + * + * @version 2013-12-11 + * @author paulburke (ipaulpro) + * + * @addDate 2018-08-08 + * @addToMyProject khanhduy032 (kdt032) + */ +public class FileListAdapter extends BaseAdapter { + + private final static int ICON_FOLDER = R.drawable.ic_folder; + private final static int ICON_FILE = R.drawable.ic_file; + + private final LayoutInflater mInflater; + + private List mData = new ArrayList(); + + public FileListAdapter(Context context) { + mInflater = LayoutInflater.from(context); + } + + public void add(File file) { + mData.add(file); + notifyDataSetChanged(); + } + + public void remove(File file) { + mData.remove(file); + notifyDataSetChanged(); + } + + public void insert(File file, int index) { + mData.add(index, file); + notifyDataSetChanged(); + } + + public void clear() { + mData.clear(); + notifyDataSetChanged(); + } + + @Override + public File getItem(int position) { + return mData.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public int getCount() { + return mData.size(); + } + + public List getListItems() { + return mData; + } + + /** + * Set the list items without notifying on the clear. This prevents loss of + * scroll position. + * + * @param data + */ + public void setListItems(List data) { + mData = data; + notifyDataSetChanged(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + + if (row == null) + row = mInflater.inflate(android.R.layout.simple_list_item_1, parent, false); + + TextView view = (TextView) row; + + // Get the file at the current position + final File file = getItem(position); + + // Set the TextView as the file name + view.setText(file.getName()); + + // If the item is not a directory, use the file icon + int icon = file.isDirectory() ? ICON_FOLDER : ICON_FILE; + view.setCompoundDrawablesWithIntrinsicBounds(icon, 0, 0, 0); + + return row; + } + +} diff --git a/app/src/main/java/com/kdt/filerapi/FileListView.java b/app/src/main/java/com/kdt/filerapi/FileListView.java new file mode 100644 index 000000000..2eb9935da --- /dev/null +++ b/app/src/main/java/com/kdt/filerapi/FileListView.java @@ -0,0 +1,170 @@ +package com.kdt.filerapi; + +import android.content.*; +import android.graphics.*; +import android.os.*; +import android.support.annotation.*; +import android.util.*; +import android.view.*; +import android.widget.*; +import android.widget.AdapterView.*; +import java.io.*; +import java.util.*; + +public class FileListView extends LinearLayout +{ + //For list view: + private String fullPath; + private TextView mainTv; + private ListView mainLv; + private Context context; + + //For message empty: + private WindowManager emptyWm; + private TextView emptyTv; + + //For File selected listener: + private FileSelectedListener listener; + + public FileListView(Context context) + { + super(context); + init(context); + } + public FileListView(Context context, AttributeSet attrs) + { + super(context, attrs); + init(context); + } + public FileListView(Context context, AttributeSet attrs, int defStyle) + { + super(context, attrs, defStyle); + init(context); + } + public void init(final Context context) + { + //Empty message setup: + WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); + mParams.width = WindowManager.LayoutParams.WRAP_CONTENT; + mParams.height = WindowManager.LayoutParams.WRAP_CONTENT; + mParams.gravity = Gravity.CENTER; + mParams.format = PixelFormat.TRANSLUCENT; + mParams.type = WindowManager.LayoutParams.TYPE_APPLICATION; + mParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; + + emptyWm = (WindowManager) context.getSystemService(context.WINDOW_SERVICE); + + emptyTv = new TextView(context); + emptyTv.setText("This folder is empty"); + + emptyWm.addView(emptyTv, mParams); + + //Main setup: + this.context = context; + + LayoutParams layParam = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); + + setOrientation(VERTICAL); + + mainTv = new TextView(context); + mainTv.setText("Path: null"); + + mainLv = new ListView(context); + + listFileAt(Environment.getExternalStorageDirectory().getPath()); + + mainLv.setOnItemClickListener(new OnItemClickListener(){ + @Override + public void onItemClick(AdapterView p1, View p2, int p3, long p4) + { + // TODO: Implement this method + File mainFile = new File(p1.getItemAtPosition(p3).toString()); + String name = mainFile.getName(); + //Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show(); + if(name.equals(".. ")){ + parentDir(); + } + else{ + listFileAt(mainFile.getAbsolutePath()); + } + } + }); + + addView(mainTv, layParam); + addView(mainLv, layParam); + } + public void setFileSelectedListener(FileSelectedListener listener) + { + this.listener = listener; + } + public void listFileAt(final String path) + { + try{ + final File mainPath = new File(path); + if(mainPath.exists()){ + if(mainPath.isDirectory()){ + + fullPath = path; + + File[] listFile = mainPath.listFiles(); + FileListAdapter fileAdapter = new FileListAdapter(context); + fileAdapter.add(new File(path, ".. ")); + + if(listFile.length != 0){ + Arrays.sort(listFile, new SortFileName()); + for(File file : listFile){ + fileAdapter.add(file); + } + emptyTv.setVisibility(View.GONE); + } + else{ + emptyTv.setVisibility(View.VISIBLE); + } + mainLv.setAdapter(fileAdapter); + mainTv.setText("Path: " + path); + } + else{ + String name = mainPath.getName(); + String extension = getExtension(path); + listener.onFileSelected(mainPath, path, name, extension); + } + } + else{ + Toast.makeText(context, "This folder (or file) doesn't exist", Toast.LENGTH_SHORT).show(); + refreshPath(); + } + } + catch(Exception e){ + /* + new AlertDialog.Builder(context) + .setTitle("Error") + .setMessage(Log.getStackTraceString(e)) + .setPositiveButton("OK", null) + .show(); + */ + } + } + public static String getExtension(String path) + { + return getExtension(new File(path)); + } + public static String getExtension(File file) + { + return file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf(".")); + } + public String getFullPath() + { + return fullPath; + } + public void refreshPath() + { + listFileAt(getFullPath()); + } + public void parentDir() + { + File pathFile = new File(fullPath); + if(!pathFile.getAbsolutePath().equals(Environment.getExternalStorageDirectory().getAbsolutePath())){ + listFileAt(pathFile.getParent()); + } + } +} diff --git a/app/src/main/java/com/kdt/filerapi/FileSelectedListener.java b/app/src/main/java/com/kdt/filerapi/FileSelectedListener.java new file mode 100644 index 000000000..a7c904cff --- /dev/null +++ b/app/src/main/java/com/kdt/filerapi/FileSelectedListener.java @@ -0,0 +1,8 @@ +package com.kdt.filerapi; + +import java.io.File; + +public interface FileSelectedListener +{ + public void onFileSelected(File file, String path, String nane, String extension); +} diff --git a/app/src/main/java/com/kdt/filerapi/SortFileName.java b/app/src/main/java/com/kdt/filerapi/SortFileName.java new file mode 100644 index 000000000..5b4f692c6 --- /dev/null +++ b/app/src/main/java/com/kdt/filerapi/SortFileName.java @@ -0,0 +1,13 @@ +package com.kdt.filerapi; + +import java.io.*; +import java.util.*; + +public class SortFileName implements Comparator +{ + @Override + public int compare(File f1, File f2) { + return f1.getName().compareToIgnoreCase(f2.getName()); + } +} + diff --git a/app/src/main/java/com/kdt/filermod/MFileListAdapter.java b/app/src/main/java/com/kdt/filermod/MFileListAdapter.java new file mode 100644 index 000000000..19c9393e7 --- /dev/null +++ b/app/src/main/java/com/kdt/filermod/MFileListAdapter.java @@ -0,0 +1,112 @@ +package com.kdt.filermod; + +/* + * Copyright (C) 2012 Paul Burke + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import android.content.*; +import android.view.*; +import android.widget.*; +import java.io.*; +import java.util.*; + +/** + * List adapter for Files. + * + * @version 2013-12-11 + * @author paulburke (ipaulpro) + * + * @addDate 2018-08-08 + * @addToMyProject khanhduy032 (kdt032) + */ +public class MFileListAdapter extends BaseAdapter { + + private final LayoutInflater mInflater; + + private List mData = new ArrayList(); + + public MFileListAdapter(Context context) { + mInflater = LayoutInflater.from(context); + } + + public void add(File file) { + mData.add(file); + notifyDataSetChanged(); + } + + public void remove(File file) { + mData.remove(file); + notifyDataSetChanged(); + } + + public void insert(File file, int index) { + mData.add(index, file); + notifyDataSetChanged(); + } + + public void clear() { + mData.clear(); + notifyDataSetChanged(); + } + + @Override + public File getItem(int position) { + return mData.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public int getCount() { + return mData.size(); + } + + public List getListItems() { + return mData; + } + + /** + * Set the list items without notifying on the clear. This prevents loss of + * scroll position. + * + * @param data + */ + public void setListItems(List data) { + mData = data; + notifyDataSetChanged(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row = convertView; + + if (row == null) + row = mInflater.inflate(android.R.layout.simple_list_item_1, parent, false); + + TextView view = (TextView) row; + + // Get the file at the current position + final File file = getItem(position); + + // Set the TextView as the file name + view.setText(file.getName()); + + return row; + } + +} diff --git a/app/src/main/java/com/kdt/filermod/MFileListView.java b/app/src/main/java/com/kdt/filermod/MFileListView.java new file mode 100644 index 000000000..2945e3c16 --- /dev/null +++ b/app/src/main/java/com/kdt/filermod/MFileListView.java @@ -0,0 +1,167 @@ +package com.kdt.filermod; + +import android.app.*; +import android.content.*; +import android.graphics.*; +import android.os.*; +import android.util.*; +import android.view.*; +import android.widget.*; +import android.widget.AdapterView.*; +import java.io.*; +import java.util.*; +import net.kdt.pojavlaunch.*; + +public class MFileListView extends LinearLayout +{ + //For list view: + private String fullPath; + private ListView mainLv; + private Context context; + private boolean lockedHome = false; + + //For File selected listener: + private MFileSelectedListener listener; + private AlertDialog build; + private String homePath; + + public MFileListView(Context context, AlertDialog build) + { + super(context); + init(context); + this.build = build; + } + public MFileListView(Context context, AttributeSet attrs) + { + super(context, attrs); + init(context); + } + public MFileListView(Context context, AttributeSet attrs, int defStyle) + { + super(context, attrs, defStyle); + init(context); + } + public void init(final Context context) + { + //Main setup: + this.context = context; + + LayoutParams layParam = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); + + setOrientation(VERTICAL); + + mainLv = new ListView(context); + + //listFileAt(Environment.getExternalStorageDirectory().getPath()); + + mainLv.setOnItemClickListener(new OnItemClickListener(){ + @Override + public void onItemClick(AdapterView p1, View p2, int p3, long p4) + { + // TODO: Implement this method + File mainFile = new File(p1.getItemAtPosition(p3).toString()); + String name = mainFile.getName(); + //Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show(); + if(name.equals(".. ")){ + parentDir(); + } + else{ + listFileAt(mainFile.getAbsolutePath()); + } + } + }); + mainLv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){ + @Override + public boolean onItemLongClick(AdapterView p1, View p2, int p3, long p4) + { + // TODO: Implement this method + File mainFile = new File(p1.getItemAtPosition(p3).toString()); + String name = mainFile.getName(); + //Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show(); + if(mainFile.isFile()){ + String extension = getExtension(mainFile.getAbsolutePath()); + listener.onFileLongClick(mainFile, mainFile.getAbsolutePath(), name, extension); + return true; + } + return false; + } + }); + addView(mainLv, layParam); + } + public void setFileSelectedListener(MFileSelectedListener listener) + { + this.listener = listener; + } + public void listFileAt(final String path) + { + try{ + final File mainPath = new File(path); + if(mainPath.exists()){ + if(mainPath.isDirectory()){ + if(!lockedHome){ + homePath = path; + lockedHome = true; + } + fullPath = path; + + File[] listFile = mainPath.listFiles(); + MFileListAdapter fileAdapter = new MFileListAdapter(context); + if(!path.equals(homePath)){ + //fileAdapter.add(new File(path, "Path=\""+path+"\".noEquals(homePath=\""+homePath+"\")")); + fileAdapter.add(new File(path, ".. ")); + } + + if(listFile.length != 0){ + Arrays.sort(listFile, new MSortFileName()); + for(File file : listFile){ + fileAdapter.add(file); + } + } + mainLv.setAdapter(fileAdapter); + build.setTitle(new File(path).getName()); + } + else{ + String name = mainPath.getName(); + String extension = getExtension(path); + listener.onFileSelected(mainPath, path, name, extension); + } + } + else{ + Toast.makeText(context, "This folder (or file) doesn't exist", Toast.LENGTH_SHORT).show(); + refreshPath(); + } + } + catch(Exception e){ + /* + new AlertDialog.Builder(context) + .setTitle("Error") + .setMessage(Log.getStackTraceString(e)) + .setPositiveButton("OK", null) + .show(); + */ + } + } + public static String getExtension(String path) + { + return getExtension(new File(path)); + } + public static String getExtension(File file) + { + return file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf(".")); + } + public String getFullPath() + { + return fullPath; + } + public void refreshPath() + { + listFileAt(getFullPath()); + } + public void parentDir() + { + File pathFile = new File(fullPath); + if(!pathFile.getAbsolutePath().equals(Environment.getExternalStorageDirectory().getAbsolutePath())){ + listFileAt(pathFile.getParent()); + } + } +} diff --git a/app/src/main/java/com/kdt/filermod/MFileSelectedListener.java b/app/src/main/java/com/kdt/filermod/MFileSelectedListener.java new file mode 100644 index 000000000..eea991d87 --- /dev/null +++ b/app/src/main/java/com/kdt/filermod/MFileSelectedListener.java @@ -0,0 +1,9 @@ +package com.kdt.filermod; + +import java.io.File; + +public interface MFileSelectedListener +{ + public void onFileSelected(File file, String path, String nane, String extension); + public void onFileLongClick(File file, String path, String nane, String extension); +} diff --git a/app/src/main/java/com/kdt/filermod/MSortFileName.java b/app/src/main/java/com/kdt/filermod/MSortFileName.java new file mode 100644 index 000000000..aaf83569d --- /dev/null +++ b/app/src/main/java/com/kdt/filermod/MSortFileName.java @@ -0,0 +1,13 @@ +package com.kdt.filermod; + +import java.io.*; +import java.util.*; + +public class MSortFileName implements Comparator +{ + @Override + public int compare(File f1, File f2) { + return f1.getName().compareToIgnoreCase(f2.getName()); + } +} + diff --git a/app/src/main/java/com/kdt/glsupport/GLTextureView.java b/app/src/main/java/com/kdt/glsupport/GLTextureView.java new file mode 100644 index 000000000..bf91bf30e --- /dev/null +++ b/app/src/main/java/com/kdt/glsupport/GLTextureView.java @@ -0,0 +1,1824 @@ +package com.kdt.glsupport; + +// Search "DISABLED" to find disabled codes. + +import java.io.Writer; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGL11; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; +import javax.microedition.khronos.egl.EGLSurface; +import javax.microedition.khronos.opengles.GL; +import javax.microedition.khronos.opengles.GL10; +import android.content.Context; +import android.graphics.SurfaceTexture; +import android.opengl.GLDebugHelper; +import android.util.AttributeSet; +import android.util.Log; +import android.view.TextureView; +import android.view.View; +import android.view.View.*; + +public class GLTextureView + extends TextureView + implements TextureView.SurfaceTextureListener, + View.OnLayoutChangeListener { + + private final static String TAG = "GLTextureView"; + private final static boolean LOG_ATTACH_DETACH = true; + private final static boolean LOG_THREADS = true; + private final static boolean LOG_PAUSE_RESUME = true; + private final static boolean LOG_SURFACE = true; + private final static boolean LOG_RENDERER = true; + private final static boolean LOG_RENDERER_DRAW_FRAME = false; + private final static boolean LOG_EGL = true; + /** + * The renderer only renders + * when the surface is created, or when {@link #requestRender} is called. + * + * @see #getRenderMode() + * @see #setRenderMode(int) + * @see #requestRender() + */ + public final static int RENDERMODE_WHEN_DIRTY = 0; + /** + * The renderer is called + * continuously to re-render the scene. + * + * @see #getRenderMode() + * @see #setRenderMode(int) + */ + public final static int RENDERMODE_CONTINUOUSLY = 1; + + /** + * Check glError() after every GL call and throw an exception if glError indicates + * that an error has occurred. This can be used to help track down which OpenGL ES call + * is causing an error. + * + * @see #getDebugFlags + * @see #setDebugFlags + */ + public final static int DEBUG_CHECK_GL_ERROR = 1; + + /** + * Log GL calls to the system log at "verbose" level with tag "GLTextureView". + * + * @see #getDebugFlags + * @see #setDebugFlags + */ + public final static int DEBUG_LOG_GL_CALLS = 2; + + /** + * Standard View constructor. In order to render something, you + * must call {@link #setRenderer} to register a renderer. + */ + public GLTextureView(Context context) { + super(context); + init(); + } + + /** + * Standard View constructor. In order to render something, you + * must call {@link #setRenderer} to register a renderer. + */ + public GLTextureView(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + @Override + protected void finalize() throws Throwable { + try { + if (mGLThread != null) { + // GLThread may still be running if this view was never + // attached to a window. + mGLThread.requestExitAndWait(); + } + } finally { + super.finalize(); + } + } + + private void init() { + setSurfaceTextureListener(this); + } + + /** + * Set the glWrapper. If the glWrapper is not null, its + * {@link GLWrapper#wrap(javax.microedition.khronos.opengles.GL)} method is called + * whenever a surface is created. A GLWrapper can be used to wrap + * the GL object that's passed to the renderer. Wrapping a GL + * object enables examining and modifying the behavior of the + * GL calls made by the renderer. + *

+ * Wrapping is typically used for debugging purposes. + *

+ * The default value is null. + * @param glWrapper the new GLWrapper + */ + public void setGLWrapper(GLWrapper glWrapper) { + mGLWrapper = glWrapper; + } + + /** + * Set the debug flags to a new value. The value is + * constructed by OR-together zero or more + * of the DEBUG_CHECK_* constants. The debug flags take effect + * whenever a surface is created. The default value is zero. + * @param debugFlags the new debug flags + * @see #DEBUG_CHECK_GL_ERROR + * @see #DEBUG_LOG_GL_CALLS + */ + public void setDebugFlags(int debugFlags) { + mDebugFlags = debugFlags; + } + + /** + * Get the current value of the debug flags. + * @return the current value of the debug flags. + */ + public int getDebugFlags() { + return mDebugFlags; + } + + /** + * Control whether the EGL context is preserved when the GLTextureView is paused and + * resumed. + *

+ * If set to true, then the EGL context may be preserved when the GLTextureView is paused. + * Whether the EGL context is actually preserved or not depends upon whether the + * Android device that the program is running on can support an arbitrary number of EGL + * contexts or not. Devices that can only support a limited number of EGL contexts must + * release the EGL context in order to allow multiple applications to share the GPU. + *

+ * If set to false, the EGL context will be released when the GLTextureView is paused, + * and recreated when the GLTextureView is resumed. + *

+ * + * The default is false. + * + * @param preserveOnPause preserve the EGL context when paused + */ + public void setPreserveEGLContextOnPause(boolean preserveOnPause) { + mPreserveEGLContextOnPause = preserveOnPause; + } + + /** + * @return true if the EGL context will be preserved when paused + */ + public boolean getPreserveEGLContextOnPause() { + return mPreserveEGLContextOnPause; + } + + /** + * Set the renderer associated with this view. Also starts the thread that + * will call the renderer, which in turn causes the rendering to start. + *

This method should be called once and only once in the life-cycle of + * a GLTextureView. + *

The following GLTextureView methods can only be called before + * setRenderer is called: + *

+ *

+ * The following GLTextureView methods can only be called after + * setRenderer is called: + *

+ * + * @param renderer the renderer to use to perform OpenGL drawing. + */ + public void setRenderer(Renderer renderer) { + checkRenderThreadState(); + if (mEGLConfigChooser == null) { + mEGLConfigChooser = new SimpleEGLConfigChooser(true); + } + if (mEGLContextFactory == null) { + mEGLContextFactory = new DefaultContextFactory(); + } + if (mEGLWindowSurfaceFactory == null) { + mEGLWindowSurfaceFactory = new DefaultWindowSurfaceFactory(); + } + mRenderer = renderer; + mGLThread = new GLThread(mThisWeakRef); + mGLThread.start(); + } + + /** + * Install a custom EGLContextFactory. + *

If this method is + * called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

+ * If this method is not called, then by default + * a context will be created with no shared context and + * with a null attribute list. + */ + public void setEGLContextFactory(EGLContextFactory factory) { + checkRenderThreadState(); + mEGLContextFactory = factory; + } + + /** + * Install a custom EGLWindowSurfaceFactory. + *

If this method is + * called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

+ * If this method is not called, then by default + * a window surface will be created with a null attribute list. + */ + public void setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory factory) { + checkRenderThreadState(); + mEGLWindowSurfaceFactory = factory; + } + + /** + * Install a custom EGLConfigChooser. + *

If this method is + * called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

+ * If no setEGLConfigChooser method is called, then by default the + * view will choose an EGLConfig that is compatible with the current + * android.view.Surface, with a depth buffer depth of + * at least 16 bits. + * @param configChooser + */ + public void setEGLConfigChooser(EGLConfigChooser configChooser) { + checkRenderThreadState(); + mEGLConfigChooser = configChooser; + } + + /** + * Install a config chooser which will choose a config + * as close to 16-bit RGB as possible, with or without an optional depth + * buffer as close to 16-bits as possible. + *

If this method is + * called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

+ * If no setEGLConfigChooser method is called, then by default the + * view will choose an RGB_888 surface with a depth buffer depth of + * at least 16 bits. + * + * @param needDepth + */ + public void setEGLConfigChooser(boolean needDepth) { + setEGLConfigChooser(new SimpleEGLConfigChooser(needDepth)); + } + + /** + * Install a config chooser which will choose a config + * with at least the specified depthSize and stencilSize, + * and exactly the specified redSize, greenSize, blueSize and alphaSize. + *

If this method is + * called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

+ * If no setEGLConfigChooser method is called, then by default the + * view will choose an RGB_888 surface with a depth buffer depth of + * at least 16 bits. + * + */ + public void setEGLConfigChooser(int redSize, int greenSize, int blueSize, + int alphaSize, int depthSize, int stencilSize) { + setEGLConfigChooser(new ComponentSizeChooser(redSize, greenSize, + blueSize, alphaSize, depthSize, stencilSize)); + } + + /** + * Inform the default EGLContextFactory and default EGLConfigChooser + * which EGLContext client version to pick. + *

Use this method to create an OpenGL ES 2.0-compatible context. + * Example: + *

+     *     public MyView(Context context) {
+     *         super(context);
+     *         setEGLContextClientVersion(2); // Pick an OpenGL ES 2.0 context.
+     *         setRenderer(new MyRenderer());
+     *     }
+     * 
+ *

Note: Activities which require OpenGL ES 2.0 should indicate this by + * setting @lt;uses-feature android:glEsVersion="0x00020000" /> in the activity's + * AndroidManifest.xml file. + *

If this method is called, it must be called before {@link #setRenderer(Renderer)} + * is called. + *

This method only affects the behavior of the default EGLContexFactory and the + * default EGLConfigChooser. If + * {@link #setEGLContextFactory(EGLContextFactory)} has been called, then the supplied + * EGLContextFactory is responsible for creating an OpenGL ES 2.0-compatible context. + * If + * {@link #setEGLConfigChooser(EGLConfigChooser)} has been called, then the supplied + * EGLConfigChooser is responsible for choosing an OpenGL ES 2.0-compatible config. + * @param version The EGLContext client version to choose. Use 2 for OpenGL ES 2.0 + */ + public void setEGLContextClientVersion(int version) { + checkRenderThreadState(); + mEGLContextClientVersion = version; + } + + /** + * Set the rendering mode. When renderMode is + * RENDERMODE_CONTINUOUSLY, the renderer is called + * repeatedly to re-render the scene. When renderMode + * is RENDERMODE_WHEN_DIRTY, the renderer only rendered when the surface + * is created, or when {@link #requestRender} is called. Defaults to RENDERMODE_CONTINUOUSLY. + *

+ * Using RENDERMODE_WHEN_DIRTY can improve battery life and overall system performance + * by allowing the GPU and CPU to idle when the view does not need to be updated. + *

+ * This method can only be called after {@link #setRenderer(Renderer)} + * + * @param renderMode one of the RENDERMODE_X constants + * @see #RENDERMODE_CONTINUOUSLY + * @see #RENDERMODE_WHEN_DIRTY + */ + public void setRenderMode(int renderMode) { + mGLThread.setRenderMode(renderMode); + } + + /** + * Get the current rendering mode. May be called + * from any thread. Must not be called before a renderer has been set. + * @return the current rendering mode. + * @see #RENDERMODE_CONTINUOUSLY + * @see #RENDERMODE_WHEN_DIRTY + */ + public int getRenderMode() { + return mGLThread.getRenderMode(); + } + + /** + * Request that the renderer render a frame. + * This method is typically used when the render mode has been set to + * {@link #RENDERMODE_WHEN_DIRTY}, so that frames are only rendered on demand. + * May be called + * from any thread. Must not be called before a renderer has been set. + */ + public void requestRender() { + mGLThread.requestRender(); + } + + /** + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of GLTextureView. + */ + public void surfaceCreated(SurfaceTexture texture) { + mGLThread.surfaceCreated(); + } + + /** + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of GLTextureView. + */ + public void surfaceDestroyed(SurfaceTexture texture) { + // Surface will be destroyed when we return + mGLThread.surfaceDestroyed(); + } + + /** + * This method is part of the SurfaceHolder.Callback interface, and is + * not normally called or subclassed by clients of GLTextureView. + */ + public void surfaceChanged(SurfaceTexture texture, int format, int w, int h) { + mGLThread.onWindowResize(w, h); + } + + /** + * Inform the view that the activity is paused. The owner of this view must + * call this method when the activity is paused. Calling this method will + * pause the rendering thread. + * Must not be called before a renderer has been set. + */ + public void onPause() { + mGLThread.onPause(); + } + + /** + * Inform the view that the activity is resumed. The owner of this view must + * call this method when the activity is resumed. Calling this method will + * recreate the OpenGL display and resume the rendering + * thread. + * Must not be called before a renderer has been set. + */ + public void onResume() { + mGLThread.onResume(); + } + + /** + * Queue a runnable to be run on the GL rendering thread. This can be used + * to communicate with the Renderer on the rendering thread. + * Must not be called before a renderer has been set. + * @param r the runnable to be run on the GL rendering thread. + */ + public void queueEvent(Runnable r) { + mGLThread.queueEvent(r); + } + + /** + * This method is used as part of the View class and is not normally + * called or subclassed by clients of GLTextureView. + */ + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (LOG_ATTACH_DETACH) { + Log.d(TAG, "onAttachedToWindow reattach =" + mDetached); + } + if (mDetached && (mRenderer != null)) { + int renderMode = RENDERMODE_CONTINUOUSLY; + if (mGLThread != null) { + renderMode = mGLThread.getRenderMode(); + } + mGLThread = new GLThread(mThisWeakRef); + if (renderMode != RENDERMODE_CONTINUOUSLY) { + mGLThread.setRenderMode(renderMode); + } + mGLThread.start(); + } + mDetached = false; + } + + /** + * This method is used as part of the View class and is not normally + * called or subclassed by clients of GLTextureView. + * Must not be called before a renderer has been set. + */ + @Override + protected void onDetachedFromWindow() { + if (LOG_ATTACH_DETACH) { + Log.d(TAG, "onDetachedFromWindow"); + } + if (mGLThread != null) { + mGLThread.requestExitAndWait(); + } + mDetached = true; + super.onDetachedFromWindow(); + } + + public void onLayoutChange(View v, int left, int top, int right, int bottom, + int oldLeft, int oldTop, int oldRight, int oldBottom) { + surfaceChanged(getSurfaceTexture(), 0, right - left, bottom - top); + } + + public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { + surfaceCreated(surface); + surfaceChanged(surface, 0, width, height); + } + + public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { + surfaceChanged(surface, 0, width, height); + } + + public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { + // MOD: Code replaced: +/* + surfaceDestroyed(surface); + return true; +*/ + // MOD: Replaced to: + if (sGLThreadManager.shouldTerminateEGLWhenPausing() && !mPreserveEGLContextOnPause) { + surfaceDestroyed(surface); + return true; + } + return false; + } + + public void onSurfaceTextureUpdated(SurfaceTexture surface) { + requestRender(); + } + + // ---------------------------------------------------------------------- + + /** + * An interface used to wrap a GL interface. + *

Typically + * used for implementing debugging and tracing on top of the default + * GL interface. You would typically use this by creating your own class + * that implemented all the GL methods by delegating to another GL instance. + * Then you could add your own behavior before or after calling the + * delegate. All the GLWrapper would do was instantiate and return the + * wrapper GL instance: + *

+     * class MyGLWrapper implements GLWrapper {
+     *     GL wrap(GL gl) {
+     *         return new MyGLImplementation(gl);
+     *     }
+     *     static class MyGLImplementation implements GL,GL10,GL11,... {
+     *         ...
+     *     }
+     * }
+     * 
+ * @see #setGLWrapper(GLWrapper) + */ + public interface GLWrapper { + /** + * Wraps a gl interface in another gl interface. + * @param gl a GL interface that is to be wrapped. + * @return either the input argument or another GL object that wraps the input argument. + */ + GL wrap(GL gl); + } + + /** + * A generic renderer interface. + *

+ * The renderer is responsible for making OpenGL calls to render a frame. + *

+ * GLTextureView clients typically create their own classes that implement + * this interface, and then call {@link GLTextureView#setRenderer} to + * register the renderer with the GLTextureView. + *

+ * + *

+ *

Developer Guides

+ *

For more information about how to use OpenGL, read the + * OpenGL developer guide.

+ *
+ * + *

Threading

+ * The renderer will be called on a separate thread, so that rendering + * performance is decoupled from the UI thread. Clients typically need to + * communicate with the renderer from the UI thread, because that's where + * input events are received. Clients can communicate using any of the + * standard Java techniques for cross-thread communication, or they can + * use the {@link GLTextureView#queueEvent(Runnable)} convenience method. + *

+ *

EGL Context Lost

+ * There are situations where the EGL rendering context will be lost. This + * typically happens when device wakes up after going to sleep. When + * the EGL context is lost, all OpenGL resources (such as textures) that are + * associated with that context will be automatically deleted. In order to + * keep rendering correctly, a renderer must recreate any lost resources + * that it still needs. The {@link #onSurfaceCreated(javax.microedition.khronos.opengles.GL10, javax.microedition.khronos.egl.EGLConfig)} method + * is a convenient place to do this. + * + * + * @see #setRenderer(Renderer) + */ + public interface Renderer { + /** + * Called when the surface is created or recreated. + *

+ * Called when the rendering thread + * starts and whenever the EGL context is lost. The EGL context will typically + * be lost when the Android device awakes after going to sleep. + *

+ * Since this method is called at the beginning of rendering, as well as + * every time the EGL context is lost, this method is a convenient place to put + * code to create resources that need to be created when the rendering + * starts, and that need to be recreated when the EGL context is lost. + * Textures are an example of a resource that you might want to create + * here. + *

+ * Note that when the EGL context is lost, all OpenGL resources associated + * with that context will be automatically deleted. You do not need to call + * the corresponding "glDelete" methods such as glDeleteTextures to + * manually delete these lost resources. + *

+ * @param gl the GL interface. Use instanceof to + * test if the interface supports GL11 or higher interfaces. + * @param config the EGLConfig of the created surface. Can be used + * to create matching pbuffers. + */ + void onSurfaceCreated(GL10 gl, EGLConfig config); + + /** + * Called when the surface changed size. + *

+ * Called after the surface is created and whenever + * the OpenGL ES surface size changes. + *

+ * Typically you will set your viewport here. If your camera + * is fixed then you could also set your projection matrix here: + *

+         * void onSurfaceChanged(GL10 gl, int width, int height) {
+         *     gl.glViewport(0, 0, width, height);
+         *     // for a fixed camera, set the projection too
+         *     float ratio = (float) width / height;
+         *     gl.glMatrixMode(GL10.GL_PROJECTION);
+         *     gl.glLoadIdentity();
+         *     gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
+         * }
+         * 
+ * @param gl the GL interface. Use instanceof to + * test if the interface supports GL11 or higher interfaces. + * @param width + * @param height + */ + void onSurfaceChanged(GL10 gl, int width, int height); + + /** + * Called to draw the current frame. + *

+ * This method is responsible for drawing the current frame. + *

+ * The implementation of this method typically looks like this: + *

+         * void onDrawFrame(GL10 gl) {
+         *     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
+         *     //... other gl calls to render the scene ...
+         * }
+         * 
+ * @param gl the GL interface. Use instanceof to + * test if the interface supports GL11 or higher interfaces. + */ + void onDrawFrame(GL10 gl); + + void onSurfaceDestroyed(GL10 gl); + } + + /** + * An interface for customizing the eglCreateContext and eglDestroyContext calls. + *

+ * This interface must be implemented by clients wishing to call + * {@link GLTextureView#setEGLContextFactory(EGLContextFactory)} + */ + public interface EGLContextFactory { + EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig); + void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context); + } + + private class DefaultContextFactory implements EGLContextFactory { + private int EGL_CONTEXT_CLIENT_VERSION = 0x3098; + + public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig config) { + int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, mEGLContextClientVersion, + EGL10.EGL_NONE }; + + return egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, + mEGLContextClientVersion != 0 ? attrib_list : null); + } + + public void destroyContext(EGL10 egl, EGLDisplay display, + EGLContext context) { + if (!egl.eglDestroyContext(display, context)) { + Log.e("DefaultContextFactory", "display:" + display + " context: " + context); + if (LOG_THREADS) { + Log.i("DefaultContextFactory", "tid=" + Thread.currentThread().getId()); + } + EglHelper.throwEglException("eglDestroyContex", egl.eglGetError()); + } + } + } + + /** + * An interface for customizing the eglCreateWindowSurface and eglDestroySurface calls. + *

+ * This interface must be implemented by clients wishing to call + * {@link GLTextureView#setEGLWindowSurfaceFactory(EGLWindowSurfaceFactory)} + */ + public interface EGLWindowSurfaceFactory { + /** + * @return null if the surface cannot be constructed. + */ + EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display, EGLConfig config, + Object nativeWindow); + void destroySurface(EGL10 egl, EGLDisplay display, EGLSurface surface); + } + + private static class DefaultWindowSurfaceFactory implements EGLWindowSurfaceFactory { + + public EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display, + EGLConfig config, Object nativeWindow) { + EGLSurface result = null; + try { + result = egl.eglCreateWindowSurface(display, config, nativeWindow, null); + } catch (IllegalArgumentException e) { + // This exception indicates that the surface flinger surface + // is not valid. This can happen if the surface flinger surface has + // been torn down, but the application has not yet been + // notified via SurfaceHolder.Callback.surfaceDestroyed. + // In theory the application should be notified first, + // but in practice sometimes it is not. See b/4588890 + Log.e(TAG, "eglCreateWindowSurface", e); + } + return result; + } + + public void destroySurface(EGL10 egl, EGLDisplay display, + EGLSurface surface) { + egl.eglDestroySurface(display, surface); + } + } + + /** + * An interface for choosing an EGLConfig configuration from a list of + * potential configurations. + *

+ * This interface must be implemented by clients wishing to call + * {@link GLTextureView#setEGLConfigChooser(EGLConfigChooser)} + */ + public interface EGLConfigChooser { + /** + * Choose a configuration from the list. Implementors typically + * implement this method by calling + * {@link EGL10#eglChooseConfig} and iterating through the results. Please consult the + * EGL specification available from The Khronos Group to learn how to call eglChooseConfig. + * @param egl the EGL10 for the current display. + * @param display the current display. + * @return the chosen configuration. + */ + EGLConfig chooseConfig(EGL10 egl, EGLDisplay display); + } + + private abstract class BaseConfigChooser + implements EGLConfigChooser { + public BaseConfigChooser(int[] configSpec) { + mConfigSpec = filterConfigSpec(configSpec); + } + + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { + int[] num_config = new int[1]; + if (!egl.eglChooseConfig(display, mConfigSpec, null, 0, + num_config)) { + throw new IllegalArgumentException("eglChooseConfig failed"); + } + + int numConfigs = num_config[0]; + + if (numConfigs <= 0) { + throw new IllegalArgumentException( + "No configs match configSpec"); + } + + EGLConfig[] configs = new EGLConfig[numConfigs]; + if (!egl.eglChooseConfig(display, mConfigSpec, configs, numConfigs, + num_config)) { + throw new IllegalArgumentException("eglChooseConfig#2 failed"); + } + EGLConfig config = chooseConfig(egl, display, configs); + if (config == null) { + throw new IllegalArgumentException("No config chosen"); + } + return config; + } + + abstract EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, + EGLConfig[] configs); + + protected int[] mConfigSpec; + + private int[] filterConfigSpec(int[] configSpec) { + if (mEGLContextClientVersion != 2) { + return configSpec; + } + /* We know none of the subclasses define EGL_RENDERABLE_TYPE. + * And we know the configSpec is well formed. + */ + int len = configSpec.length; + int[] newConfigSpec = new int[len + 2]; + // System.arraycopy(configSpec, 0, newConfigSpec, 0, len-1); + for (int i = 0; i < len; i++) { + newConfigSpec[i] = configSpec[i]; + } + newConfigSpec[len-1] = EGL10.EGL_RENDERABLE_TYPE; + newConfigSpec[len] = 4; /* EGL_OPENGL_ES2_BIT */ + newConfigSpec[len+1] = EGL10.EGL_NONE; + return newConfigSpec; + } + } + + /** + * Choose a configuration with exactly the specified r,g,b,a sizes, + * and at least the specified depth and stencil sizes. + */ + private class ComponentSizeChooser extends BaseConfigChooser { + public ComponentSizeChooser(int redSize, int greenSize, int blueSize, + int alphaSize, int depthSize, int stencilSize) { + super(new int[] { + EGL10.EGL_RED_SIZE, redSize, + EGL10.EGL_GREEN_SIZE, greenSize, + EGL10.EGL_BLUE_SIZE, blueSize, + EGL10.EGL_ALPHA_SIZE, alphaSize, + EGL10.EGL_DEPTH_SIZE, depthSize, + EGL10.EGL_STENCIL_SIZE, stencilSize, + EGL10.EGL_NONE}); + mValue = new int[1]; + mRedSize = redSize; + mGreenSize = greenSize; + mBlueSize = blueSize; + mAlphaSize = alphaSize; + mDepthSize = depthSize; + mStencilSize = stencilSize; + } + + @Override + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, + EGLConfig[] configs) { + for (EGLConfig config : configs) { + int d = findConfigAttrib(egl, display, config, + EGL10.EGL_DEPTH_SIZE, 0); + int s = findConfigAttrib(egl, display, config, + EGL10.EGL_STENCIL_SIZE, 0); + if ((d >= mDepthSize) && (s >= mStencilSize)) { + int r = findConfigAttrib(egl, display, config, + EGL10.EGL_RED_SIZE, 0); + int g = findConfigAttrib(egl, display, config, + EGL10.EGL_GREEN_SIZE, 0); + int b = findConfigAttrib(egl, display, config, + EGL10.EGL_BLUE_SIZE, 0); + int a = findConfigAttrib(egl, display, config, + EGL10.EGL_ALPHA_SIZE, 0); + if ((r == mRedSize) && (g == mGreenSize) + && (b == mBlueSize) && (a == mAlphaSize)) { + return config; + } + } + } + return null; + } + + private int findConfigAttrib(EGL10 egl, EGLDisplay display, + EGLConfig config, int attribute, int defaultValue) { + + if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) { + return mValue[0]; + } + return defaultValue; + } + + private int[] mValue; + // Subclasses can adjust these values: + protected int mRedSize; + protected int mGreenSize; + protected int mBlueSize; + protected int mAlphaSize; + protected int mDepthSize; + protected int mStencilSize; + } + + /** + * This class will choose a RGB_888 surface with + * or without a depth buffer. + * + */ + private class SimpleEGLConfigChooser extends ComponentSizeChooser { + public SimpleEGLConfigChooser(boolean withDepthBuffer) { + super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, 0); + } + } + + /** + * An EGL helper class. + */ + + private static class EglHelper { + public EglHelper(WeakReference glSurfaceViewWeakRef) { + mGLSurfaceViewWeakRef = glSurfaceViewWeakRef; + } + + /** + * Initialize EGL for a given configuration spec. + * @param + */ + public void start() { + if (LOG_EGL) { + Log.w("EglHelper", "start() tid=" + Thread.currentThread().getId()); + } + /* + * Get an EGL instance + */ + mEgl = (EGL10) EGLContext.getEGL(); + + /* + * Get to the default display. + */ + mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); + + if (mEglDisplay == EGL10.EGL_NO_DISPLAY) { + throw new RuntimeException("eglGetDisplay failed"); + } + + /* + * We can now initialize EGL for that display + */ + int[] version = new int[2]; + if(!mEgl.eglInitialize(mEglDisplay, version)) { + throw new RuntimeException("eglInitialize failed"); + } + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view == null) { + mEglConfig = null; + mEglContext = null; + } else { + mEglConfig = view.mEGLConfigChooser.chooseConfig(mEgl, mEglDisplay); + + /* + * Create an EGL context. We want to do this as rarely as we can, because an + * EGL context is a somewhat heavy object. + */ + mEglContext = view.mEGLContextFactory.createContext(mEgl, mEglDisplay, mEglConfig); + } + if (mEglContext == null || mEglContext == EGL10.EGL_NO_CONTEXT) { + mEglContext = null; + throwEglException("createContext"); + } + if (LOG_EGL) { + Log.w("EglHelper", "createContext " + mEglContext + " tid=" + Thread.currentThread().getId()); + } + + mEglSurface = null; + } + + /** + * Create an egl surface for the current SurfaceHolder surface. If a surface + * already exists, destroy it before creating the new surface. + * + * @return true if the surface was created successfully. + */ + public boolean createSurface() { + if (LOG_EGL) { + Log.w("EglHelper", "createSurface() tid=" + Thread.currentThread().getId()); + } + /* + * Check preconditions. + */ + if (mEgl == null) { + throw new RuntimeException("egl not initialized"); + } + if (mEglDisplay == null) { + throw new RuntimeException("eglDisplay not initialized"); + } + if (mEglConfig == null) { + throw new RuntimeException("mEglConfig not initialized"); + } + + /* + * The window size has changed, so we need to create a new + * surface. + */ + destroySurfaceImp(); + + /* + * Create an EGL surface we can render into. + */ + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + mEglSurface = view.mEGLWindowSurfaceFactory.createWindowSurface(mEgl, + mEglDisplay, mEglConfig, view.getSurfaceTexture()); + } else { + mEglSurface = null; + } + + if (mEglSurface == null || mEglSurface == EGL10.EGL_NO_SURFACE) { + int error = mEgl.eglGetError(); + if (error == EGL10.EGL_BAD_NATIVE_WINDOW) { + Log.e("EglHelper", "createWindowSurface returned EGL_BAD_NATIVE_WINDOW."); + } + return false; + } + + /* + * Before we can issue GL commands, we need to make sure + * the context is current and bound to a surface. + */ + if (!mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext)) { + /* + * Could not make the context current, probably because the underlying + * SurfaceView surface has been destroyed. + */ + logEglErrorAsWarning("EGLHelper", "eglMakeCurrent", mEgl.eglGetError()); + return false; + } + + return true; + } + + /** + * Create a GL object for the current EGL context. + * @return + */ + GL createGL() { + + GL gl = mEglContext.getGL(); + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + if (view.mGLWrapper != null) { + gl = view.mGLWrapper.wrap(gl); + } + + if ((view.mDebugFlags & (DEBUG_CHECK_GL_ERROR | DEBUG_LOG_GL_CALLS)) != 0) { + int configFlags = 0; + Writer log = null; + if ((view.mDebugFlags & DEBUG_CHECK_GL_ERROR) != 0) { + configFlags |= GLDebugHelper.CONFIG_CHECK_GL_ERROR; + } + if ((view.mDebugFlags & DEBUG_LOG_GL_CALLS) != 0) { + log = new LogWriter(); + } + gl = GLDebugHelper.wrap(gl, configFlags, log); + } + } + return gl; + } + + /** + * Display the current render surface. + * @return the EGL error code from eglSwapBuffers. + */ + public int swap() { + if (! mEgl.eglSwapBuffers(mEglDisplay, mEglSurface)) { + return mEgl.eglGetError(); + } + return EGL10.EGL_SUCCESS; + } + + public void destroySurface() { + if (LOG_EGL) { + Log.w("EglHelper", "destroySurface() tid=" + Thread.currentThread().getId()); + } + destroySurfaceImp(); + } + + private void destroySurfaceImp() { + if (mEglSurface != null && mEglSurface != EGL10.EGL_NO_SURFACE) { + mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, + EGL10.EGL_NO_SURFACE, + EGL10.EGL_NO_CONTEXT); + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + view.mEGLWindowSurfaceFactory.destroySurface(mEgl, mEglDisplay, mEglSurface); + } + mEglSurface = null; + } + } + + public void finish() { + if (LOG_EGL) { + Log.w("EglHelper", "finish() tid=" + Thread.currentThread().getId()); + } + if (mEglContext != null) { + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + view.mEGLContextFactory.destroyContext(mEgl, mEglDisplay, mEglContext); + } + mEglContext = null; + } + if (mEglDisplay != null) { + mEgl.eglTerminate(mEglDisplay); + mEglDisplay = null; + } + } + + private void throwEglException(String function) { + throwEglException(function, mEgl.eglGetError()); + } + + public static void throwEglException(String function, int error) { + String message = formatEglError(function, error); + if (LOG_THREADS) { + Log.e("EglHelper", "throwEglException tid=" + Thread.currentThread().getId() + " " + + message); + } + throw new RuntimeException(message); + } + + public static void logEglErrorAsWarning(String tag, String function, int error) { + Log.w(tag, formatEglError(function, error)); + } + + public static String formatEglError(String function, int error) { + return function + " failed: " + error; + } + + private WeakReference mGLSurfaceViewWeakRef; + EGL10 mEgl; + EGLDisplay mEglDisplay; + EGLSurface mEglSurface; + EGLConfig mEglConfig; + EGLContext mEglContext; + + } + + /** + * A generic GL Thread. Takes care of initializing EGL and GL. Delegates + * to a Renderer instance to do the actual drawing. Can be configured to + * render continuously or on request. + * + * All potentially blocking synchronization is done through the + * sGLThreadManager object. This avoids multiple-lock ordering issues. + * + */ + static class GLThread extends Thread { + GLThread(WeakReference glSurfaceViewWeakRef) { + super(); + mWidth = 0; + mHeight = 0; + mRequestRender = true; + mRenderMode = RENDERMODE_CONTINUOUSLY; + mGLSurfaceViewWeakRef = glSurfaceViewWeakRef; + } + + @Override + public void run() { + setName("GLThread " + getId()); + if (LOG_THREADS) { + Log.i("GLThread", "starting tid=" + getId()); + } + + try { + guardedRun(); + } catch (InterruptedException e) { + // fall thru and exit normally + } finally { + sGLThreadManager.threadExiting(this); + } + } + + /* + * This private method should only be called inside a + * synchronized(sGLThreadManager) block. + */ + private void stopEglSurfaceLocked() { + if (mHaveEglSurface) { + mHaveEglSurface = false; + mEglHelper.destroySurface(); + } + } + + /* + * This private method should only be called inside a + * synchronized(sGLThreadManager) block. + */ + private void stopEglContextLocked() { + if (mHaveEglContext) { + mEglHelper.finish(); + mHaveEglContext = false; + sGLThreadManager.releaseEglContextLocked(this); + } + } + private void guardedRun() throws InterruptedException { + mEglHelper = new EglHelper(mGLSurfaceViewWeakRef); + mHaveEglContext = false; + mHaveEglSurface = false; + try { + GL10 gl = null; + boolean createEglContext = false; + boolean createEglSurface = false; + boolean createGlInterface = false; + boolean lostEglContext = false; + boolean sizeChanged = false; + boolean wantRenderNotification = false; + boolean doRenderNotification = false; + boolean askedToReleaseEglContext = false; + int w = 0; + int h = 0; + Runnable event = null; + + while (true) { + synchronized (sGLThreadManager) { + while (true) { + if (mShouldExit) { + return; + } + + if (! mEventQueue.isEmpty()) { + event = mEventQueue.remove(0); + break; + } + + // Update the pause state. + boolean pausing = false; + if (mPaused != mRequestPaused) { + pausing = mRequestPaused; + mPaused = mRequestPaused; + sGLThreadManager.notifyAll(); + if (LOG_PAUSE_RESUME) { + Log.i("GLThread", "mPaused is now " + mPaused + " tid=" + getId()); + } + } + + // Do we need to give up the EGL context? + if (mShouldReleaseEglContext) { + if (LOG_SURFACE) { + Log.i("GLThread", "releasing EGL context because asked to tid=" + getId()); + } + stopEglSurfaceLocked(); + stopEglContextLocked(); + mShouldReleaseEglContext = false; + askedToReleaseEglContext = true; + } + + // Have we lost the EGL context? + if (lostEglContext) { + stopEglSurfaceLocked(); + stopEglContextLocked(); + lostEglContext = false; + } + + // When pausing, release the EGL surface: + if (pausing && mHaveEglSurface) { + if (LOG_SURFACE) { + Log.i("GLThread", "releasing EGL surface because paused tid=" + getId()); + } + stopEglSurfaceLocked(); + } + + // When pausing, optionally release the EGL Context: + if (pausing && mHaveEglContext) { + GLTextureView view = mGLSurfaceViewWeakRef.get(); + boolean preserveEglContextOnPause = view == null ? + false : view.mPreserveEGLContextOnPause; + if (!preserveEglContextOnPause || sGLThreadManager.shouldReleaseEGLContextWhenPausing()) { + stopEglContextLocked(); + if (LOG_SURFACE) { + Log.i("GLThread", "releasing EGL context because paused tid=" + getId()); + } + } + } + + // When pausing, optionally terminate EGL: + if (pausing) { + if (sGLThreadManager.shouldTerminateEGLWhenPausing()) { + mEglHelper.finish(); + if (LOG_SURFACE) { + Log.i("GLThread", "terminating EGL because paused tid=" + getId()); + } + } + } + + // Have we lost the SurfaceView surface? + if ((! mHasSurface) && (! mWaitingForSurface)) { + if (LOG_SURFACE) { + Log.i("GLThread", "noticed surfaceView surface lost tid=" + getId()); + } + if (mHaveEglSurface) { + // DISABLED + stopEglSurfaceLocked(); + } + mWaitingForSurface = true; + mSurfaceIsBad = false; + sGLThreadManager.notifyAll(); + } + + // Have we acquired the surface view surface? + if (mHasSurface && mWaitingForSurface) { + if (LOG_SURFACE) { + Log.i("GLThread", "noticed surfaceView surface acquired tid=" + getId()); + } + mWaitingForSurface = false; + sGLThreadManager.notifyAll(); + } + + if (doRenderNotification) { + if (LOG_SURFACE) { + Log.i("GLThread", "sending render notification tid=" + getId()); + } + wantRenderNotification = false; + doRenderNotification = false; + mRenderComplete = true; + sGLThreadManager.notifyAll(); + } + + // Ready to draw? + if (readyToDraw()) { + + // If we don't have an EGL context, try to acquire one. + if (! mHaveEglContext) { + if (askedToReleaseEglContext) { + askedToReleaseEglContext = false; + } else if (sGLThreadManager.tryAcquireEglContextLocked(this)) { + try { + mEglHelper.start(); + } catch (RuntimeException t) { + sGLThreadManager.releaseEglContextLocked(this); + throw t; + } + mHaveEglContext = true; + createEglContext = true; + + sGLThreadManager.notifyAll(); + } + } + + if (mHaveEglContext && !mHaveEglSurface) { + mHaveEglSurface = true; + createEglSurface = true; + createGlInterface = true; + sizeChanged = true; + } + + if (mHaveEglSurface) { + if (mSizeChanged) { + sizeChanged = true; + w = mWidth; + h = mHeight; + wantRenderNotification = true; + if (LOG_SURFACE) { + Log.i("GLThread", + "noticing that we want render notification tid=" + + getId()); + } + + // Destroy and recreate the EGL surface. + createEglSurface = true; + + mSizeChanged = false; + } + mRequestRender = false; + sGLThreadManager.notifyAll(); + break; + } + } + + // By design, this is the only place in a GLThread thread where we wait(). + if (LOG_THREADS) { + Log.i("GLThread", "waiting tid=" + getId() + + " mHaveEglContext: " + mHaveEglContext + + " mHaveEglSurface: " + mHaveEglSurface + + " mPaused: " + mPaused + + " mHasSurface: " + mHasSurface + + " mSurfaceIsBad: " + mSurfaceIsBad + + " mWaitingForSurface: " + mWaitingForSurface + + " mWidth: " + mWidth + + " mHeight: " + mHeight + + " mRequestRender: " + mRequestRender + + " mRenderMode: " + mRenderMode); + } + sGLThreadManager.wait(); + } + } // end of synchronized(sGLThreadManager) + + if (event != null) { + event.run(); + event = null; + continue; + } + + if (createEglSurface) { + if (LOG_SURFACE) { + Log.w("GLThread", "egl createSurface"); + } + if (!mEglHelper.createSurface()) { + synchronized(sGLThreadManager) { + mSurfaceIsBad = true; + sGLThreadManager.notifyAll(); + } + continue; + } + createEglSurface = false; + } + + if (createGlInterface) { + gl = (GL10) mEglHelper.createGL(); + + sGLThreadManager.checkGLDriver(gl); + createGlInterface = false; + } + + if (createEglContext) { + if (LOG_RENDERER) { + Log.w("GLThread", "onSurfaceCreated"); + } + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + view.mRenderer.onSurfaceCreated(gl, mEglHelper.mEglConfig); + } + createEglContext = false; + } + + if (sizeChanged) { + if (LOG_RENDERER) { + Log.w("GLThread", "onSurfaceChanged(" + w + ", " + h + ")"); + } + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + view.mRenderer.onSurfaceChanged(gl, w, h); + } + sizeChanged = false; + } + + if (LOG_RENDERER_DRAW_FRAME) { + Log.w("GLThread", "onDrawFrame tid=" + getId()); + } + { + GLTextureView view = mGLSurfaceViewWeakRef.get(); + if (view != null) { + view.mRenderer.onDrawFrame(gl); + } + } + int swapError = mEglHelper.swap(); + switch (swapError) { + case EGL10.EGL_SUCCESS: + break; + case EGL11.EGL_CONTEXT_LOST: + if (LOG_SURFACE) { + Log.i("GLThread", "egl context lost tid=" + getId()); + } + lostEglContext = true; + break; + default: + // Other errors typically mean that the current surface is bad, + // probably because the SurfaceView surface has been destroyed, + // but we haven't been notified yet. + // Log the error to help developers understand why rendering stopped. + EglHelper.logEglErrorAsWarning("GLThread", "eglSwapBuffers", swapError); + + synchronized(sGLThreadManager) { + mSurfaceIsBad = true; + sGLThreadManager.notifyAll(); + } + break; + } + + if (wantRenderNotification) { + doRenderNotification = true; + } + } + + } finally { + /* + * clean-up everything... + */ + synchronized (sGLThreadManager) { + stopEglSurfaceLocked(); + stopEglContextLocked(); + } + } + } + + public boolean ableToDraw() { + return mHaveEglContext && mHaveEglSurface && readyToDraw(); + } + + private boolean readyToDraw() { + return (!mPaused) && mHasSurface && (!mSurfaceIsBad) + && (mWidth > 0) && (mHeight > 0) + && (mRequestRender || (mRenderMode == RENDERMODE_CONTINUOUSLY)); + } + + public void setRenderMode(int renderMode) { + if ( !((RENDERMODE_WHEN_DIRTY <= renderMode) && (renderMode <= RENDERMODE_CONTINUOUSLY)) ) { + throw new IllegalArgumentException("renderMode"); + } + synchronized(sGLThreadManager) { + mRenderMode = renderMode; + sGLThreadManager.notifyAll(); + } + } + + public int getRenderMode() { + synchronized(sGLThreadManager) { + return mRenderMode; + } + } + + public void requestRender() { + synchronized(sGLThreadManager) { + mRequestRender = true; + sGLThreadManager.notifyAll(); + } + } + + public void surfaceCreated() { + synchronized(sGLThreadManager) { + if (LOG_THREADS) { + Log.i("GLThread", "surfaceCreated tid=" + getId()); + } + mHasSurface = true; + sGLThreadManager.notifyAll(); + while((mWaitingForSurface) && (!mExited)) { + try { + sGLThreadManager.wait(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void surfaceDestroyed() { + synchronized(sGLThreadManager) { + if (LOG_THREADS) { + Log.i("GLThread", "surfaceDestroyed tid=" + getId()); + new Throwable("Surface destroy calling at???").printStackTrace(); + } + mHasSurface = false; + sGLThreadManager.notifyAll(); + while((!mWaitingForSurface) && (!mExited)) { + try { + sGLThreadManager.wait(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void onPause() { + synchronized (sGLThreadManager) { + if (LOG_PAUSE_RESUME) { + Log.i("GLThread", "onPause tid=" + getId()); + } + mRequestPaused = true; + sGLThreadManager.notifyAll(); + while ((! mExited) && (! mPaused)) { + if (LOG_PAUSE_RESUME) { + Log.i("Main thread", "onPause waiting for mPaused."); + } + try { + sGLThreadManager.wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void onResume() { + synchronized (sGLThreadManager) { + if (LOG_PAUSE_RESUME) { + Log.i("GLThread", "onResume tid=" + getId()); + } + mRequestPaused = false; + mRequestRender = true; + mRenderComplete = false; + sGLThreadManager.notifyAll(); + while ((! mExited) && mPaused && (!mRenderComplete)) { + if (LOG_PAUSE_RESUME) { + Log.i("Main thread", "onResume waiting for !mPaused."); + } + try { + sGLThreadManager.wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void onWindowResize(int w, int h) { + synchronized (sGLThreadManager) { + mWidth = w; + mHeight = h; + mSizeChanged = true; + mRequestRender = true; + mRenderComplete = false; + sGLThreadManager.notifyAll(); + + // Wait for thread to react to resize and render a frame + while (! mExited && !mPaused && !mRenderComplete + && ableToDraw()) { + if (LOG_SURFACE) { + Log.i("Main thread", "onWindowResize waiting for render complete from tid=" + getId()); + } + try { + sGLThreadManager.wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void requestExitAndWait() { + // don't call this from GLThread thread or it is a guaranteed + // deadlock! + synchronized(sGLThreadManager) { + mShouldExit = true; + sGLThreadManager.notifyAll(); + while (! mExited) { + try { + sGLThreadManager.wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + } + } + } + + public void requestReleaseEglContextLocked() { + mShouldReleaseEglContext = true; + sGLThreadManager.notifyAll(); + } + + /** + * Queue an "event" to be run on the GL rendering thread. + * @param r the runnable to be run on the GL rendering thread. + */ + public void queueEvent(Runnable r) { + if (r == null) { + throw new IllegalArgumentException("r must not be null"); + } + synchronized(sGLThreadManager) { + mEventQueue.add(r); + sGLThreadManager.notifyAll(); + } + } + + // Once the thread is started, all accesses to the following member + // variables are protected by the sGLThreadManager monitor + private boolean mShouldExit; + private boolean mExited; + private boolean mRequestPaused; + private boolean mPaused; + private boolean mHasSurface; + private boolean mSurfaceIsBad; + private boolean mWaitingForSurface; + private boolean mHaveEglContext; + private boolean mHaveEglSurface; + private boolean mShouldReleaseEglContext; + private int mWidth; + private int mHeight; + private int mRenderMode; + private boolean mRequestRender; + private boolean mRenderComplete; + private ArrayList mEventQueue = new ArrayList(); + private boolean mSizeChanged = true; + + // End of member variables protected by the sGLThreadManager monitor. + + private EglHelper mEglHelper; + + /** + * Set once at thread construction time, nulled out when the parent view is garbage + * called. This weak reference allows the GLTextureView to be garbage collected while + * the GLThread is still alive. + */ + private WeakReference mGLSurfaceViewWeakRef; + + } + + static class LogWriter extends Writer { + + @Override public void close() { + flushBuilder(); + } + + @Override public void flush() { + flushBuilder(); + } + + @Override public void write(char[] buf, int offset, int count) { + for(int i = 0; i < count; i++) { + char c = buf[offset + i]; + if ( c == '\n') { + flushBuilder(); + } + else { + mBuilder.append(c); + } + } + } + + private void flushBuilder() { + if (mBuilder.length() > 0) { + Log.v("GLTextureView", mBuilder.toString()); + mBuilder.delete(0, mBuilder.length()); + } + } + + private StringBuilder mBuilder = new StringBuilder(); + } + + + private void checkRenderThreadState() { + if (mGLThread != null) { + throw new IllegalStateException( + "setRenderer has already been called for this instance."); + } + } + + private static class GLThreadManager { + private static String TAG = "GLThreadManager"; + + public synchronized void threadExiting(GLThread thread) { + if (LOG_THREADS) { + Log.i("GLThread", "exiting tid=" + thread.getId()); + } + thread.mExited = true; + if (mEglOwner == thread) { + mEglOwner = null; + } + notifyAll(); + } + + /* + * Tries once to acquire the right to use an EGL + * context. Does not block. Requires that we are already + * in the sGLThreadManager monitor when this is called. + * + * @return true if the right to use an EGL context was acquired. + */ + public boolean tryAcquireEglContextLocked(GLThread thread) { + if (mEglOwner == thread || mEglOwner == null) { + mEglOwner = thread; + notifyAll(); + return true; + } + checkGLESVersion(); + if (mMultipleGLESContextsAllowed) { + return true; + } + // Notify the owning thread that it should release the context. + // TODO: implement a fairness policy. Currently + // if the owning thread is drawing continuously it will just + // reacquire the EGL context. + if (mEglOwner != null) { + mEglOwner.requestReleaseEglContextLocked(); + } + return false; + } + + /* + * Releases the EGL context. Requires that we are already in the + * sGLThreadManager monitor when this is called. + */ + public void releaseEglContextLocked(GLThread thread) { + if (mEglOwner == thread) { + mEglOwner = null; + } + notifyAll(); + } + + public synchronized boolean shouldReleaseEGLContextWhenPausing() { + // Release the EGL context when pausing even if + // the hardware supports multiple EGL contexts. + // Otherwise the device could run out of EGL contexts. + return mLimitedGLESContexts; + } + + public synchronized boolean shouldTerminateEGLWhenPausing() { + checkGLESVersion(); + return !mMultipleGLESContextsAllowed; + } + + public synchronized void checkGLDriver(GL10 gl) { + if (! mGLESDriverCheckComplete) { + checkGLESVersion(); + String renderer = gl.glGetString(GL10.GL_RENDERER); + if (mGLESVersion < kGLES_20) { + mMultipleGLESContextsAllowed = + ! renderer.startsWith(kMSM7K_RENDERER_PREFIX); + notifyAll(); + } + mLimitedGLESContexts = !mMultipleGLESContextsAllowed; + if (LOG_SURFACE) { + Log.w(TAG, "checkGLDriver renderer = \"" + renderer + "\" multipleContextsAllowed = " + + mMultipleGLESContextsAllowed + + " mLimitedGLESContexts = " + mLimitedGLESContexts); + } + mGLESDriverCheckComplete = true; + } + } + + private void checkGLESVersion() { + if (! mGLESVersionCheckComplete) { +// mGLESVersion = SystemProperties.getInt( +// "ro.opengles.version", +// ConfigurationInfo.GL_ES_VERSION_UNDEFINED); +// if (mGLESVersion >= kGLES_20) { +// mMultipleGLESContextsAllowed = true; +// } +// if (LOG_SURFACE) { +// Log.w(TAG, "checkGLESVersion mGLESVersion =" + +// " " + mGLESVersion + " mMultipleGLESContextsAllowed = " + mMultipleGLESContextsAllowed); +// } + mGLESVersionCheckComplete = true; + } + } + + /** + * This check was required for some pre-Android-3.0 hardware. Android 3.0 provides + * support for hardware-accelerated views, therefore multiple EGL contexts are + * supported on all Android 3.0+ EGL drivers. + */ + private boolean mGLESVersionCheckComplete; + private int mGLESVersion; + private boolean mGLESDriverCheckComplete; + private boolean mMultipleGLESContextsAllowed; + private boolean mLimitedGLESContexts; + private static final int kGLES_20 = 0x20000; + private static final String kMSM7K_RENDERER_PREFIX = + "Q3Dimension MSM7500 "; + private GLThread mEglOwner; + } + + private static final GLThreadManager sGLThreadManager = new GLThreadManager(); + + private final WeakReference mThisWeakRef = + new WeakReference(this); + private GLThread mGLThread; + private Renderer mRenderer; + private boolean mDetached; + private EGLConfigChooser mEGLConfigChooser; + private EGLContextFactory mEGLContextFactory; + private EGLWindowSurfaceFactory mEGLWindowSurfaceFactory; + private GLWrapper mGLWrapper; + private int mDebugFlags; + private int mEGLContextClientVersion; + private boolean mPreserveEGLContextOnPause; +} diff --git a/app/src/main/java/com/kdt/mcgui/MineButton.java b/app/src/main/java/com/kdt/mcgui/MineButton.java new file mode 100644 index 000000000..1e4da5b2a --- /dev/null +++ b/app/src/main/java/com/kdt/mcgui/MineButton.java @@ -0,0 +1,106 @@ +package com.kdt.mcgui; + +import android.content.*; +import android.graphics.*; +import android.graphics.drawable.*; +import android.util.*; +import android.view.*; +import android.widget.*; +import android.view.View.*; + +public class MineButton extends Button +{ + private ColorDrawable left = new ColorDrawable(Color.parseColor("#80000000")); + private ColorDrawable top = new ColorDrawable(Color.parseColor("#64FC20")); + private ColorDrawable right = new ColorDrawable(Color.parseColor("#40000000")); + private ColorDrawable bottom = new ColorDrawable(Color.parseColor("#80000000")); + private ColorDrawable bgNormal = new ColorDrawable(Color.parseColor("#36b030")); + + private ColorDrawable leftFocus = new ColorDrawable(Color.parseColor("#C2000000")); + private ColorDrawable topFocus = new ColorDrawable(Color.parseColor("#80313131")); + private ColorDrawable rightFocus = new ColorDrawable(Color.parseColor("#C2000000")); + private ColorDrawable bottomFocus = new ColorDrawable(Color.parseColor("#C2000000")); + private ColorDrawable bgFocus = new ColorDrawable(Color.parseColor("#313131")); + + private boolean isUp = true; + + private Drawable[] DrawableArray = new Drawable[]{ + top, + left, + right, + bottom, + bgNormal + }; + + private Drawable[] DrawableArrayFocus = new Drawable[]{ + topFocus, + leftFocus, + rightFocus, + bottomFocus, + bgFocus + }; + + private LayerDrawable layerdrawable, layerdrawablefocus; + + public MineButton(Context ctx) + { + super(ctx); + init(); + } + + public MineButton(Context ctx, AttributeSet attrs) + { + super(ctx, attrs); + init(); + } + + public void init() + { + getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + layerdrawable = new LayerDrawable(DrawableArray); + layerdrawable.setLayerInset(0, 0, 0, 0, 0); // top + layerdrawable.setLayerInset(1, 0, 8, getWidth() - 8,0); // left + layerdrawable.setLayerInset(2, getWidth() - 8, 8, 0, 0); // right + layerdrawable.setLayerInset(3, 0, getHeight() - 8, 0, 0); // bottom + layerdrawable.setLayerInset(4, 8, 8, 8, 8); // bg + + layerdrawablefocus = new LayerDrawable(DrawableArrayFocus); + layerdrawablefocus.setLayerInset(0, 0, 0, 0, 0); // top + layerdrawablefocus.setLayerInset(1, 0, 8, getWidth() - 8,0); // left + layerdrawablefocus.setLayerInset(2, getWidth() - 8, 8, 0, 0); // right + layerdrawablefocus.setLayerInset(3, 0, getHeight() - 8, 0, 0); // bottom + layerdrawablefocus.setLayerInset(4, 8, 8, 8, 8); // bg + + setBackgroundDrawable(layerdrawable); + setTextColor(Color.WHITE); + setPadding(10, 10, 10, 10); + + //setOnTouchListener(null); + } + }); + setTypeface(Typeface.createFromAsset(getContext().getAssets(), "font/NotoSans-Bold.ttf")); + } + + @Override + public void setEnabled(boolean enabled) + { + super.setEnabled(enabled); + setBackgroundDrawable(enabled ? layerdrawable : layerdrawablefocus); + } + + @Override + public boolean onTouchEvent(MotionEvent event) + { + if ((event.getAction() == event.ACTION_UP) && !isUp && isEnabled()) { + setBackgroundDrawable(layerdrawable); + isUp = true; + } else if (event.getAction() == event.ACTION_DOWN && isUp) { + setBackgroundDrawable(layerdrawablefocus); + isUp = false; + } + + return super.onTouchEvent(event); + } +} diff --git a/app/src/main/java/com/kdt/mcgui/MineEditText.java b/app/src/main/java/com/kdt/mcgui/MineEditText.java new file mode 100644 index 000000000..807547a12 --- /dev/null +++ b/app/src/main/java/com/kdt/mcgui/MineEditText.java @@ -0,0 +1,27 @@ +package com.kdt.mcgui; + +import android.content.*; +import android.util.*; +import android.widget.*; +import net.kdt.pojavlaunch.*; + +public class MineEditText extends EditText +{ + public MineEditText(Context ctx) + { + super(ctx); + init(); + } + + public MineEditText(Context ctx, AttributeSet attrs) + { + super(ctx, attrs); + init(); + } + + public void init() + { + setBackgroundResource(R.drawable.border_edittext); + setPadding(5, 5, 5, 5); + } +} diff --git a/app/src/main/java/com/kdt/mcgui/app/MineActivity.java b/app/src/main/java/com/kdt/mcgui/app/MineActivity.java new file mode 100644 index 000000000..5119f9353 --- /dev/null +++ b/app/src/main/java/com/kdt/mcgui/app/MineActivity.java @@ -0,0 +1,135 @@ +package com.kdt.mcgui.app; + +import android.app.*; +import android.content.pm.*; +import android.view.*; +import android.widget.*; +import net.kdt.pojavlaunch.*; +import android.os.*; +import android.support.v4.app.*; +import android.support.v7.app.*; + +public class MineActivity extends AppCompatActivity implements View.OnClickListener +{ + private int topId = 150001; + private boolean showBeforeView = true; + + private FontChanger fontChanger; + + private ImageButton menu; + private LinearLayout content, undertop; + + private LayoutInflater li; + + public ViewGroup replaceFonts(ViewGroup viewTree) + { + if (fontChanger == null) fontChanger = new FontChanger(getAssets(), "font/NotoSans-Bold.ttf"); + return fontChanger.replaceFonts(viewTree); + } + + public View replaceFont(TextView view) + { + if (fontChanger == null) fontChanger = new FontChanger(getAssets(), "font/NotoSans-Bold.ttf"); + return fontChanger.replaceFont(view); + } + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + mcUIInit(); + } + + protected void onCreate(Bundle savedInstanceState, boolean showBeforeView) + { + super.onCreate(savedInstanceState); + + this.showBeforeView = showBeforeView; + if (showBeforeView) { + mcUIInit(); + } + } + + private void mcUIInit() { + RelativeLayout root = new RelativeLayout(this); + LinearLayout top = new LinearLayout(this); + top.setId(topId); + + content = new LinearLayout(this); + RelativeLayout btm = new RelativeLayout(this); + + li = LayoutInflater.from(this); + li.inflate(R.layout.top_bar, top, true); + li.inflate(R.layout.bottom_bar, btm, true); + + replaceFonts(btm); + + replaceFont((TextView) top.findViewById(R.id.topbar_language_text)); + + RelativeLayout.LayoutParams conLay = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); + conLay.addRule(root.BELOW, topId); + conLay.bottomMargin = 66; + + content.setLayoutParams(conLay); + + root.addView(top, new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); + root.addView(content); + root.addView(btm); + + super.setContentView(root); + + TextView ver = (TextView) findViewById(R.id.bottombar_version_view); + + menu = (ImageButton) findViewById(R.id.topbar_navmenu_icon); + setMenuVisible(false); + + undertop = (LinearLayout) findViewById(R.id.topbar_undertop_view); + + try { + ver.setText(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + } catch (PackageManager.NameNotFoundException e) {} // Never happend! + + setClick(R.id.topbar_help_text); + setClick(R.id.topbar_logo); + setClick(R.id.bottombar_author_logo); + } + + @Override + public void setContentView(int resource) + { + if (!showBeforeView) { + mcUIInit(); + } + + li.inflate(resource, content, true); + replaceFonts(content); + } + + @Override + public void onClick(View view) + { + switch (view.getId()) { + case R.id.topbar_help_text: Tools.openURL(this, "https://www.minecraft.net/help"); + break; + case R.id.topbar_logo: Tools.openURL(this, "https://www.minecraft.net"); + break; + case R.id.bottombar_author_logo: Tools.openURL(this, "https://mojang.com"); + break; + } + } + + public void setUndertopView(View view) { + if (undertop.getChildCount() > 0) { + undertop.removeAllViews(); + } + undertop.addView(view); + } + + public void setMenuVisible(boolean value) { + menu.setVisibility(value ? View.VISIBLE : View.GONE); + } + + public void setClick(int id) { + findViewById(id).setOnClickListener(this); + } +} diff --git a/app/src/main/java/com/kdt/mojangauth/LoginListener.java b/app/src/main/java/com/kdt/mojangauth/LoginListener.java new file mode 100644 index 000000000..129811f6e --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/LoginListener.java @@ -0,0 +1,7 @@ +package com.kdt.mojangauth; + +public interface LoginListener +{ + public void onBeforeLogin(); + public void onLoginDone(String[] result); +} diff --git a/app/src/main/java/com/kdt/mojangauth/LoginTask.java b/app/src/main/java/com/kdt/mojangauth/LoginTask.java new file mode 100644 index 000000000..de9c2ed64 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/LoginTask.java @@ -0,0 +1,71 @@ +package com.kdt.mojangauth; + +import android.os.*; +import com.kdt.mojangauth.yggdrasil.*; +import java.io.*; +import java.util.*; +import net.kdt.pojavlaunch.*; + +public class LoginTask extends AsyncTask +{ + private YggdrasilAuthenticator authenticator = new YggdrasilAuthenticator(); + //private String TAG = "MojangAuth-login"; + private LoginListener listener; + + public LoginTask setLoginListener(LoginListener listener) + { + this.listener = listener; + return this; + } + private UUID getRandomUUID() + { + return UUID.randomUUID(); + } + @Override + protected void onPreExecute() + { + listener.onBeforeLogin(); + + super.onPreExecute(); + } + @Override + protected String[] doInBackground(String[] args) + { + ArrayList str = new ArrayList(); + str.add("ERROR"); + try{ + try{ + AuthenticateResponse response = authenticator.authenticate(args[0], args[1], getRandomUUID()); + if(response.selectedProfile == null){ + str.add("Can't login a demo account!\n"); + } + else{ + if(new File(Tools.mpProfiles + "/" + response.selectedProfile.name).exists()){ + str.add("This account already exist!\n"); + } + else{ + str.add(response.accessToken); // Access token + str.add(response.clientToken.toString()); // Client token + str.add(response.selectedProfile.id); // Profile ID + str.add(response.selectedProfile.name); // Username + str.set(0, "NORMAL"); + } + } + } + //MainActivity.updateStatus(804); + catch(Throwable e){ + str.add(e.getMessage()); + } + } + catch(Exception e){ + str.add(e.getMessage()); + } + return str.toArray(new String[0]); + } + @Override + protected void onPostExecute(String[] result) + { + listener.onLoginDone(result); + super.onPostExecute(result); + } +} diff --git a/app/src/main/java/com/kdt/mojangauth/RefreshListener.java b/app/src/main/java/com/kdt/mojangauth/RefreshListener.java new file mode 100644 index 000000000..46c3efc1a --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/RefreshListener.java @@ -0,0 +1,7 @@ +package com.kdt.mojangauth; + +public interface RefreshListener +{ + public void onFailed(Throwable e); + public void onSuccess(); +} diff --git a/app/src/main/java/com/kdt/mojangauth/RefreshTokenTask.java b/app/src/main/java/com/kdt/mojangauth/RefreshTokenTask.java new file mode 100644 index 000000000..c1b31063e --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/RefreshTokenTask.java @@ -0,0 +1,66 @@ +package com.kdt.mojangauth; + +import android.content.*; +import android.os.*; +import com.google.gson.*; +import java.util.*; +import net.kdt.pojavlaunch.*; +import com.kdt.mojangauth.yggdrasil.*; +import android.app.*; + +public class RefreshTokenTask extends AsyncTask { + private YggdrasilAuthenticator authenticator = new YggdrasilAuthenticator(); + //private Gson gson = new Gson(); + private RefreshListener listener; + private MCProfile.Builder profilePath; + + private Context ctx; + private ProgressDialog build; + @Override + public RefreshTokenTask(Context ctx, RefreshListener listener) { + this.ctx = ctx; + this.listener = listener; + } + + @Override + public void onPreExecute() { + build = new ProgressDialog(ctx); + build.setMessage("Refreshing"); + build.setProgressStyle(ProgressDialog.STYLE_SPINNER); + build.setCancelable(false); + build.show(); + } + + @Override + public Throwable doInBackground(String... args) { + try { + this.profilePath = MCProfile.load(args[0]); + RefreshResponse response = this.authenticator.refresh(profilePath.getAccessToken(), UUID.fromString(profilePath.getClientID())); + if (response == null) { + throw new NullPointerException("Response is null?"); + } + if (response.selectedProfile == null) { + throw new IllegalArgumentException("Can't refresh a demo account!"); + } + profilePath.setClientID(response.clientToken.toString()); + profilePath.setAccessToken(response.accessToken); + profilePath.setUsername(response.selectedProfile.name); + profilePath.setProfileID(response.selectedProfile.id); + MCProfile.build(profilePath); + return null; + } catch (Throwable e) { + return e; + } + } + + @Override + public void onPostExecute(Throwable result) { + build.dismiss(); + if (result == null) { + listener.onSuccess(); + } else { + listener.onFailed(result); + } + } +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.java new file mode 100644 index 000000000..250ad6d26 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateRequest.java @@ -0,0 +1,24 @@ +package com.kdt.mojangauth.yggdrasil; + +import java.util.UUID; + +public class AuthenticateRequest { + public AgentInfo agent = new AgentInfo(); + public UUID clientToken; + public String password; + public String username; + + public static class AgentInfo { + public String name; + public int version; + } + + public AuthenticateRequest(String username, String password, UUID clientToken, String clientName, int clientVersion) { + this.username = username; + this.password = password; + this.clientToken = clientToken; + this.agent.name = clientName; + this.agent.version = clientVersion; + } +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.java new file mode 100644 index 000000000..fccd4790d --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/AuthenticateResponse.java @@ -0,0 +1,11 @@ +package com.kdt.mojangauth.yggdrasil; + +import java.util.UUID; + +public class AuthenticateResponse { + public String accessToken; + public Profile[] availableProfiles; + public UUID clientToken; + public Profile selectedProfile; +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/ErrorResponse.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/ErrorResponse.java new file mode 100644 index 000000000..fabb353e9 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/ErrorResponse.java @@ -0,0 +1,8 @@ +package com.kdt.mojangauth.yggdrasil; + +public class ErrorResponse { + public String cause; + public String error; + public String errorMessage; +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/Profile.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/Profile.java new file mode 100644 index 000000000..44662e782 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/Profile.java @@ -0,0 +1,8 @@ +package com.kdt.mojangauth.yggdrasil; + +public class Profile { + public String id; + public boolean legacy; + public String name; +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshRequest.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshRequest.java new file mode 100644 index 000000000..dd633ca43 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshRequest.java @@ -0,0 +1,14 @@ +package com.kdt.mojangauth.yggdrasil; + +import java.util.UUID; + +public class RefreshRequest { + public String accessToken; + public UUID clientToken; + + public RefreshRequest(String accessToken, UUID clientToken) { + this.accessToken = accessToken; + this.clientToken = clientToken; + } +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshResponse.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshResponse.java new file mode 100644 index 000000000..06eead068 --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/RefreshResponse.java @@ -0,0 +1,10 @@ +package com.kdt.mojangauth.yggdrasil; + +import java.util.UUID; + +public class RefreshResponse { + public String accessToken; + public UUID clientToken; + public Profile selectedProfile; +} + diff --git a/app/src/main/java/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.java b/app/src/main/java/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.java new file mode 100644 index 000000000..6e93eddbe --- /dev/null +++ b/app/src/main/java/com/kdt/mojangauth/yggdrasil/YggdrasilAuthenticator.java @@ -0,0 +1,99 @@ +package com.kdt.mojangauth.yggdrasil; + +import android.util.*; +import com.google.gson.*; +import java.io.*; +import java.net.*; +import java.nio.charset.*; +import java.util.*; + +public class YggdrasilAuthenticator { + private static final String API_URL = "https://authserver.mojang.com/"; + private String clientName = "Minecraft"; + private int clientVersion = 1; + private Gson gson = new Gson(); + + private T makeRequest(String endpoint, Object inputObject, Class responseClass) throws IOException, Throwable { + Throwable th; + InputStream is = null; + byte[] buf = new byte[16384]; + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + String requestJson = this.gson.toJson(inputObject); + try { + URL url = new URL(API_URL + endpoint); + OutputStream os; + try { + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("User-Agent", "Minecraft"); + conn.setDoInput(true); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/json"); + conn.connect(); + os = null; + os = conn.getOutputStream(); + os.write(requestJson.getBytes(Charset.forName("UTF-8"))); + if (os != null) { + os.close(); + } + int statusCode = conn.getResponseCode(); + if (statusCode != 200) { + is = conn.getErrorStream(); + } else { + is = conn.getInputStream(); + } + pipe(is, bos, buf); + if (is != null) { + try { + is.close(); + } catch (Exception e) { + throw e; + } + } + String outString = new String(bos.toByteArray(), Charset.forName("UTF-8")); + if (statusCode == 200){ + Log.i("Result", "Login successful"); + + return this.gson.fromJson(outString, responseClass); + } + throw new RuntimeException("Invalid username or password"); + } catch (UnknownHostException e) { + throw new RuntimeException("Can't connect to the server"); + } catch (Throwable th2) { + th = th2; + if (is != null) { + try { + is.close(); + } catch (Exception e2) { + throw e2; + } + } + throw th; + } + } catch (Throwable th3) { + th = th3; + if (is != null) { + is.close(); + } + throw th; + } + } + + public AuthenticateResponse authenticate(String username, String password, UUID clientId) throws IOException, Throwable { + return (AuthenticateResponse) makeRequest("authenticate", new AuthenticateRequest(username, password, clientId, this.clientName, this.clientVersion), AuthenticateResponse.class); + } + + public RefreshResponse refresh(String authToken, UUID clientId) throws IOException, Throwable { + return (RefreshResponse) makeRequest("refresh", new RefreshRequest(authToken, clientId), RefreshResponse.class); + } + private void pipe(InputStream is, OutputStream out, byte[] buf) throws IOException { + while (true) { + int amt = is.read(buf); + if (amt >= 0) { + out.write(buf, 0, amt); + } else { + return; + } + } + } +} + diff --git a/app/src/main/java/com/kdtapi/mclup/UpContext.java b/app/src/main/java/com/kdtapi/mclup/UpContext.java new file mode 100644 index 000000000..661c54383 --- /dev/null +++ b/app/src/main/java/com/kdtapi/mclup/UpContext.java @@ -0,0 +1,55 @@ +package com.kdtapi.mclup; + +import android.content.*; +import android.os.*; +import android.util.*; +import android.widget.*; +import java.io.*; +import net.kdt.pojavlaunch.*; + +public abstract class UpContext +{ + public abstract void onCreate() throws Exception; + public abstract void onFinish(); + public abstract void onErrorw(String message); + + private UpdateAppActivity activity; + public UpContext(UpdateAppActivity activity) + { + this.activity = activity; + } + public Context getContext() + { + return getUpActivity(); + } + public UpdateAppActivity getUpActivity() + { + return activity; + } + public void onRun() + { + new AsyncTask(){ + @Override + protected Void doInBackground(Void[] p1) + { + try{ + onCreate(); + onFinish(); + new File(Tools.worksDir + "/installer.jar").delete(); + } + catch(Exception e){ + onErrorw(Log.getStackTraceString(e)); + } + return null; + } + }.execute(); + } + public ProgressBar getProgressBar() + { + return activity.getProgressBar(); + } + public void log(String message) + { + activity.putLog(message); + } +} diff --git a/app/src/main/java/java/applet/Applet.java b/app/src/main/java/java/applet/Applet.java new file mode 100644 index 000000000..31adba9d2 --- /dev/null +++ b/app/src/main/java/java/applet/Applet.java @@ -0,0 +1,570 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +package java.applet; + +import java.awt.*; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.net.URL; +import java.net.MalformedURLException; +import java.util.Hashtable; +import java.util.Locale; +import javax.accessibility.*; + +/** + * An applet is a small program that is intended not to be run on + * its own, but rather to be embedded inside another application. + *

+ * The Applet class must be the superclass of any + * applet that is to be embedded in a Web page or viewed by the Java + * Applet Viewer. The Applet class provides a standard + * interface between applets and their environment. + * + * @author Arthur van Hoff + * @author Chris Warth + * @since JDK1.0 + */ +public class Applet extends Panel +{ + + /** + * Constructs a new Applet. + *

+ * Note: Many methods in java.applet.Applet + * may be invoked by the applet only after the applet is + * fully constructed; applet should avoid calling methods + * in java.applet.Applet in the constructor. + * + * @exception HeadlessException if GraphicsEnvironment.isHeadless() + * returns true. + * @see java.awt.GraphicsEnvironment#isHeadless + * @since 1.4 + */ + public Applet() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()) { + throw new HeadlessException(); + } + } + + /** + * Applets can be serialized but the following conventions MUST be followed: + * + * Before Serialization: + * An applet must be in STOPPED state. + * + * After Deserialization: + * The applet will be restored in STOPPED state (and most clients will + * likely move it into RUNNING state). + * The stub field will be restored by the reader. + */ + transient private AppletStub stub; + + /* version ID for serialized form. */ + private static final long serialVersionUID = -5836846270535785031L; + + /** + * Read an applet from an object input stream. + * @exception HeadlessException if + * GraphicsEnvironment.isHeadless() returns + * true + * @serial + * @see java.awt.GraphicsEnvironment#isHeadless + * @since 1.4 + */ + private void readObject(ObjectInputStream s) + throws ClassNotFoundException, IOException, HeadlessException { + if (GraphicsEnvironment.isHeadless()) { + throw new HeadlessException(); + } + s.defaultReadObject(); + } + + /** + * Sets this applet's stub. This is done automatically by the system. + *

If there is a security manager, its checkPermission + * method is called with the + * AWTPermission("setAppletStub") + * permission if a stub has already been set. + * @param stub the new stub. + * @exception SecurityException if the caller cannot set the stub + */ + public final void setStub(AppletStub stub) { + this.stub = stub; + } + + /** + * Determines if this applet is active. An applet is marked active + * just before its start method is called. It becomes + * inactive just before its stop method is called. + * + * @return true if the applet is active; + * false otherwise. + * @see java.applet.Applet#start() + * @see java.applet.Applet#stop() + */ + public boolean isActive() { + if (stub != null) { + return stub.isActive(); + } else { // If stub field not filled in, applet never active + return false; + } + } + + /** + * Gets the URL of the document in which this applet is embedded. + * For example, suppose an applet is contained + * within the document: + *

+     *    http://java.sun.com/products/jdk/1.2/index.html
+     * 
+ * The document base is: + *
+     *    http://java.sun.com/products/jdk/1.2/index.html
+     * 
+ * + * @return the {@link java.net.URL} of the document that contains this + * applet. + * @see java.applet.Applet#getCodeBase() + */ + public URL getDocumentBase() { + return stub.getDocumentBase(); + } + + /** + * Gets the base URL. This is the URL of the directory which contains this applet. + * + * @return the base {@link java.net.URL} of + * the directory which contains this applet. + * @see java.applet.Applet#getDocumentBase() + */ + public URL getCodeBase() { + return stub.getCodeBase(); + } + + /** + * Returns the value of the named parameter in the HTML tag. For + * example, if this applet is specified as + *
+     * <applet code="Clock" width=50 height=50>
+     * <param name=Color value="blue">
+     * </applet>
+     * 
+ *

+ * then a call to getParameter("Color") returns the + * value "blue". + *

+ * The name argument is case insensitive. + * + * @param name a parameter name. + * @return the value of the named parameter, + * or null if not set. + */ + public String getParameter(String name) { + return stub.getParameter(name); + } + + /** + * Determines this applet's context, which allows the applet to + * query and affect the environment in which it runs. + *

+ * This environment of an applet represents the document that + * contains the applet. + * + * @return the applet's context. + */ + public AppletContext getAppletContext() { + return stub.getAppletContext(); + } + + /** + * Requests that this applet be resized. + * + * @param width the new requested width for the applet. + * @param height the new requested height for the applet. + */ + public void resize(int width, int height) { + } + + /** + * Requests that this applet be resized. + * + * @param d an object giving the new width and height. + */ + public void resize(Dimension d) { + + } + + /** + * Indicates if this container is a validate root. + *

+ * {@code Applet} objects are the validate roots, and, therefore, they + * override this method to return {@code true}. + * + * @return {@code true} + * @since 1.7 + * @see java.awt.Container#isValidateRoot + */ + public boolean isValidateRoot() { + return true; + } + + /** + * Requests that the argument string be displayed in the + * "status window". Many browsers and applet viewers + * provide such a window, where the application can inform users of + * its current state. + * + * @param msg a string to display in the status window. + */ + public void showStatus(String msg) { + getAppletContext().showStatus(msg); + } + + /** + * Returns an Image object that can then be painted on + * the screen. The url that is passed as an argument + * must specify an absolute URL. + *

+ * This method always returns immediately, whether or not the image + * exists. When this applet attempts to draw the image on the screen, + * the data will be loaded. The graphics primitives that draw the + * image will incrementally paint on the screen. + * + * @param url an absolute URL giving the location of the image. + * @return the image at the specified URL. + * @see java.awt.Image + */ + public Image getImage(URL url) { + return getAppletContext().getImage(url); + } + + /** + * Returns an Image object that can then be painted on + * the screen. The url argument must specify an absolute + * URL. The name argument is a specifier that is + * relative to the url argument. + *

+ * This method always returns immediately, whether or not the image + * exists. When this applet attempts to draw the image on the screen, + * the data will be loaded. The graphics primitives that draw the + * image will incrementally paint on the screen. + * + * @param url an absolute URL giving the base location of the image. + * @param name the location of the image, relative to the + * url argument. + * @return the image at the specified URL. + * @see java.awt.Image + */ + public Image getImage(URL url, String name) { + try { + return getImage(new URL(url, name)); + } catch (MalformedURLException e) { + return null; + } + } + + /** + * Get an audio clip from the given URL. + * + * @param url points to the audio clip + * @return the audio clip at the specified URL. + * + * @since 1.2 + */ + public final static AudioClip newAudioClip(URL url) { + return new sun.applet.AppletAudioClip(url); + } + + /** + * Returns the AudioClip object specified by the + * URL argument. + *

+ * This method always returns immediately, whether or not the audio + * clip exists. When this applet attempts to play the audio clip, the + * data will be loaded. + * + * @param url an absolute URL giving the location of the audio clip. + * @return the audio clip at the specified URL. + * @see java.applet.AudioClip + */ + public AudioClip getAudioClip(URL url) { + return getAppletContext().getAudioClip(url); + } + + /** + * Returns the AudioClip object specified by the + * URL and name arguments. + *

+ * This method always returns immediately, whether or not the audio + * clip exists. When this applet attempts to play the audio clip, the + * data will be loaded. + * + * @param url an absolute URL giving the base location of the + * audio clip. + * @param name the location of the audio clip, relative to the + * url argument. + * @return the audio clip at the specified URL. + * @see java.applet.AudioClip + */ + public AudioClip getAudioClip(URL url, String name) { + try { + return getAudioClip(new URL(url, name)); + } catch (MalformedURLException e) { + return null; + } + } + + /** + * Returns information about this applet. An applet should override + * this method to return a String containing information + * about the author, version, and copyright of the applet. + *

+ * The implementation of this method provided by the + * Applet class returns null. + * + * @return a string containing information about the author, version, and + * copyright of the applet. + */ + public String getAppletInfo() { + return "This Applet has made from scratch and some source."; + } + + /** + * Gets the locale of the applet. It allows the applet + * to maintain its own locale separated from the locale + * of the browser or appletviewer. + * + * @return the locale of the applet; if no locale has + * been set, the default locale is returned. + * @since JDK1.1 + */ + public Locale getLocale() { + return Locale.getDefault(); + } + + /** + * Returns information about the parameters that are understood by + * this applet. An applet should override this method to return an + * array of Strings describing these parameters. + *

+ * Each element of the array should be a set of three + * Strings containing the name, the type, and a + * description. For example: + *

+     * String pinfo[][] = {
+     *   {"fps",    "1-10",    "frames per second"},
+     *   {"repeat", "boolean", "repeat image loop"},
+     *   {"imgs",   "url",     "images directory"}
+     * };
+     * 
+ *

+ * The implementation of this method provided by the + * Applet class returns null. + * + * @return an array describing the parameters this applet looks for. + */ + public String[][] getParameterInfo() { + return null; + } + + /** + * Plays the audio clip at the specified absolute URL. Nothing + * happens if the audio clip cannot be found. + * + * @param url an absolute URL giving the location of the audio clip. + */ + public void play(URL url) { + AudioClip clip = getAudioClip(url); + if (clip != null) { + clip.play(); + } + } + + /** + * Plays the audio clip given the URL and a specifier that is + * relative to it. Nothing happens if the audio clip cannot be found. + * + * @param url an absolute URL giving the base location of the + * audio clip. + * @param name the location of the audio clip, relative to the + * url argument. + */ + public void play(URL url, String name) { + AudioClip clip = getAudioClip(url, name); + if (clip != null) { + clip.play(); + } + } + + /** + * Called by the browser or applet viewer to inform + * this applet that it has been loaded into the system. It is always + * called before the first time that the start method is + * called. + *

+ * A subclass of Applet should override this method if + * it has initialization to perform. For example, an applet with + * threads would use the init method to create the + * threads and the destroy method to kill them. + *

+ * The implementation of this method provided by the + * Applet class does nothing. + * + * @see java.applet.Applet#destroy() + * @see java.applet.Applet#start() + * @see java.applet.Applet#stop() + */ + public void init() { + } + + /** + * Called by the browser or applet viewer to inform + * this applet that it should start its execution. It is called after + * the init method and each time the applet is revisited + * in a Web page. + *

+ * A subclass of Applet should override this method if + * it has any operation that it wants to perform each time the Web + * page containing it is visited. For example, an applet with + * animation might want to use the start method to + * resume animation, and the stop method to suspend the + * animation. + *

+ * Note: some methods, such as getLocationOnScreen, can only + * provide meaningful results if the applet is showing. Because + * isShowing returns false when the applet's + * start is first called, methods requiring + * isShowing to return true should be called from + * a ComponentListener. + *

+ * The implementation of this method provided by the + * Applet class does nothing. + * + * @see java.applet.Applet#destroy() + * @see java.applet.Applet#init() + * @see java.applet.Applet#stop() + * @see java.awt.Component#isShowing() + * @see java.awt.event.ComponentListener#componentShown(java.awt.event.ComponentEvent) + */ + public void start() { + } + + /** + * Called by the browser or applet viewer to inform + * this applet that it should stop its execution. It is called when + * the Web page that contains this applet has been replaced by + * another page, and also just before the applet is to be destroyed. + *

+ * A subclass of Applet should override this method if + * it has any operation that it wants to perform each time the Web + * page containing it is no longer visible. For example, an applet + * with animation might want to use the start method to + * resume animation, and the stop method to suspend the + * animation. + *

+ * The implementation of this method provided by the + * Applet class does nothing. + * + * @see java.applet.Applet#destroy() + * @see java.applet.Applet#init() + */ + public void stop() { + } + + /** + * Called by the browser or applet viewer to inform + * this applet that it is being reclaimed and that it should destroy + * any resources that it has allocated. The stop method + * will always be called before destroy. + *

+ * A subclass of Applet should override this method if + * it has any operation that it wants to perform before it is + * destroyed. For example, an applet with threads would use the + * init method to create the threads and the + * destroy method to kill them. + *

+ * The implementation of this method provided by the + * Applet class does nothing. + * + * @see java.applet.Applet#init() + * @see java.applet.Applet#start() + * @see java.applet.Applet#stop() + */ + public void destroy() { + } + + // + // Accessibility support + // + + //AccessibleContext accessibleContext = null; + + /** + * Gets the AccessibleContext associated with this Applet. + * For applets, the AccessibleContext takes the form of an + * AccessibleApplet. + * A new AccessibleApplet instance is created if necessary. + * + * @return an AccessibleApplet that serves as the + * AccessibleContext of this Applet + * @since 1.3 + */ + + /* + public AccessibleContext getAccessibleContext() { + if (accessibleContext == null) { + accessibleContext = new AccessibleApplet(); + } + return accessibleContext; + } + */ + + /** + * This class implements accessibility support for the + * Applet class. It provides an implementation of the + * Java Accessibility API appropriate to applet user-interface elements. + * @since 1.3 + */ + protected class AccessibleApplet { + + private static final long serialVersionUID = 8127374778187708896L; + + /** + * Get the role of this object. + * + * @return an instance of AccessibleRole describing the role of the + * object + */ + + + /** + * Get the state of this object. + * + * @return an instance of AccessibleStateSet containing the current + * state set of the object + * @see AccessibleState + */ + } +} diff --git a/app/src/main/java/java/applet/AppletContext.java b/app/src/main/java/java/applet/AppletContext.java new file mode 100644 index 000000000..631fa113a --- /dev/null +++ b/app/src/main/java/java/applet/AppletContext.java @@ -0,0 +1,193 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.applet; + +import java.awt.Image; +import java.awt.Graphics; +import java.net.URL; +import java.util.Enumeration; +import java.io.InputStream; +import java.io.IOException; +import java.util.Iterator; + +/** + * This interface corresponds to an applet's environment: the + * document containing the applet and the other applets in the same + * document. + *

+ * The methods in this interface can be used by an applet to obtain + * information about its environment. + * + * @author Arthur van Hoff + * @since JDK1.0 + */ +public interface AppletContext { + /** + * Creates an audio clip. + * + * @param url an absolute URL giving the location of the audio clip. + * @return the audio clip at the specified URL. + */ + AudioClip getAudioClip(URL url); + + /** + * Returns an Image object that can then be painted on + * the screen. The url argument that is + * passed as an argument must specify an absolute URL. + *

+ * This method always returns immediately, whether or not the image + * exists. When the applet attempts to draw the image on the screen, + * the data will be loaded. The graphics primitives that draw the + * image will incrementally paint on the screen. + * + * @param url an absolute URL giving the location of the image. + * @return the image at the specified URL. + * @see java.awt.Image + */ + Image getImage(URL url); + + /** + * Finds and returns the applet in the document represented by this + * applet context with the given name. The name can be set in the + * HTML tag by setting the name attribute. + * + * @param name an applet name. + * @return the applet with the given name, or null if + * not found. + */ + Applet getApplet(String name); + + /** + * Finds all the applets in the document represented by this applet + * context. + * + * @return an enumeration of all applets in the document represented by + * this applet context. + */ + Enumeration getApplets(); + + /** + * Requests that the browser or applet viewer show the Web page + * indicated by the url argument. The browser or + * applet viewer determines which window or frame to display the + * Web page. This method may be ignored by applet contexts that + * are not browsers. + * + * @param url an absolute URL giving the location of the document. + */ + void showDocument(URL url); + + /** + * Requests that the browser or applet viewer show the Web page + * indicated by the url argument. The + * target argument indicates in which HTML frame the + * document is to be displayed. + * The target argument is interpreted as follows: + *

+ *

+ * + * + * + * + * + * + *
Target ArgumentDescription
"_self" Show in the window and frame that + * contain the applet.
"_parent"Show in the applet's parent frame. If + * the applet's frame has no parent frame, + * acts the same as "_self".
"_top" Show in the top-level frame of the applet's + * window. If the applet's frame is the + * top-level frame, acts the same as "_self".
"_blank" Show in a new, unnamed + * top-level window.
nameShow in the frame or window named name. If + * a target named name does not already exist, a + * new top-level window with the specified name is created, + * and the document is shown there.
+ *

+ * An applet viewer or browser is free to ignore showDocument. + * + * @param url an absolute URL giving the location of the document. + * @param target a String indicating where to display + * the page. + */ + public void showDocument(URL url, String target); + + /** + * Requests that the argument string be displayed in the + * "status window". Many browsers and applet viewers + * provide such a window, where the application can inform users of + * its current state. + * + * @param status a string to display in the status window. + */ + void showStatus(String status); + + /** + * Associates the specified stream with the specified key in this + * applet context. If the applet context previously contained a mapping + * for this key, the old value is replaced. + *

+ * For security reasons, mapping of streams and keys exists for each + * codebase. In other words, applet from one codebase cannot access + * the streams created by an applet from a different codebase + *

+ * @param key key with which the specified value is to be associated. + * @param stream stream to be associated with the specified key. If this + * parameter is null, the specified key is removed + * in this applet context. + * @throws IOException if the stream size exceeds a certain + * size limit. Size limit is decided by the implementor of this + * interface. + * @since 1.4 + */ + public void setStream(String key, InputStream stream)throws IOException; + + /** + * Returns the stream to which specified key is associated within this + * applet context. Returns null if the applet context contains + * no stream for this key. + *

+ * For security reasons, mapping of streams and keys exists for each + * codebase. In other words, applet from one codebase cannot access + * the streams created by an applet from a different codebase + *

+ * @return the stream to which this applet context maps the key + * @param key key whose associated stream is to be returned. + * @since 1.4 + */ + public InputStream getStream(String key); + + /** + * Finds all the keys of the streams in this applet context. + *

+ * For security reasons, mapping of streams and keys exists for each + * codebase. In other words, applet from one codebase cannot access + * the streams created by an applet from a different codebase + *

+ * @return an Iterator of all the names of the streams in this applet + * context. + * @since 1.4 + */ + public Iterator getStreamKeys(); +} diff --git a/app/src/main/java/java/applet/AppletStub.java b/app/src/main/java/java/applet/AppletStub.java new file mode 100644 index 000000000..bdfe65f04 --- /dev/null +++ b/app/src/main/java/java/applet/AppletStub.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +package java.applet; + +import java.net.URL; + +/** + * When an applet is first created, an applet stub is attached to it + * using the applet's setStub method. This stub + * serves as the interface between the applet and the browser + * environment or applet viewer environment in which the application + * is running. + * + * @author Arthur van Hoff + * @see java.applet.Applet#setStub(java.applet.AppletStub) + * @since JDK1.0 + */ +public interface AppletStub { + /** + * Determines if the applet is active. An applet is active just + * before its start method is called. It becomes + * inactive just before its stop method is called. + * + * @return true if the applet is active; + * false otherwise. + */ + boolean isActive(); + + + /** + * Gets the URL of the document in which the applet is embedded. + * For example, suppose an applet is contained + * within the document: + *

+     *    http://java.sun.com/products/jdk/1.2/index.html
+     * 
+ * The document base is: + *
+     *    http://java.sun.com/products/jdk/1.2/index.html
+     * 
+ * + * @return the {@link java.net.URL} of the document that contains the + * applet. + * @see java.applet.AppletStub#getCodeBase() + */ + URL getDocumentBase(); + + /** + * Gets the base URL. This is the URL of the directory which contains the applet. + * + * @return the base {@link java.net.URL} of + * the directory which contains the applet. + * @see java.applet.AppletStub#getDocumentBase() + */ + URL getCodeBase(); + + /** + * Returns the value of the named parameter in the HTML tag. For + * example, if an applet is specified as + *
+     * <applet code="Clock" width=50 height=50>
+     * <param name=Color value="blue">
+     * </applet>
+     * 
+ *

+ * then a call to getParameter("Color") returns the + * value "blue". + * + * @param name a parameter name. + * @return the value of the named parameter, + * or null if not set. + */ + String getParameter(String name); + + /** + * Returns the applet's context. + * + * @return the applet's context. + */ + AppletContext getAppletContext(); + + /** + * Called when the applet wants to be resized. + * + * @param width the new requested width for the applet. + * @param height the new requested height for the applet. + */ + void appletResize(int width, int height); +} diff --git a/app/src/main/java/java/applet/AudioClip.java b/app/src/main/java/java/applet/AudioClip.java new file mode 100644 index 000000000..8574d51ba --- /dev/null +++ b/app/src/main/java/java/applet/AudioClip.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.applet; + +/** + * The AudioClip interface is a simple abstraction for + * playing a sound clip. Multiple AudioClip items can be + * playing at the same time, and the resulting sound is mixed + * together to produce a composite. + * + * @author Arthur van Hoff + * @since JDK1.0 + */ +public interface AudioClip { + /** + * Starts playing this audio clip. Each time this method is called, + * the clip is restarted from the beginning. + */ + void play(); + + /** + * Starts playing this audio clip in a loop. + */ + void loop(); + + /** + * Stops playing this audio clip. + */ + void stop(); +} diff --git a/app/src/main/java/java/awt/AWTError.java b/app/src/main/java/java/awt/AWTError.java new file mode 100644 index 000000000..9885c3135 --- /dev/null +++ b/app/src/main/java/java/awt/AWTError.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.awt; + +/** + * Thrown when a serious Abstract Window Toolkit error has occurred. + * + * @author Arthur van Hoff + */ +public class AWTError extends Error { + + /* + * JDK 1.1 serialVersionUID + */ + private static final long serialVersionUID = -1819846354050686206L; + + /** + * Constructs an instance of AWTError with the specified + * detail message. + * @param msg the detail message. + * @since JDK1.0 + */ + public AWTError(String msg) { + super(msg); + } +} diff --git a/app/src/main/java/java/awt/AWTException.java b/app/src/main/java/java/awt/AWTException.java new file mode 100644 index 000000000..6590b73d1 --- /dev/null +++ b/app/src/main/java/java/awt/AWTException.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Michael Danilov + * @version $Revision$ + */ + +package java.awt; + +/** + * The AWTException class is used to provide notification and information about + * AWT errors. + * + * @since Android 1.0 + */ +public class AWTException extends Exception { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -1900414231151323879L; + + /** + * Instantiates a new AWT exception with the specified message. + * + * @param msg + * the specific message for current exception. + */ + public AWTException(String msg) { + super(msg); + } + +} diff --git a/app/src/main/java/java/awt/BorderLayout.java b/app/src/main/java/java/awt/BorderLayout.java new file mode 100644 index 000000000..667c1bead --- /dev/null +++ b/app/src/main/java/java/awt/BorderLayout.java @@ -0,0 +1,875 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.awt; + +import java.util.Hashtable; + +/** + * A border layout lays out a container, arranging and resizing + * its components to fit in five regions: + * north, south, east, west, and center. + * Each region may contain no more than one component, and + * is identified by a corresponding constant: + * NORTH, SOUTH, EAST, + * WEST, and CENTER. When adding a + * component to a container with a border layout, use one of these + * five constants, for example: + *

+ *    Panel p = new Panel();
+ *    p.setLayout(new BorderLayout());
+ *    p.add(new Button("Okay"), BorderLayout.SOUTH);
+ * 
+ * As a convenience, BorderLayout interprets the + * absence of a string specification the same as the constant + * CENTER: + *
+ *    Panel p2 = new Panel();
+ *    p2.setLayout(new BorderLayout());
+ *    p2.add(new TextArea());  // Same as p.add(new TextArea(), BorderLayout.CENTER);
+ * 
+ *

+ * In addition, BorderLayout supports the relative + * positioning constants, PAGE_START, PAGE_END, + * LINE_START, and LINE_END. + * In a container whose ComponentOrientation is set to + * ComponentOrientation.LEFT_TO_RIGHT, these constants map to + * NORTH, SOUTH, WEST, and + * EAST, respectively. + *

+ * For compatibility with previous releases, BorderLayout + * also includes the relative positioning constants BEFORE_FIRST_LINE, + * AFTER_LAST_LINE, BEFORE_LINE_BEGINS and + * AFTER_LINE_ENDS. These are equivalent to + * PAGE_START, PAGE_END, LINE_START + * and LINE_END respectively. For + * consistency with the relative positioning constants used by other + * components, the latter constants are preferred. + *

+ * Mixing both absolute and relative positioning constants can lead to + * unpredicable results. If + * you use both types, the relative constants will take precedence. + * For example, if you add components using both the NORTH + * and PAGE_START constants in a container whose + * orientation is LEFT_TO_RIGHT, only the + * PAGE_START will be layed out. + *

+ * NOTE: Currently (in the Java 2 platform v1.2), + * BorderLayout does not support vertical + * orientations. The isVertical setting on the container's + * ComponentOrientation is not respected. + *

+ * The components are laid out according to their + * preferred sizes and the constraints of the container's size. + * The NORTH and SOUTH components may + * be stretched horizontally; the EAST and + * WEST components may be stretched vertically; + * the CENTER component may stretch both horizontally + * and vertically to fill any space left over. + *

+ * Here is an example of five buttons in an applet laid out using + * the BorderLayout layout manager: + *

+ * Diagram of an applet demonstrating BorderLayout.
+ *      Each section of the BorderLayout contains a Button corresponding to its position in the layout, one of:
+ *      North, West, Center, East, or South. + *

+ * The code for this applet is as follows: + *

+ *


+ * import java.awt.*;
+ * import java.applet.Applet;
+ *
+ * public class buttonDir extends Applet {
+ *   public void init() {
+ *     setLayout(new BorderLayout());
+ *     add(new Button("North"), BorderLayout.NORTH);
+ *     add(new Button("South"), BorderLayout.SOUTH);
+ *     add(new Button("East"), BorderLayout.EAST);
+ *     add(new Button("West"), BorderLayout.WEST);
+ *     add(new Button("Center"), BorderLayout.CENTER);
+ *   }
+ * }
+ * 

+ *

+ * @author Arthur van Hoff + * @see java.awt.Container#add(String, Component) + * @see java.awt.ComponentOrientation + * @since JDK1.0 + */ +public class BorderLayout implements LayoutManager2, +java.io.Serializable { + /** + * Constructs a border layout with the horizontal gaps + * between components. + * The horizontal gap is specified by hgap. + * + * @see #getHgap() + * @see #setHgap(int) + * + * @serial + */ + int hgap; + + /** + * Constructs a border layout with the vertical gaps + * between components. + * The vertical gap is specified by vgap. + * + * @see #getVgap() + * @see #setVgap(int) + * @serial + */ + int vgap; + + /** + * Constant to specify components location to be the + * north portion of the border layout. + * @serial + * @see #getChild(String, boolean) + * @see #addLayoutComponent + * @see #getLayoutAlignmentX + * @see #getLayoutAlignmentY + * @see #removeLayoutComponent + */ + Component north; + /** + * Constant to specify components location to be the + * west portion of the border layout. + * @serial + * @see #getChild(String, boolean) + * @see #addLayoutComponent + * @see #getLayoutAlignmentX + * @see #getLayoutAlignmentY + * @see #removeLayoutComponent + */ + Component west; + /** + * Constant to specify components location to be the + * east portion of the border layout. + * @serial + * @see #getChild(String, boolean) + * @see #addLayoutComponent + * @see #getLayoutAlignmentX + * @see #getLayoutAlignmentY + * @see #removeLayoutComponent + */ + Component east; + /** + * Constant to specify components location to be the + * south portion of the border layout. + * @serial + * @see #getChild(String, boolean) + * @see #addLayoutComponent + * @see #getLayoutAlignmentX + * @see #getLayoutAlignmentY + * @see #removeLayoutComponent + */ + Component south; + /** + * Constant to specify components location to be the + * center portion of the border layout. + * @serial + * @see #getChild(String, boolean) + * @see #addLayoutComponent + * @see #getLayoutAlignmentX + * @see #getLayoutAlignmentY + * @see #removeLayoutComponent + */ + Component center; + + /** + * + * A relative positioning constant, that can be used instead of + * north, south, east, west or center. + * mixing the two types of constants can lead to unpredicable results. If + * you use both types, the relative constants will take precedence. + * For example, if you add components using both the NORTH + * and BEFORE_FIRST_LINE constants in a container whose + * orientation is LEFT_TO_RIGHT, only the + * BEFORE_FIRST_LINE will be layed out. + * This will be the same for lastLine, firstItem, lastItem. + * @serial + */ + Component firstLine; + /** + * A relative positioning constant, that can be used instead of + * north, south, east, west or center. + * Please read Description for firstLine. + * @serial + */ + Component lastLine; + /** + * A relative positioning constant, that can be used instead of + * north, south, east, west or center. + * Please read Description for firstLine. + * @serial + */ + Component firstItem; + /** + * A relative positioning constant, that can be used instead of + * north, south, east, west or center. + * Please read Description for firstLine. + * @serial + */ + Component lastItem; + + /** + * The north layout constraint (top of container). + */ + public static final String NORTH = "North"; + + /** + * The south layout constraint (bottom of container). + */ + public static final String SOUTH = "South"; + + /** + * The east layout constraint (right side of container). + */ + public static final String EAST = "East"; + + /** + * The west layout constraint (left side of container). + */ + public static final String WEST = "West"; + + /** + * The center layout constraint (middle of container). + */ + public static final String CENTER = "Center"; + + /** + * Synonym for PAGE_START. Exists for compatibility with previous + * versions. PAGE_START is preferred. + * + * @see #PAGE_START + * @since 1.2 + */ + public static final String BEFORE_FIRST_LINE = "First"; + + /** + * Synonym for PAGE_END. Exists for compatibility with previous + * versions. PAGE_END is preferred. + * + * @see #PAGE_END + * @since 1.2 + */ + public static final String AFTER_LAST_LINE = "Last"; + + /** + * Synonym for LINE_START. Exists for compatibility with previous + * versions. LINE_START is preferred. + * + * @see #LINE_START + * @since 1.2 + */ + public static final String BEFORE_LINE_BEGINS = "Before"; + + /** + * Synonym for LINE_END. Exists for compatibility with previous + * versions. LINE_END is preferred. + * + * @see #LINE_END + * @since 1.2 + */ + public static final String AFTER_LINE_ENDS = "After"; + + /** + * The component comes before the first line of the layout's content. + * For Western, left-to-right and top-to-bottom orientations, this is + * equivalent to NORTH. + * + * @see java.awt.Component#getComponentOrientation + * @since 1.4 + */ + public static final String PAGE_START = BEFORE_FIRST_LINE; + + /** + * The component comes after the last line of the layout's content. + * For Western, left-to-right and top-to-bottom orientations, this is + * equivalent to SOUTH. + * + * @see java.awt.Component#getComponentOrientation + * @since 1.4 + */ + public static final String PAGE_END = AFTER_LAST_LINE; + + /** + * The component goes at the beginning of the line direction for the + * layout. For Western, left-to-right and top-to-bottom orientations, + * this is equivalent to WEST. + * + * @see java.awt.Component#getComponentOrientation + * @since 1.4 + */ + public static final String LINE_START = BEFORE_LINE_BEGINS; + + /** + * The component goes at the end of the line direction for the + * layout. For Western, left-to-right and top-to-bottom orientations, + * this is equivalent to EAST. + * + * @see java.awt.Component#getComponentOrientation + * @since 1.4 + */ + public static final String LINE_END = AFTER_LINE_ENDS; + + /* + * JDK 1.1 serialVersionUID + */ + private static final long serialVersionUID = -8658291919501921765L; + + /** + * Constructs a new border layout with + * no gaps between components. + */ + public BorderLayout() { + this(0, 0); + } + + /** + * Constructs a border layout with the specified gaps + * between components. + * The horizontal gap is specified by hgap + * and the vertical gap is specified by vgap. + * @param hgap the horizontal gap. + * @param vgap the vertical gap. + */ + public BorderLayout(int hgap, int vgap) { + this.hgap = hgap; + this.vgap = vgap; + } + + /** + * Returns the horizontal gap between components. + * @since JDK1.1 + */ + public int getHgap() { + return hgap; + } + + /** + * Sets the horizontal gap between components. + * @param hgap the horizontal gap between components + * @since JDK1.1 + */ + public void setHgap(int hgap) { + this.hgap = hgap; + } + + /** + * Returns the vertical gap between components. + * @since JDK1.1 + */ + public int getVgap() { + return vgap; + } + + /** + * Sets the vertical gap between components. + * @param vgap the vertical gap between components + * @since JDK1.1 + */ + public void setVgap(int vgap) { + this.vgap = vgap; + } + + /** + * Adds the specified component to the layout, using the specified + * constraint object. For border layouts, the constraint must be + * one of the following constants: NORTH, + * SOUTH, EAST, + * WEST, or CENTER. + *

+ * Most applications do not call this method directly. This method + * is called when a component is added to a container using the + * Container.add method with the same argument types. + * @param comp the component to be added. + * @param constraints an object that specifies how and where + * the component is added to the layout. + * @see java.awt.Container#add(java.awt.Component, java.lang.Object) + * @exception IllegalArgumentException if the constraint object is not + * a string, or if it not one of the five specified + * constants. + * @since JDK1.1 + */ + public void addLayoutComponent(Component comp, Object constraints) { + if ((constraints == null) || (constraints instanceof String)) { + addLayoutComponent((String)constraints, comp); + } else { + throw new IllegalArgumentException("cannot add to layout: constraint must be a string (or null)"); + } + } + + /** + * @deprecated replaced by addLayoutComponent(Component, Object). + */ + @Deprecated + public void addLayoutComponent(String name, Component comp) { + /* Special case: treat null the same as "Center". */ + if (name == null) { + name = "Center"; + } + + /* Assign the component to one of the known regions of the layout. + */ + if ("Center".equals(name)) { + center = comp; + } else if ("North".equals(name)) { + north = comp; + } else if ("South".equals(name)) { + south = comp; + } else if ("East".equals(name)) { + east = comp; + } else if ("West".equals(name)) { + west = comp; + } else if (BEFORE_FIRST_LINE.equals(name)) { + firstLine = comp; + } else if (AFTER_LAST_LINE.equals(name)) { + lastLine = comp; + } else if (BEFORE_LINE_BEGINS.equals(name)) { + firstItem = comp; + } else if (AFTER_LINE_ENDS.equals(name)) { + lastItem = comp; + } else { + throw new IllegalArgumentException("cannot add to layout: unknown constraint: " + name); + } + } + + /** + * Removes the specified component from this border layout. This + * method is called when a container calls its remove or + * removeAll methods. Most applications do not call this + * method directly. + * @param comp the component to be removed. + * @see java.awt.Container#remove(java.awt.Component) + * @see java.awt.Container#removeAll() + */ + public void removeLayoutComponent(Component comp) { + if (comp == center) { + center = null; + } else if (comp == north) { + north = null; + } else if (comp == south) { + south = null; + } else if (comp == east) { + east = null; + } else if (comp == west) { + west = null; + } + if (comp == firstLine) { + firstLine = null; + } else if (comp == lastLine) { + lastLine = null; + } else if (comp == firstItem) { + firstItem = null; + } else if (comp == lastItem) { + lastItem = null; + } + } + + /** + * Gets the component that was added using the given constraint + * + * @param constraints the desired constraint, one of CENTER, + * NORTH, SOUTH, + * WEST, EAST, + * PAGE_START, PAGE_END, + * LINE_START, LINE_END + * @return the component at the given location, or null if + * the location is empty + * @exception IllegalArgumentException if the constraint object is + * not one of the nine specified constants + * @see #addLayoutComponent(java.awt.Component, java.lang.Object) + * @since 1.5 + */ + public Component getLayoutComponent(Object constraints) { + if (CENTER.equals(constraints)) { + return center; + } else if (NORTH.equals(constraints)) { + return north; + } else if (SOUTH.equals(constraints)) { + return south; + } else if (WEST.equals(constraints)) { + return west; + } else if (EAST.equals(constraints)) { + return east; + } else if (PAGE_START.equals(constraints)) { + return firstLine; + } else if (PAGE_END.equals(constraints)) { + return lastLine; + } else if (LINE_START.equals(constraints)) { + return firstItem; + } else if (LINE_END.equals(constraints)) { + return lastItem; + } else { + throw new IllegalArgumentException("cannot get component: unknown constraint: " + constraints); + } + } + + + /** + * Returns the component that corresponds to the given constraint location + * based on the target Container's component orientation. + * Components added with the relative constraints PAGE_START, + * PAGE_END, LINE_START, and LINE_END + * take precedence over components added with the explicit constraints + * NORTH, SOUTH, WEST, and EAST. + * The Container's component orientation is used to determine the location of components + * added with LINE_START and LINE_END. + * + * @param constraints the desired absolute position, one of CENTER, + * NORTH, SOUTH, + * EAST, WEST + * @param target the {@code Container} used to obtain + * the constraint location based on the target + * {@code Container}'s component orientation. + * @return the component at the given location, or null if + * the location is empty + * @exception IllegalArgumentException if the constraint object is + * not one of the five specified constants + * @exception NullPointerException if the target parameter is null + * @see #addLayoutComponent(java.awt.Component, java.lang.Object) + * @since 1.5 + */ + public Component getLayoutComponent(Container target, Object constraints) { + boolean ltr = target.getComponentOrientation().isLeftToRight(); + Component result = null; + + if (NORTH.equals(constraints)) { + result = (firstLine != null) ? firstLine : north; + } else if (SOUTH.equals(constraints)) { + result = (lastLine != null) ? lastLine : south; + } else if (WEST.equals(constraints)) { + result = ltr ? firstItem : lastItem; + if (result == null) { + result = west; + } + } else if (EAST.equals(constraints)) { + result = ltr ? lastItem : firstItem; + if (result == null) { + result = east; + } + } else if (CENTER.equals(constraints)) { + result = center; + } else { + throw new IllegalArgumentException("cannot get component: invalid constraint: " + constraints); + } + + return result; + } + + + /** + * Gets the constraints for the specified component + * + * @param comp the component to be queried + * @return the constraint for the specified component, + * or null if component is null or is not present + * in this layout + * @see #addLayoutComponent(java.awt.Component, java.lang.Object) + * @since 1.5 + */ + public Object getConstraints(Component comp) { + //fix for 6242148 : API method java.awt.BorderLayout.getConstraints(null) should return null + if (comp == null){ + return null; + } + if (comp == center) { + return CENTER; + } else if (comp == north) { + return NORTH; + } else if (comp == south) { + return SOUTH; + } else if (comp == west) { + return WEST; + } else if (comp == east) { + return EAST; + } else if (comp == firstLine) { + return PAGE_START; + } else if (comp == lastLine) { + return PAGE_END; + } else if (comp == firstItem) { + return LINE_START; + } else if (comp == lastItem) { + return LINE_END; + } + return null; + } + + /** + * Determines the minimum size of the target container + * using this layout manager. + *

+ * This method is called when a container calls its + * getMinimumSize method. Most applications do not call + * this method directly. + * @param target the container in which to do the layout. + * @return the minimum dimensions needed to lay out the subcomponents + * of the specified container. + * @see java.awt.Container + * @see java.awt.BorderLayout#preferredLayoutSize + * @see java.awt.Container#getMinimumSize() + */ + public Dimension minimumLayoutSize(Container target) { + Dimension dim = new Dimension(0, 0); + + boolean ltr = target.getComponentOrientation().isLeftToRight(); + Component c = null; + + if ((c=getChild(EAST,ltr)) != null) { + Dimension d = c.getMinimumSize(); + dim.width += d.width + hgap; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(WEST,ltr)) != null) { + Dimension d = c.getMinimumSize(); + dim.width += d.width + hgap; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(CENTER,ltr)) != null) { + Dimension d = c.getMinimumSize(); + dim.width += d.width; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(NORTH,ltr)) != null) { + Dimension d = c.getMinimumSize(); + dim.width = Math.max(d.width, dim.width); + dim.height += d.height + vgap; + } + if ((c=getChild(SOUTH,ltr)) != null) { + Dimension d = c.getMinimumSize(); + dim.width = Math.max(d.width, dim.width); + dim.height += d.height + vgap; + } + + Insets insets = target.getInsets(); + dim.width += insets.left + insets.right; + dim.height += insets.top + insets.bottom; + + return dim; + } + + /** + * Determines the preferred size of the target + * container using this layout manager, based on the components + * in the container. + *

+ * Most applications do not call this method directly. This method + * is called when a container calls its getPreferredSize + * method. + * @param target the container in which to do the layout. + * @return the preferred dimensions to lay out the subcomponents + * of the specified container. + * @see java.awt.Container + * @see java.awt.BorderLayout#minimumLayoutSize + * @see java.awt.Container#getPreferredSize() + */ + public Dimension preferredLayoutSize(Container target) { + Dimension dim = new Dimension(0, 0); + + boolean ltr = target.getComponentOrientation().isLeftToRight(); + Component c = null; + + if ((c=getChild(EAST,ltr)) != null) { + Dimension d = c.getPreferredSize(); + dim.width += d.width + hgap; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(WEST,ltr)) != null) { + Dimension d = c.getPreferredSize(); + dim.width += d.width + hgap; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(CENTER,ltr)) != null) { + Dimension d = c.getPreferredSize(); + dim.width += d.width; + dim.height = Math.max(d.height, dim.height); + } + if ((c=getChild(NORTH,ltr)) != null) { + Dimension d = c.getPreferredSize(); + dim.width = Math.max(d.width, dim.width); + dim.height += d.height + vgap; + } + if ((c=getChild(SOUTH,ltr)) != null) { + Dimension d = c.getPreferredSize(); + dim.width = Math.max(d.width, dim.width); + dim.height += d.height + vgap; + } + + Insets insets = target.getInsets(); + dim.width += insets.left + insets.right; + dim.height += insets.top + insets.bottom; + + return dim; + } + + /** + * Returns the maximum dimensions for this layout given the components + * in the specified target container. + * @param target the component which needs to be laid out + * @see Container + * @see #minimumLayoutSize + * @see #preferredLayoutSize + */ + public Dimension maximumLayoutSize(Container target) { + return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); + } + + /** + * Returns the alignment along the x axis. This specifies how + * the component would like to be aligned relative to other + * components. The value should be a number between 0 and 1 + * where 0 represents alignment along the origin, 1 is aligned + * the furthest away from the origin, 0.5 is centered, etc. + */ + public float getLayoutAlignmentX(Container parent) { + return 0.5f; + } + + /** + * Returns the alignment along the y axis. This specifies how + * the component would like to be aligned relative to other + * components. The value should be a number between 0 and 1 + * where 0 represents alignment along the origin, 1 is aligned + * the furthest away from the origin, 0.5 is centered, etc. + */ + public float getLayoutAlignmentY(Container parent) { + return 0.5f; + } + + /** + * Invalidates the layout, indicating that if the layout manager + * has cached information it should be discarded. + */ + public void invalidateLayout(Container target) { + } + + /** + * Lays out the container argument using this border layout. + *

+ * This method actually reshapes the components in the specified + * container in order to satisfy the constraints of this + * BorderLayout object. The NORTH + * and SOUTH components, if any, are placed at + * the top and bottom of the container, respectively. The + * WEST and EAST components are + * then placed on the left and right, respectively. Finally, + * the CENTER object is placed in any remaining + * space in the middle. + *

+ * Most applications do not call this method directly. This method + * is called when a container calls its doLayout method. + * @param target the container in which to do the layout. + * @see java.awt.Container + * @see java.awt.Container#doLayout() + */ + public void layoutContainer(Container target) { + Insets insets = target.getInsets(); + int top = insets.top; + int bottom = target.getHeight() - insets.bottom; + int left = insets.left; + int right = target.getWidth() - insets.right; + + boolean ltr = target.getComponentOrientation().isLeftToRight(); + Component c = null; + + if ((c=getChild(NORTH,ltr)) != null) { + c.setSize(right - left, c.getHeight()); + Dimension d = c.getPreferredSize(); + c.setBounds(left, top, right - left, d.height); + top += d.height + vgap; + } + if ((c=getChild(SOUTH,ltr)) != null) { + c.setSize(right - left, c.getHeight()); + Dimension d = c.getPreferredSize(); + c.setBounds(left, bottom - d.height, right - left, d.height); + bottom -= d.height + vgap; + } + if ((c=getChild(EAST,ltr)) != null) { + c.setSize(c.getWidth(), bottom - top); + Dimension d = c.getPreferredSize(); + c.setBounds(right - d.width, top, d.width, bottom - top); + right -= d.width + hgap; + } + if ((c=getChild(WEST,ltr)) != null) { + c.setSize(c.getWidth(), bottom - top); + Dimension d = c.getPreferredSize(); + c.setBounds(left, top, d.width, bottom - top); + left += d.width + hgap; + } + if ((c=getChild(CENTER,ltr)) != null) { + c.setBounds(left, top, right - left, bottom - top); + } + } + + /** + * Get the component that corresponds to the given constraint location + * + * @param key The desired absolute position, + * either NORTH, SOUTH, EAST, or WEST. + * @param ltr Is the component line direction left-to-right? + */ + private Component getChild(String key, boolean ltr) { + Component result = null; + + if (key == NORTH) { + result = (firstLine != null) ? firstLine : north; + } + else if (key == SOUTH) { + result = (lastLine != null) ? lastLine : south; + } + else if (key == WEST) { + result = ltr ? firstItem : lastItem; + if (result == null) { + result = west; + } + } + else if (key == EAST) { + result = ltr ? lastItem : firstItem; + if (result == null) { + result = east; + } + } + else if (key == CENTER) { + result = center; + } + if (result != null && !result.visible) { + result = null; + } + return result; + } + + /** + * Returns a string representation of the state of this border layout. + * @return a string representation of this border layout. + */ + public String toString() { + return getClass().getName() + "[hgap=" + hgap + ",vgap=" + vgap + "]"; + } +} diff --git a/app/src/main/java/java/awt/Canvas.java b/app/src/main/java/java/awt/Canvas.java new file mode 100644 index 000000000..8ae88b244 --- /dev/null +++ b/app/src/main/java/java/awt/Canvas.java @@ -0,0 +1,39 @@ +package java.awt; + +import java.awt.image.*; +import net.kdt.pojavlaunch.*; + +public class Canvas extends Component { + private Graphics mGraphics; + private Dimension mSize; + + public Canvas() { + mSize = new Dimension(1280, 720); + mGraphics = new Graphics(new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB)); + } + + public void setPreferredSize(Dimension dim){ + mSize = dim; + } + + public void setFocusTraversalKeysEnabled(boolean b) { + System.out.println("java.awt.Canvas.setFocusTraversalKeysEnabled(" + b + ")"); + } + + public boolean isDisplayable(){ + return true; + } + + public Graphics getGraphics() { + return mGraphics; + } + + public int getWidth() { + return (int) mSize.getWidth(); + } + + public int getHeight() { + return (int) mSize.getHeight(); + } +} + diff --git a/app/src/main/java/java/awt/Color.java b/app/src/main/java/java/awt/Color.java new file mode 100644 index 000000000..99f966a31 --- /dev/null +++ b/app/src/main/java/java/awt/Color.java @@ -0,0 +1,329 @@ +package java.awt; + +import java.io.Serializable; + +public class Color implements Serializable { + public static final Color black = new Color(0, 0, 0); + public static final Color blue = new Color(0, 0, 255); + public static final Color cyan = new Color(0, 255, 255); + public static final Color darkGray = new Color(64, 64, 64); + public static final Color gray = new Color(128, 128, 128); + public static final Color green = new Color(0, 255, 0); + public static final Color lightGray = new Color(192, 192, 192); + public static final Color magenta = new Color(255, 0, 255); + public static final Color orange = new Color(255, 200, 0); + public static final Color pink = new Color(255, 175, 175); + public static final Color red = new Color(255, 0, 0); + private static final long serialVersionUID = 118526816881161077L; + public static final Color white = new Color(255, 255, 255); + public static final Color yellow = new Color(255, 255, 0); + public static final Color BLACK = black; + public static final Color BLUE = blue; + public static final Color CYAN = cyan; + public static final Color DARK_GRAY = darkGray; + public static final Color GRAY = gray; + public static final Color GREEN = green; + public static final Color LIGHT_GRAY = lightGray; + public static final Color MAGENTA = magenta; + private static final int MIN_SCALABLE = 3; + public static final Color ORANGE = orange; + public static final Color PINK = pink; + public static final Color RED = red; + private static final double SCALE_FACTOR = 0.7d; + public static final Color WHITE = white; + public static final Color YELLOW = yellow; + private float falpha; + private float[] frgbvalue; + private float[] fvalue; + int value; + + public Color(int rgba, boolean hasAlpha) { + if (hasAlpha) { + this.value = rgba; + } else { + this.value = -16777216 | rgba; + } + } + + public Color(int r, int g, int b, int a) { + if ((r & 255) == r && (g & 255) == g && (b & 255) == b && (a & 255) == a) { + this.value = (((g << 8) | b) | (r << 16)) | (a << 24); + return; + } + throw new IllegalArgumentException("Color parameter outside of expected range"); + } + + public Color(int r, int g, int b) { + if ((r & 255) == r && (g & 255) == g && (b & 255) == b) { + this.value = (((g << 8) | b) | (r << 16)) | -16777216; + return; + } + throw new IllegalArgumentException("Color parameter outside of expected range"); + } + + public Color(int rgb) { + this.value = -16777216 | rgb; + } + + public Color(float r, float g, float b, float a) { + this((int) (((double) (r * 255.0f)) + 0.5d), (int) (((double) (g * 255.0f)) + 0.5d), (int) (((double) (b * 255.0f)) + 0.5d), (int) (((double) (a * 255.0f)) + 0.5d)); + this.falpha = a; + this.fvalue = new float[MIN_SCALABLE]; + this.fvalue[0] = r; + this.fvalue[1] = g; + this.fvalue[2] = b; + this.frgbvalue = this.fvalue; + } + + public Color(float r, float g, float b) { + this(r, g, b, 1.0f); + } + + public String toString() { + return getClass().getName() + "[r=" + getRed() + ",g=" + getGreen() + ",b=" + getBlue() + "]"; + } + + public boolean equals(Object obj) { + if ((obj instanceof Color) && ((Color) obj).value == this.value) { + return true; + } + return false; + } + + public Color darker() { + return new Color((int) (((double) getRed()) * SCALE_FACTOR), (int) (((double) getGreen()) * SCALE_FACTOR), (int) (((double) getBlue()) * SCALE_FACTOR)); + } + + public Color brighter() { + int r = getRed(); + int b = getBlue(); + int g = getGreen(); + if (r == 0 && b == 0 && g == 0) { + return new Color((int) MIN_SCALABLE, (int) MIN_SCALABLE, (int) MIN_SCALABLE); + } + if (r >= MIN_SCALABLE || r == 0) { + r = (int) (((double) r) / SCALE_FACTOR); + if (r > 255) { + r = 255; + } + } else { + r = MIN_SCALABLE; + } + if (b >= MIN_SCALABLE || b == 0) { + b = (int) (((double) b) / SCALE_FACTOR); + if (b > 255) { + b = 255; + } + } else { + b = MIN_SCALABLE; + } + if (g >= MIN_SCALABLE || g == 0) { + g = (int) (((double) g) / SCALE_FACTOR); + if (g > 255) { + g = 255; + } + } else { + g = MIN_SCALABLE; + } + return new Color(r, g, b); + } + + public float[] getRGBComponents(float[] components) { + if (components == null) { + components = new float[4]; + } + if (this.frgbvalue != null) { + components[MIN_SCALABLE] = this.falpha; + } else { + components[MIN_SCALABLE] = ((float) getAlpha()) / 255.0f; + } + getRGBColorComponents(components); + return components; + } + + public float[] getRGBColorComponents(float[] components) { + if (components == null) { + components = new float[MIN_SCALABLE]; + } + if (this.frgbvalue != null) { + components[2] = this.frgbvalue[2]; + components[1] = this.frgbvalue[1]; + components[0] = this.frgbvalue[0]; + } else { + components[2] = ((float) getBlue()) / 255.0f; + components[1] = ((float) getGreen()) / 255.0f; + components[0] = ((float) getRed()) / 255.0f; + } + return components; + } + + public float[] getComponents(float[] components) { + if (this.fvalue == null) { + return getRGBComponents(components); + } + int nColorComps = this.fvalue.length; + if (components == null) { + components = new float[(nColorComps + 1)]; + } + getColorComponents(components); + components[nColorComps] = this.falpha; + return components; + } + + public float[] getColorComponents(float[] components) { + if (this.fvalue == null) { + return getRGBColorComponents(components); + } + if (components == null) { + components = new float[this.fvalue.length]; + } + for (int i = 0; i < this.fvalue.length; i++) { + components[i] = this.fvalue[i]; + } + return components; + } + + public int hashCode() { + return this.value; + } + + public int getRed() { + return (this.value >> 16) & 255; + } + + public int getRGB() { + return this.value; + } + + public int getGreen() { + return (this.value >> 8) & 255; + } + + public int getBlue() { + return this.value & 255; + } + + public int getAlpha() { + return (this.value >> 24) & 255; + } + + public static Color getColor(String nm, Color def) { + Integer integer = Integer.getInteger(nm); + return integer == null ? def : new Color(integer.intValue()); + } + + public static Color getColor(String nm, int def) { + Integer integer = Integer.getInteger(nm); + if (integer == null) { + return new Color(def); + } + return new Color(integer.intValue()); + } + + public static Color getColor(String nm) { + Integer integer = Integer.getInteger(nm); + if (integer == null) { + return null; + } + return new Color(integer.intValue()); + } + + public static Color decode(String nm) throws NumberFormatException { + return new Color(Integer.decode(nm).intValue()); + } + + public static Color getHSBColor(float h, float s, float b) { + return new Color(HSBtoRGB(h, s, b)); + } + + public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) { + float S; + float H; + if (hsbvals == null) { + hsbvals = new float[MIN_SCALABLE]; + } + int V = Math.max(b, Math.max(r, g)); + int temp = Math.min(b, Math.min(r, g)); + float B = ((float) V) / 255.0f; + if (V == temp) { + S = 0.0f; + H = 0.0f; + } else { + S = ((float) (V - temp)) / ((float) V); + float Cr = ((float) (V - r)) / ((float) (V - temp)); + float Cg = ((float) (V - g)) / ((float) (V - temp)); + float Cb = ((float) (V - b)) / ((float) (V - temp)); + if (r == V) { + H = Cb - Cg; + } else if (g == V) { + H = (2.0f + Cr) - Cb; + } else { + H = (4.0f + Cg) - Cr; + } + H /= 6.0f; + if (H < 0.0f) { + H += 1.0f; + } + } + hsbvals[0] = H; + hsbvals[1] = S; + hsbvals[2] = B; + return hsbvals; + } + + public static int HSBtoRGB(float hue, float saturation, float brightness) { + float fr; + float fg; + float fb; + if (saturation != 0.0f) { + float H = (hue - ((float) Math.floor((double) hue))) * 6.0f; + int I = (int) Math.floor((double) H); + float F = H - ((float) I); + float M = brightness * (1.0f - saturation); + float N = brightness * (1.0f - (saturation * F)); + float K = brightness * (1.0f - ((1.0f - F) * saturation)); + switch (I) { + case 0: + fr = brightness; + fg = K; + fb = M; + break; + case 1: + fr = N; + fg = brightness; + fb = M; + break; + case 2: + fr = M; + fg = brightness; + fb = K; + break; + case MIN_SCALABLE /*3*/: + fr = M; + fg = N; + fb = brightness; + break; + case 4: + fr = K; + fg = M; + fb = brightness; + break; + case 5: + fr = brightness; + fg = M; + fb = N; + break; + default: + fg = 0.0f; + fb = 0.0f; + fr = 0.0f; + break; + } + } + fb = brightness; + fg = brightness; + fr = brightness; + return (((((int) ((((double) fr) * 255.0d) + 0.5d)) << 16) | (((int) ((((double) fg) * 255.0d) + 0.5d)) << 8)) | ((int) ((((double) fb) * 255.0d) + 0.5d))) | -16777216; + } +} + diff --git a/app/src/main/java/java/awt/Component.java b/app/src/main/java/java/awt/Component.java new file mode 100644 index 000000000..cea2553a2 --- /dev/null +++ b/app/src/main/java/java/awt/Component.java @@ -0,0 +1,607 @@ +package java.awt; +import java.beans.*; +import org.apache.harmony.awt.wtk.*; + +public class Component { + + int x; + int y; + int w = 0; + int h = 0; + + protected boolean enabled = true; + private boolean inputMethodsEnabled = true; + transient boolean dispatchToIM = true; + private boolean focusable = true; // By default, all Components return + boolean visible = true; + private boolean wasShowing; + private boolean wasDisplayable; + private boolean valid; + private Dimension defaultMinimumSize; + private ComponentOrientation orientation; + private PropertyChangeSupport propertyChangeSupport; + private Dimension maximumSize; + private Dimension minimumSize; + private Dimension preferredSize; + private Color backColor = Color.WHITE; + private Color foreColor = Color.BLACK; + + public Container parent = null; + + private int boundsMaskParam = 0; + private Cursor cursor; + + private Font font; + + private boolean calledSetFocusable; + + public Cursor getCursor() { + if (cursor != null) { + return cursor; + // ???AWT + } else if (parent != null) { + return parent.getCursor(); + } + return Cursor.getDefaultCursor(); + } + + public void setCursor(Cursor cursor) { + this.cursor = cursor; + setCursor(); + } + + void setCursor() { + if (isDisplayable()) { // && isShowing()) { + // Rectangle absRect = new Rectangle(getLocationOnScreen(), getSize()); + //Point absPointerPos = toolkit.dispatcher.mouseDispatcher.getPointerPos(); + // ???AWT + /* + * if (absRect.contains(absPointerPos)) { // set Cursor only on + * top-level Windows(on X11) Window topLevelWnd = + * getWindowAncestor(); if (topLevelWnd != null) { Point pointerPos + * = MouseDispatcher.convertPoint(null, absPointerPos, topLevelWnd); + * Component compUnderCursor = + * topLevelWnd.findComponentAt(pointerPos); // if (compUnderCursor + * == this || // compUnderCursor.getCursorAncestor() == this) { + * NativeWindow wnd = topLevelWnd.getNativeWindow(); if + * (compUnderCursor != null && wnd != null) { + * compUnderCursor.getRealCursor().getNativeCursor() + * .setCursor(wnd.getId()); } // } } } + */ + } + } + + public void setFocusable(boolean focusable) { boolean oldFocusable; + calledSetFocusable = true; + oldFocusable = this.focusable; + this.focusable = focusable; + if (!focusable) { + moveFocus(); + } + firePropertyChange("focusable", oldFocusable, focusable); //$NON-NLS-1$ + } + + void moveFocus() { + // Fake method + } + + + public void setFont(Font f) { + Font oldFont; + oldFont = font; + setFontImpl(f); + firePropertyChange("font", oldFont, font); //$NON-NLS-1$ + } + + void setFontImpl(Font f) { + font = f; + invalidate(); + /* + if (isShowing()) { + repaint(); + } + */ + } + + public int getBaseline(int width, int height) { + if (width < 0 || height < 0) { + throw new IllegalArgumentException( + "Width and height must be >= 0"); + } + return -1; + } + + public void setLocation(Point p) { + setLocation(p.x, p.y); + } + + public void setLocation(int x, int y) { + move(x, y); + } + + public void move(int x, int y) { + boundsMaskParam = NativeWindow.BOUNDS_NOSIZE; + setBounds(x, y, w, h); + } + + public void repaint() { + // Android implementation, don't need to paint. + } + + public void validate() { + validateImpl(); + } + + void validateImpl() { + valid = true; + } + + public void addNotify() { + /* + toolkit.lockAWT(); + try { + prepare4HierarchyChange(); + //behaviour.addNotify(); + // ???AWT + // finishHierarchyChange(this, parent, 0); + // if (dropTarget != null) { + // dropTarget.addNotify(peer); + // } + } finally { + toolkit.unlockAWT(); + } + */ + } + + Insets getNativeInsets() { + return new Insets(0, 0, 0, 0); + } + + Insets getInsets() { + return new Insets(0, 0, 0, 0); + } + + Color getDefaultBackground() { + // ???AWT: return getWindowAncestor().getDefaultBackground(); + return getBackground(); + } + + Color getDefaultForeground() { + // ???AWT return getWindowAncestor().getDefaultForeground(); + return getForeground(); + } + + public Color getBackground() { + if (backColor == null && parent != null) { + return parent.getBackground(); + } + + return backColor; + } + + public Color getForeground() { + if (foreColor == null && parent != null) { + return parent.getForeground(); + } + + return foreColor; + } + + public boolean isBackgroundSet() { + return backColor != null; + } + + public Color getTextColor() { + Color c = getForeground(); + return (c != null) ? c : getDefaultForeground(); + } + + public void setForeground(Color c) { + Color oldFgColor; + oldFgColor = foreColor; + foreColor = c; + firePropertyChange("foreground", oldFgColor, foreColor); //$NON-NLS-1$ + repaint(); + } + + public void setBackground(Color c) { + Color oldBkColor; + oldBkColor = backColor; + backColor = c; + firePropertyChange("background", oldBkColor, backColor); //$NON-NLS-1$ + repaint(); + } + + public boolean isMaximumSizeSet() { + return maximumSize != null; + } + + public boolean isMinimumSizeSet() { + return minimumSize != null; + } + + public boolean isPreferredSizeSet() { + return preferredSize != null; + } + + public Dimension getMaximumSize() { + return isMaximumSizeSet() ? new Dimension(maximumSize) : new Dimension(Short.MAX_VALUE, Short.MAX_VALUE); + } + + public Dimension getMinimumSize() { + return minimumSize(); + } + + @Deprecated + public Dimension minimumSize() { + if (isMinimumSizeSet()) { + return (Dimension)minimumSize.clone(); + } + Dimension defSize = getDefaultMinimumSize(); + if (defSize != null) { + return (Dimension)defSize.clone(); + } + return isDisplayable() ? new Dimension(1, 1) : new Dimension(w, h); + } + + public Dimension getPreferredSize() { + return preferredSize(); + } + + @Deprecated + public Dimension preferredSize() { + if (isPreferredSizeSet()) { + return new Dimension(preferredSize); + } + Dimension defSize = getDefaultPreferredSize(); + if (defSize != null) { + return new Dimension(defSize); + } + return new Dimension(getMinimumSize()); + } + + public void setMaximumSize(Dimension maximumSize) { + Dimension oldMaximumSize; + oldMaximumSize = this.maximumSize; + if (oldMaximumSize != null) { + oldMaximumSize = oldMaximumSize.getSize(); + } + if (this.maximumSize == null) { + if (maximumSize != null) { + this.maximumSize = new Dimension(maximumSize); + } + } else { + if (maximumSize != null) { + this.maximumSize.setSize(maximumSize); + } else { + this.maximumSize = null; + } + } + firePropertyChange("maximumSize", oldMaximumSize, this.maximumSize); //$NON-NLS-1$ + } + + public void setMinimumSize(Dimension minimumSize) { + Dimension oldMinimumSize; + oldMinimumSize = this.minimumSize; + if (oldMinimumSize != null) { + oldMinimumSize = oldMinimumSize.getSize(); + } + if (this.minimumSize == null) { + if (minimumSize != null) { + this.minimumSize = new Dimension(minimumSize); + } + } else { + if (minimumSize != null) { + this.minimumSize.setSize(minimumSize); + } else { + this.minimumSize = null; + } + } + firePropertyChange("minimumSize", oldMinimumSize, this.minimumSize); //$NON-NLS-1$ + } + + public void setPreferredSize(Dimension preferredSize) { + Dimension oldPreferredSize; + oldPreferredSize = this.preferredSize; + if (oldPreferredSize != null) { + oldPreferredSize = oldPreferredSize.getSize(); + } + if (this.preferredSize == null) { + if (preferredSize != null) { + this.preferredSize = new Dimension(preferredSize); + } + } else { + if (preferredSize != null) { + this.preferredSize.setSize(preferredSize); + } else { + this.preferredSize = null; + } + } + firePropertyChange("preferredSize", oldPreferredSize, this.preferredSize); //$NON-NLS-1$ + } + + Dimension getDefaultMinimumSize() { + return null; + } + + Dimension getDefaultPreferredSize() { + return null; + } + + void resetDefaultSize() { + } + + public boolean isEnabled() { + return enabled; + } + + public boolean isVisible() { + return visible; + } + + public boolean isDisplayable() { + return isVisible(); //behaviour.isDisplayable(); + } + + public void setVisible(boolean b) { + // show() & hide() are not deprecated for Window, + // so have to call them from setVisible() + show(b); + } + + /** + * Deprecated: replaced by setVisible(boolean) method. + * + * @deprecated Replaced by setVisible(boolean) method. + */ + @Deprecated + public void show() { + if (visible) { + return; + } + /* + prepare4HierarchyChange(); + mapToDisplay(true); + validate(); + */ + visible = true; + /* + //behaviour.setVisible(true); + postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_SHOWN)); + // ???AWT: finishHierarchyChange(this, parent, 0); + notifyInputMethod(new Rectangle(x, y, w, h)); + // ???AWT: invalidateRealParent(); + */ + } + + public void hide() { + if (!visible) { + return; + } + // prepare4HierarchyChange(); + visible = false; + + /* + moveFocusOnHide(); + //behaviour.setVisible(false); + postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_HIDDEN)); + // ???AWT: finishHierarchyChange(this, parent, 0); + notifyInputMethod(null); + // ???AWT: invalidateRealParent(); + */ + + } + + @Deprecated + public void show(boolean b) { + if (b) { + show(); + } else { + hide(); + } + } + + public void applyComponentOrientation(ComponentOrientation orientation) { + if (orientation == null) { + throw new NullPointerException(); + } + setComponentOrientation(orientation); + } + + public ComponentOrientation getComponentOrientation() { + return orientation; + } + + public void setComponentOrientation(ComponentOrientation o) { + ComponentOrientation oldOrientation; + oldOrientation = orientation; + orientation = o; + firePropertyChange("componentOrientation", oldOrientation, orientation); //$NON-NLS-1$ + invalidate(); + } +/* + final boolean canBeFocusOwner() { + // It is enabled, visible, focusable. + if (isEnabled() && isDisplayable() && isVisible() && isFocusable()) { + return true; + } + return false; + } +*/ + public boolean inside(int x, int y) { + return x >= 0 && x < getWidth() && y >= 0 && y < getHeight(); + } + + + public boolean isValid() { + return valid; //&& behaviour.isDisplayable(); + } + + public void invalidate() { + valid = false; + resetDefaultSize(); + } + + void invalidateParent() { + if (parent != null) { + parent.invalidateIfValid(); + } + } + + final void invalidateIfValid() { + if (isValid()) { + invalidate(); + } + } + + public void addPropertyChangeListener(//String name, + PropertyChangeListener listener) { + if (listener == null) { + return; + } + if (propertyChangeSupport == null) { + propertyChangeSupport = new PropertyChangeSupport(this); + } + propertyChangeSupport.addPropertyChangeListener(listener); + } + + public void removePropertyChangeListener( + PropertyChangeListener listener) { + if (listener == null || propertyChangeSupport == null) { + return; + } + propertyChangeSupport.removePropertyChangeListener(listener); + } + + private void firePropertyChangeImpl(String propertyName, Object oldValue, Object newValue) { + PropertyChangeSupport pcs; + if (propertyChangeSupport == null) { + return; + } + pcs = propertyChangeSupport; + pcs.firePropertyChange(propertyName, oldValue, newValue); + } + + protected void firePropertyChange(String propertyName, int oldValue, int newValue) { + firePropertyChangeImpl(propertyName, new Integer(oldValue), new Integer(newValue)); + } + + protected void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) { + firePropertyChangeImpl(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue)); + } + + protected void firePropertyChange(final String propertyName, final Object oldValue, + final Object newValue) { + firePropertyChangeImpl(propertyName, oldValue, newValue); + } + + public void firePropertyChange(String propertyName, byte oldValue, byte newValue) { + firePropertyChangeImpl(propertyName, new Byte(oldValue), new Byte(newValue)); + } + + public void firePropertyChange(String propertyName, char oldValue, char newValue) { + firePropertyChangeImpl(propertyName, new Character(oldValue), new Character(newValue)); + } + + public void firePropertyChange(String propertyName, short oldValue, short newValue) { + firePropertyChangeImpl(propertyName, new Short(oldValue), new Short(newValue)); + } + + public void firePropertyChange(String propertyName, long oldValue, long newValue) { + firePropertyChangeImpl(propertyName, new Long(oldValue), new Long(newValue)); + } + + public void firePropertyChange(String propertyName, float oldValue, float newValue) { + firePropertyChangeImpl(propertyName, new Float(oldValue), new Float(newValue)); + } + + public void firePropertyChange(String propertyName, double oldValue, double newValue) { + firePropertyChangeImpl(propertyName, new Double(oldValue), new Double(newValue)); + } + + public void setSize(int width, int height) { + // toolkit.lockAWT(); + try { + resize(width, height); + } finally { + // toolkit.unlockAWT(); + } + } + + /** + * Sets the size of the Component specified by Dimension object. + * + * @param d + * the new size of the Component. + */ + public void setSize(Dimension d) { + resize(d); + } + + public void resize(int width, int height) { + boundsMaskParam = NativeWindow.BOUNDS_NOMOVE; + setBounds(x, y, width, height); + + // MOD: impl + // graphics.resize(width, height); + } + + public void reshape(int x, int y, int w, int h) { + setBounds(x, y, w, h, boundsMaskParam, true); + boundsMaskParam = 0; + } + + public void setBounds(int x, int y, int w, int h) { + reshape(x, y, w, h); + } + + void setBounds(int x, int y, int w, int h, int bMask, boolean updateBehavior) { + int oldX = this.x; + int oldY = this.y; + int oldW = this.w; + int oldH = this.h; + setBoundsFields(x, y, w, h, bMask); + // Moved + /* + if ((oldX != this.x) || (oldY != this.y)) { + // ???AWT: invalidateRealParent(); + postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED)); + spreadHierarchyBoundsEvents(this, HierarchyEvent.ANCESTOR_MOVED); + } + // Resized + if ((oldW != this.w) || (oldH != this.h)) { + invalidate(); + postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED)); + spreadHierarchyBoundsEvents(this, HierarchyEvent.ANCESTOR_RESIZED); + } + if (updateBehavior) { + //behaviour.setBounds(this.x, this.y, this.w, this.h, bMask); + } + notifyInputMethod(new Rectangle(x, y, w, h)); + */ + } + + private void setBoundsFields(int x, int y, int w, int h, int bMask) { + if ((bMask & NativeWindow.BOUNDS_NOSIZE) == 0) { + this.w = w; + this.h = h; + } + if ((bMask & NativeWindow.BOUNDS_NOMOVE) == 0) { + this.x = x; + this.y = y; + } + } + + public void resize(Dimension size) { + setSize(size.width, size.height); + } + + public int getWidth() { + return w; + } + + public int getHeight() { + return h; + } +} + diff --git a/app/src/main/java/java/awt/ComponentOrientation.java b/app/src/main/java/java/awt/ComponentOrientation.java new file mode 100644 index 000000000..5acc11a34 --- /dev/null +++ b/app/src/main/java/java/awt/ComponentOrientation.java @@ -0,0 +1,154 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Michael Danilov, Dmitry A. Durnev + * @version $Revision$ + */ + +package java.awt; + +import java.io.Serializable; +import java.util.*; + +/** + * The ComponentOrientation class specifies the language-sensitive orientation + * of component's elements or text. It is used to reflect the differences in + * this ordering between different writing systems. The ComponentOrientation + * class indicates the orientation of the elements/text in the horizontal + * direction ("left to right" or "right to left") and in the vertical direction + * ("top to bottom" or "bottom to top"). + * + * @since Android 1.0 + */ +public final class ComponentOrientation implements Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -4113291392143563828L; + + /** + * The Constant LEFT_TO_RIGHT indicates that items run left to right. + */ + public static final ComponentOrientation LEFT_TO_RIGHT = new ComponentOrientation(true, true); + + /** + * The Constant RIGHT_TO_LEFT indicates that items run right to left. + */ + public static final ComponentOrientation RIGHT_TO_LEFT = new ComponentOrientation(true, false); + + /** + * The Constant UNKNOWN indicates that a component's orientation is not set. + */ + public static final ComponentOrientation UNKNOWN = new ComponentOrientation(true, true); + + /** + * The Constant rlLangs. + */ + private static final Set rlLangs = new HashSet(); // RIGHT_TO_LEFT + + // languages + + /** + * The horizontal. + */ + private final boolean horizontal; + + /** + * The left2right. + */ + private final boolean left2right; + + static { + rlLangs.add("ar"); //$NON-NLS-1$ + rlLangs.add("fa"); //$NON-NLS-1$ + rlLangs.add("iw"); //$NON-NLS-1$ + rlLangs.add("ur"); //$NON-NLS-1$ + } + + /** + * Gets the orientation for the given ResourceBundle's localization. + * + * @param bdl + * the ResourceBundle. + * @return the ComponentOrientation. + * @deprecated Use getOrientation(java.util.Locale) method. + */ + @Deprecated + public static ComponentOrientation getOrientation(ResourceBundle bdl) { + Object obj = null; + try { + obj = bdl.getObject("Orientation"); //$NON-NLS-1$ + } catch (MissingResourceException mre) { + obj = null; + } + if (obj instanceof ComponentOrientation) { + return (ComponentOrientation)obj; + } + Locale locale = bdl.getLocale(); + if (locale == null) { + locale = Locale.getDefault(); + } + return getOrientation(locale); + } + + /** + * Gets the orientation for the specified locale. + * + * @param locale + * the specified Locale. + * @return the ComponentOrientation. + */ + public static ComponentOrientation getOrientation(Locale locale) { + String lang = locale.getLanguage(); + return rlLangs.contains(lang) ? RIGHT_TO_LEFT : LEFT_TO_RIGHT; + } + + /** + * Instantiates a new component orientation. + * + * @param hor + * whether the items should be arranged horizontally. + * @param l2r + * whether this orientation specifies a left-to-right flow. + */ + private ComponentOrientation(boolean hor, boolean l2r) { + horizontal = hor; + left2right = l2r; + } + + /** + * Returns true if the text of the of writing systems arranged horizontally. + * + * @return true, if the text is written horizontally, false for a vertical + * arrangement. + */ + public boolean isHorizontal() { + return horizontal; + } + + /** + * Returns true if the text is arranged from left to right. + * + * @return true, for writing systems written from left to right; false for + * right-to-left. + */ + public boolean isLeftToRight() { + return left2right; + } + +} diff --git a/app/src/main/java/java/awt/Conditional.java b/app/src/main/java/java/awt/Conditional.java new file mode 100644 index 000000000..1540b5400 --- /dev/null +++ b/app/src/main/java/java/awt/Conditional.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.awt; + +/** + * Conditional is used by the EventDispatchThread's message pumps to + * determine if a given pump should continue to run, or should instead exit + * and yield control to the parent pump. + * + * @author David Mendenhall + */ +interface Conditional { + boolean evaluate(); +} diff --git a/app/src/main/java/java/awt/Container.java b/app/src/main/java/java/awt/Container.java new file mode 100644 index 000000000..a25fb7190 --- /dev/null +++ b/app/src/main/java/java/awt/Container.java @@ -0,0 +1,233 @@ +package java.awt; + +public class Container extends Component +{ + private java.util.List component = new java.util.ArrayList(); + LayoutManager layoutMgr; + + public void setLayout(LayoutManager mgr) { + layoutMgr = mgr; + } + + public void doLayout() { + // layout(); + } + + + public Component getComponent(int n) { + // This method is not synchronized under AWT tree lock. + // Instead, the calling code is responsible for the + // synchronization. See 6784816 for details. + try { + return component.get(n); + } catch (IndexOutOfBoundsException z) { + throw new ArrayIndexOutOfBoundsException("No such child: " + n); + } + } + + public int getComponentCount() { + return countComponents(); + } + + @Deprecated + public int countComponents() { + // This method is not synchronized under AWT tree lock. + // Instead, the calling code is responsible for the + // synchronization. See 6784816 for details. + return component.size(); + } + + public void add(Component comp, Object constraints) { + addImpl(comp, constraints, -1); + } + + private void checkAddToSelf(Component comp){ + if (comp instanceof Container) { + for (Container cn = this; cn != null; cn=cn.parent) { + if (cn == comp) { + throw new IllegalArgumentException("adding container's parent to itself"); + } + } + } + } + + private void checkNotAWindow(Component comp){ + if (comp instanceof Window) { + throw new IllegalArgumentException("adding a window to a container"); + } + } + + public void add(Component comp, Object constraints, int index) { + addImpl(comp, constraints, index); + } + + protected void addImpl(Component comp, Object constraints, int index) { + /* Check for correct arguments: index in bounds, + * comp cannot be one of this container's parents, + * and comp cannot be a window. + * comp and container must be on the same GraphicsDevice. + * if comp is container, all sub-components must be on + * same GraphicsDevice. + */ + // GraphicsConfiguration thisGC = this.getGraphicsConfiguration(); + if (index > component.size() || (index < 0 && index != -1)) { + throw new IllegalArgumentException( + "illegal component position"); + } + checkAddToSelf(comp); + checkNotAWindow(comp); + /* + if (thisGC != null) { + comp.checkGD(thisGC.getDevice().getIDstring()); + } + */ + /* Reparent the component and tidy up the tree's state. */ + if (comp.parent != null) { + comp.parent.remove(comp); + if (index > component.size()) { + throw new IllegalArgumentException("illegal component position"); + } + } + //index == -1 means add to the end. + if (index == -1) { + component.add(comp); + } else { + component.add(index, comp); + } + comp.parent = this; + /* + comp.setGraphicsConfiguration(thisGC); + adjustListeningChildren(AWTEvent.HIERARCHY_EVENT_MASK, + comp.numListening(AWTEvent.HIERARCHY_EVENT_MASK)); + adjustListeningChildren(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + comp.numListening(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK)); + adjustDescendants(comp.countHierarchyMembers()); + invalidateIfValid(); + if (peer != null) { + comp.addNotify(); + } + */ + /* Notify the layout manager of the added component. */ + if (layoutMgr != null) { + if (layoutMgr instanceof LayoutManager2) { + ((LayoutManager2)layoutMgr).addLayoutComponent(comp, constraints); + } else if (constraints instanceof String) { + layoutMgr.addLayoutComponent((String)constraints, comp); + } + } + /* + if (containerListener != null || + (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0 || + Toolkit.enabledOnToolkit(AWTEvent.CONTAINER_EVENT_MASK)) { + ContainerEvent e = new ContainerEvent(this, + ContainerEvent.COMPONENT_ADDED, + comp); + dispatchEvent(e); + } + comp.createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED, comp, + this, HierarchyEvent.PARENT_CHANGED, + Toolkit.enabledOnToolkit(AWTEvent.HIERARCHY_EVENT_MASK)); + if (peer != null && layoutMgr == null && isVisible()) { + updateCursorImmediately(); + } + */ + } + + public void removeAll() { + /* + adjustListeningChildren(AWTEvent.HIERARCHY_EVENT_MASK, + -listeningChildren); + adjustListeningChildren(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + -listeningBoundsChildren); + adjustDescendants(-descendantsCount); + */ + while (!component.isEmpty()) { + Component comp = component.remove(component.size()-1); + + /* + if (peer != null) { + comp.removeNotify(); + } + */ + if (layoutMgr != null) { + layoutMgr.removeLayoutComponent(comp); + } + comp.parent = null; + /* + comp.setGraphicsConfiguration(null); + if (containerListener != null || + (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0 || + Toolkit.enabledOnToolkit(AWTEvent.CONTAINER_EVENT_MASK)) { + ContainerEvent e = new ContainerEvent(this, + ContainerEvent.COMPONENT_REMOVED, + comp); + dispatchEvent(e); + } + + comp.createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED, + comp, this, + HierarchyEvent.PARENT_CHANGED, + Toolkit.enabledOnToolkit(AWTEvent.HIERARCHY_EVENT_MASK)); + */ + } + /* + if (peer != null && layoutMgr == null && isVisible()) { + updateCursorImmediately(); + } + */ + invalidateIfValid(); + } + + public void remove(Component comp) { + if (comp.parent == this) { + int index = component.indexOf(comp); + if (index >= 0) { + remove(index); + } + } + } + + public void remove(int index) { + + if (index < 0 || index >= component.size()) { + throw new ArrayIndexOutOfBoundsException(index); + } + Component comp = component.get(index); + /* + if (peer != null) { + comp.removeNotify(); + } + */ + if (layoutMgr != null) { + layoutMgr.removeLayoutComponent(comp); + } + /* + adjustListeningChildren(AWTEvent.HIERARCHY_EVENT_MASK, + -comp.numListening(AWTEvent.HIERARCHY_EVENT_MASK)); + adjustListeningChildren(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + -comp.numListening(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK)); + adjustDescendants(-(comp.countHierarchyMembers())); + */ + comp.parent = null; + component.remove(index); + /* + comp.setGraphicsConfiguration(null); + invalidateIfValid(); + if (containerListener != null || + (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0 || + Toolkit.enabledOnToolkit(AWTEvent.CONTAINER_EVENT_MASK)) { + ContainerEvent e = new ContainerEvent(this, + ContainerEvent.COMPONENT_REMOVED, + comp); + dispatchEvent(e); + } + comp.createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED, comp, + this, HierarchyEvent.PARENT_CHANGED, + Toolkit.enabledOnToolkit(AWTEvent.HIERARCHY_EVENT_MASK)); + if (peer != null && layoutMgr == null && isVisible()) { + updateCursorImmediately(); + } + */ + } + +} diff --git a/app/src/main/java/java/awt/Cursor.java b/app/src/main/java/java/awt/Cursor.java new file mode 100644 index 000000000..7fc31cf61 --- /dev/null +++ b/app/src/main/java/java/awt/Cursor.java @@ -0,0 +1,427 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Dmitry A. Durnev + * @version $Revision$ + */ + +package java.awt; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.awt.wtk.NativeCursor; + +/** + * The Cursor class represents the bitmap of the mouse cursor. + * + * @since Android 1.0 + */ +public class Cursor implements Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = 8028237497568985504L; + + /** + * The Constant DEFAULT_CURSOR indicates the default cursor type. + */ + public static final int DEFAULT_CURSOR = 0; + + /** + * The Constant CROSSHAIR_CURSOR cursor type. + */ + public static final int CROSSHAIR_CURSOR = 1; + + /** + * The Constant TEXT_CURSOR cursor type. + */ + public static final int TEXT_CURSOR = 2; + + /** + * The Constant WAIT_CURSOR cursor type. + */ + public static final int WAIT_CURSOR = 3; + + /** + * The Constant SW_RESIZE_CURSOR cursor type. + */ + public static final int SW_RESIZE_CURSOR = 4; + + /** + * The Constant SE_RESIZE_CURSOR cursor type. + */ + public static final int SE_RESIZE_CURSOR = 5; + + /** + * The Constant NW_RESIZE_CURSOR cursor type. + */ + public static final int NW_RESIZE_CURSOR = 6; + + /** + * The Constant NE_RESIZE_CURSOR cursor type. + */ + public static final int NE_RESIZE_CURSOR = 7; + + /** + * The Constant N_RESIZE_CURSOR cursor type. + */ + public static final int N_RESIZE_CURSOR = 8; + + /** + * The Constant S_RESIZE_CURSOR cursor type. + */ + public static final int S_RESIZE_CURSOR = 9; + + /** + * The Constant W_RESIZE_CURSOR cursor type. + */ + public static final int W_RESIZE_CURSOR = 10; + + /** + * The Constant E_RESIZE_CURSOR cursor type. + */ + public static final int E_RESIZE_CURSOR = 11; + + /** + * The Constant HAND_CURSOR cursor type. + */ + public static final int HAND_CURSOR = 12; + + /** + * The Constant MOVE_CURSOR cursor type. + */ + public static final int MOVE_CURSOR = 13; + + /** + * A mapping from names to system custom cursors. + */ + static Map systemCustomCursors; + + /** + * The cursor props. + */ + static Properties cursorProps; + + /** + * The Constant predefinedNames. + */ + static final String[] predefinedNames = { + "Default", "Crosshair", "Text", "Wait", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + "Southwest Resize", "Southeast Resize", //$NON-NLS-1$ //$NON-NLS-2$ + "Northwest Resize", "Northeast Resize", //$NON-NLS-1$ //$NON-NLS-2$ + "North Resize", "South Resize", "West Resize", "East Resize", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + "Hand", "Move" //$NON-NLS-1$ //$NON-NLS-2$ + + }; + + /** + * The predefined set of cursors. + */ + protected static Cursor[] predefined = { + new Cursor(DEFAULT_CURSOR), null, null, null, null, null, null, null, null, null, null, + null, null, null + }; + + /** + * The Constant CUSTOM_CURSOR is associated with all custom cursor types. + * (Those which are not predefined) + */ + public static final int CUSTOM_CURSOR = -1; + + /** + * The name of the cursor. + */ + protected String name; + + /** + * The type of the cursor, chosen from the list of cursor type constants. + */ + private final int type; + + /** + * The native cursor. + */ + private transient NativeCursor nativeCursor; + + /** + * The exact point on the cursor image that indicates which point the cursor + * is selecting (pointing to). The coordinates are given with respect the + * origin of the Image (its upper left corner). + */ + private Point hotSpot; + + /** + * The image to draw on the screen representing the cursor. + */ + private Image image; + + /** + * Instantiates a new cursor with the specified name. + * + * @param name + * the name of cursor. + */ + protected Cursor(String name) { + this(name, null, new Point()); + } + + /** + * Instantiates a new cursor of the specified type. + * + * @param type + * the type of cursor. + */ + public Cursor(int type) { + checkType(type); + this.type = type; + if ((type >= 0) && (type < predefinedNames.length)) { + name = predefinedNames[type] + " Cursor"; //$NON-NLS-1$ + } + } + + /** + * Instantiates a new cursor. + * + * @param name + * the name. + * @param img + * the img. + * @param hotSpot + * the hot spot. + */ + Cursor(String name, Image img, Point hotSpot) { + this.name = name; + type = CUSTOM_CURSOR; + this.hotSpot = hotSpot; + image = img; + } + + /** + * Finalize method overrides the finalize method from Object class. + * + * @throws Throwable + * if the native cursor is not null and throws a Throwable when + * destroyed. + */ + @Override + protected void finalize() throws Throwable { + if (nativeCursor != null) { + nativeCursor.destroyCursor(); + } + } + + /** + * Gets the name of the cursor. + * + * @return the name of the cursor. + */ + public String getName() { + return name; + } + + /** + * Returns the String representation of the cursor. + * + * @return the String representation of the cursor. + */ + @Override + public String toString() { + return getClass().getName() + "[" + name + "]"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Gets the cursor type. + * + * @return the cursor type. + */ + public int getType() { + return type; + } + + /** + * Gets the predefined cursor with the specified type. + * + * @param type + * the type of cursor. + * @return the predefined cursor with the specified type. + */ + public static Cursor getPredefinedCursor(int type) { + checkType(type); + Cursor cursor = predefined[type]; + if (cursor == null) { + cursor = new Cursor(type); + predefined[type] = cursor; + } + return cursor; + } + + /** + * Gets the default cursor. + * + * @return the default cursor. + */ + public static Cursor getDefaultCursor() { + return getPredefinedCursor(DEFAULT_CURSOR); + } + + /** + * Gets the specified system custom cursor. + * + * @param name + * the name of the desired system cursor. + * @return the specific system cursor with the specified name. + * @throws AWTException + * if the desired cursor has malformed data such as an + * incorrectly defined hot spot. + * @throws HeadlessException + * if the isHeadless method of the GraphicsEnvironment returns + * true. + */ + public static Cursor getSystemCustomCursor(String name) throws AWTException, HeadlessException { + Toolkit.checkHeadless(); + return getSystemCustomCursorFromMap(name); + } + + /** + * Gets the specified system custom cursor from the map of system custom + * cursors. + * + * @param name + * the name of the desired cursor. + * @return the desired system custom cursor from the map of system custom + * cursors. + * @throws AWTException + * the AWT exception. + */ + private static Cursor getSystemCustomCursorFromMap(String name) throws AWTException { + loadCursorProps(); + if (systemCustomCursors == null) { + systemCustomCursors = new HashMap(); + } + Cursor cursor = systemCustomCursors.get(name); + if (cursor != null) { + return cursor; + } + // awt.141=failed to parse hotspot property for cursor: + String exMsg = Messages.getString("awt.141") + name; //$NON-NLS-1$ + String nm = "Cursor." + name; //$NON-NLS-1$ + String nameStr = cursorProps.getProperty(nm + ".Name"); //$NON-NLS-1$ + String hotSpotStr = cursorProps.getProperty(nm + ".HotSpot"); //$NON-NLS-1$ + String fileStr = cursorProps.getProperty(nm + ".File"); //$NON-NLS-1$ + int idx = hotSpotStr.indexOf(','); + if (idx < 0) { + throw new AWTException(exMsg); + } + int x, y; + try { + x = new Integer(hotSpotStr.substring(0, idx)).intValue(); + y = new Integer(hotSpotStr.substring(idx + 1, hotSpotStr.length())).intValue(); + } catch (NumberFormatException nfe) { + throw new AWTException(exMsg); + } + Image img = Toolkit.getDefaultToolkit().createImage(fileStr); + cursor = new Cursor(nameStr, img, new Point(x, y)); + systemCustomCursors.put(name, cursor); + + return cursor; + } + + /** + * Load cursor props. + * + * @throws AWTException + * the AWT exception. + */ + private static void loadCursorProps() throws AWTException { + if (cursorProps != null) { + return; + } + String sep = File.separator; + String cursorsDir = "lib" + sep + "images" + sep + "cursors"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + String cursorsAbsDir = System.getProperty("java.home") + sep + //$NON-NLS-1$ + cursorsDir; + String cursorPropsFileName = "cursors.properties"; //$NON-NLS-1$ + String cursorPropsFullFileName = (cursorsAbsDir + sep + cursorPropsFileName); + cursorProps = new Properties(); + try { + cursorProps.load(new FileInputStream(new File(cursorPropsFullFileName))); + } catch (FileNotFoundException e) { + // awt.142=Exception: class {0} {1} occurred while loading: {2} + throw new AWTException(Messages.getString("awt.142",//$NON-NLS-1$ + new Object[] { + e.getClass(), e.getMessage(), cursorPropsFullFileName + })); + } catch (IOException e) { + throw new AWTException(e.getMessage()); + } + + } + + /** + * Check type. + * + * @param type + * the type. + */ + static void checkType(int type) { + // can't use predefined array here because it may not have been + // initialized yet + if ((type < 0) || (type >= predefinedNames.length)) { + // awt.143=illegal cursor type + throw new IllegalArgumentException(Messages.getString("awt.143")); //$NON-NLS-1$ + } + } + + // "lazily" create native cursors: + /** + * Gets the native cursor. + * + * @return the native cursor. + */ + NativeCursor getNativeCursor() { + if (nativeCursor != null) { + return nativeCursor; + }/* + Toolkit toolkit = Toolkit.getDefaultToolkit(); + if (type != CUSTOM_CURSOR) { + nativeCursor = toolkit.createNativeCursor(type); + } else { + nativeCursor = toolkit.createCustomNativeCursor(image, hotSpot, name); + }*/ + return nativeCursor; + } + + /** + * Sets the native cursor. + * + * @param nativeCursor + * the new native cursor. + */ + void setNativeCursor(NativeCursor nativeCursor) { + this.nativeCursor = nativeCursor; + } +} diff --git a/app/src/main/java/java/awt/Desktop.java b/app/src/main/java/java/awt/Desktop.java new file mode 100644 index 000000000..b4a20ff0d --- /dev/null +++ b/app/src/main/java/java/awt/Desktop.java @@ -0,0 +1,71 @@ +package java.awt; + +import android.content.*; +import android.net.*; +import android.util.*; +import java.awt.peer.*; +import java.io.*; +import java.net.*; +import net.kdt.pojavlaunch.MainActivity; +import android.app.*; +import net.kdt.pojavlaunch.*; +import java.awt.mod.*; + +public class Desktop +{ + private MainActivity currentActivity; + public enum Action + { + BROWSE, EDIT, MAIL, OPEN, PRINT + } + private DesktopPeer peer; + public Desktop() + { + peer = Toolkit.getDefaultToolkit().createDesktopPeer(); + try + { + if (currentActivity == null) currentActivity = ModdingKit.getCurrentActivity(); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + public static Desktop getDesktop() + { + return new Desktop(); + } + + public static boolean isDesktopSupported() + { + return true; + } + + public boolean isSupported(Action action) + { + return true; + } + + public void browse(URI uri) + { + try { + URL url = uri.toURL(); + if(url.toString().startsWith("file:")){ + String fPath = url.toString().replace("file:", ""); + Log.d("MineDebug:java.awt.Desktop", "Browse folder: " + fPath); + + // Current not implemented + } + else{ + Log.d("MineDebug:java.awt.Desktop", "Browse URL: " + url.toString()); + if (!url.toString().startsWith("http://") && !url.toString().startsWith("https://")){ + url = new URL("http://" + url.toString()); + } + currentActivity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url.toString()))); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/app/src/main/java/java/awt/Dimension.java b/app/src/main/java/java/awt/Dimension.java new file mode 100644 index 000000000..6777962e7 --- /dev/null +++ b/app/src/main/java/java/awt/Dimension.java @@ -0,0 +1,201 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt; + +import java.awt.geom.Dimension2D; +import java.io.Serializable; + +import org.apache.harmony.misc.HashCode; + +/** + * The Dimension represents the size (width and height) of a component. The + * width and height values can be negative, but in that case the behavior of + * some methods is unexpected. + * + * @since Android 1.0 + */ +public class Dimension extends Dimension2D implements Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = 4723952579491349524L; + + /** + * The width dimension. + */ + public int width; + + /** + * The height dimension. + */ + public int height; + + /** + * Instantiates a new Dimension with the same data as the specified + * Dimension. + * + * @param d + * the Dimension to copy the data from when creating the new + * Dimension object. + */ + public Dimension(Dimension d) { + this(d.width, d.height); + } + + /** + * Instantiates a new Dimension with zero width and height. + */ + public Dimension() { + this(0, 0); + } + + /** + * Instantiates a new Dimension with the specified width and height. + * + * @param width + * the width of the new Dimension. + * @param height + * the height of the new Dimension. + */ + public Dimension(int width, int height) { + setSize(width, height); + } + + /** + * Returns the hash code of the Dimension. + * + * @return the hash code of the Dimension. + */ + @Override + public int hashCode() { + HashCode hash = new HashCode(); + hash.append(width); + hash.append(height); + return hash.hashCode(); + } + + /** + * Compares this Dimension object with the specified object. + * + * @param obj + * the Object to be compared. + * @return true, if the specified Object is a Dimension with the same width + * and height data as this Dimension. + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Dimension) { + Dimension d = (Dimension)obj; + return (d.width == width && d.height == height); + } + return false; + } + + /** + * Returns the String associated to this Dimension object. + * + * @return the String associated to this Dimension object. + */ + @Override + public String toString() { + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way + // System.out.println(new Dimension().toString()) + return getClass().getName() + "[width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Sets the size of this Dimension object with the specified width and + * height. + * + * @param width + * the width of the Dimension. + * @param height + * the height of the Dimension. + */ + public void setSize(int width, int height) { + this.width = width; + this.height = height; + } + + /** + * Sets the size of this Dimension object by copying the data from the + * specified Dimension object. + * + * @param d + * the Dimension that gives the new size values. + */ + public void setSize(Dimension d) { + setSize(d.width, d.height); + } + + /** + * Sets the size of this Dimension object with the specified double width + * and height. + * + * @param width + * the width of the Dimension. + * @param height + * the height of the Dimension. + * @see java.awt.geom.Dimension2D#setSize(double, double) + */ + @Override + public void setSize(double width, double height) { + setSize((int)Math.ceil(width), (int)Math.ceil(height)); + } + + /** + * Gets the size of the Dimension. + * + * @return the size of the Dimension. + */ + public Dimension getSize() { + return new Dimension(width, height); + } + + /** + * Gets the height of the Dimension. + * + * @return the height of the Dimension. + * @see java.awt.geom.Dimension2D#getHeight() + */ + @Override + public double getHeight() { + return height; + } + + /** + * Gets the width of the Dimension. + * + * @return the width of the Dimension. + * @see java.awt.geom.Dimension2D#getWidth() + */ + @Override + public double getWidth() { + return width; + } + +} diff --git a/app/src/main/java/java/awt/DisplayMode.java b/app/src/main/java/java/awt/DisplayMode.java new file mode 100644 index 000000000..802101019 --- /dev/null +++ b/app/src/main/java/java/awt/DisplayMode.java @@ -0,0 +1,165 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Alexey A. Petrenko + * @version $Revision$ + */ + +package java.awt; + +/** + * The DisplayMode class contains the bit depth, height, width and refresh rate + * of a GraphicsDevice. + * + * @since Android 1.0 + */ +public final class DisplayMode { + + /** + * The width. + */ + private final int width; + + /** + * The height. + */ + private final int height; + + /** + * The bit depth. + */ + private final int bitDepth; + + /** + * The refresh rate. + */ + private final int refreshRate; + + /** + * The Constant Value BIT_DEPTH_MULTI indicates the bit depth + */ + + public static final int BIT_DEPTH_MULTI = -1; + + /** + * The Constant REFRESH_RATE_UNKNOWN indicates the refresh rate. + */ + public static final int REFRESH_RATE_UNKNOWN = 0; + + /** + * Creates a new DisplayMode object with the specified parameters. + * + * @param width + * the width of the display. + * @param height + * the height of the display. + * @param bitDepth + * the bit depth of the display. + * @param refreshRate + * the refresh rate of the display. + */ + + public DisplayMode(int width, int height, int bitDepth, int refreshRate) { + this.width = width; + this.height = height; + this.bitDepth = bitDepth; + this.refreshRate = refreshRate; + } + + /** + * Compares if this DisplayMode is equal to the specified object or not. + * + * @param dm + * the Object to be compared. + * @return true, if the specified object is a DisplayMode with the same data + * values as this DisplayMode, false otherwise. + */ + + @Override + public boolean equals(Object dm) { + if (dm instanceof DisplayMode) { + return equals((DisplayMode)dm); + } + return false; + } + + /** + * Compares if this DisplayMode is equal to the specified DisplayMode object + * or not. + * + * @param dm + * the DisplayMode to be compared. + * @return true, if all of the data values of this DisplayMode are equal to + * the values of the specified DisplayMode object, false otherwise. + */ + public boolean equals(DisplayMode dm) { + if (dm == null) { + return false; + } + if (dm.bitDepth != bitDepth) { + return false; + } + if (dm.refreshRate != refreshRate) { + return false; + } + if (dm.width != width) { + return false; + } + if (dm.height != height) { + return false; + } + return true; + } + + /** + * Gets the bit depth of the DisplayMode, returns BIT_DEPTH_MULTI value if + * multiple bit depths are supported in this display mode. + * + * @return the bit depth of the DisplayMode. + */ + public int getBitDepth() { + return bitDepth; + } + + /** + * Gets the height of the DisplayMode. + * + * @return the height of the DisplayMode. + */ + public int getHeight() { + return height; + } + + /** + * Gets the refresh rate of the DisplayMode, returns REFRESH_RATE_UNKNOWN + * value if the information is not available. + * + * @return the refresh rate of the DisplayMode. + */ + public int getRefreshRate() { + return refreshRate; + } + + /** + * Gets the width of the DisplayMode. + * + * @return the width of the DisplayMode. + */ + public int getWidth() { + return width; + } +} diff --git a/app/src/main/java/java/awt/FlowLayout.java b/app/src/main/java/java/awt/FlowLayout.java new file mode 100644 index 000000000..da48d9f5b --- /dev/null +++ b/app/src/main/java/java/awt/FlowLayout.java @@ -0,0 +1,696 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt; + +import java.io.ObjectInputStream; +import java.io.IOException; + +/** + * A flow layout arranges components in a directional flow, much + * like lines of text in a paragraph. The flow direction is + * determined by the container's componentOrientation + * property and may be one of two values: + *

+ * Flow layouts are typically used + * to arrange buttons in a panel. It arranges buttons + * horizontally until no more buttons fit on the same line. + * The line alignment is determined by the align + * property. The possible values are: + * + *

+ * For example, the following picture shows an applet using the flow + * layout manager (its default layout manager) to position three buttons: + *

+ * Graphic of Layout for Three Buttons + *

+ * Here is the code for this applet: + *

+ *


+ * import java.awt.*;
+ * import java.applet.Applet;
+ *
+ * public class myButtons extends Applet {
+ *     Button button1, button2, button3;
+ *     public void init() {
+ *         button1 = new Button("Ok");
+ *         button2 = new Button("Open");
+ *         button3 = new Button("Close");
+ *         add(button1);
+ *         add(button2);
+ *         add(button3);
+ *     }
+ * }
+ * 

+ *

+ * A flow layout lets each component assume its natural (preferred) size. + * + * @author Arthur van Hoff + * @author Sami Shaio + * @since JDK1.0 + * @see ComponentOrientation + */ +public class FlowLayout implements LayoutManager, java.io.Serializable { + + /** + * This value indicates that each row of components + * should be left-justified. + */ + public static final int LEFT = 0; + + /** + * This value indicates that each row of components + * should be centered. + */ + public static final int CENTER = 1; + + /** + * This value indicates that each row of components + * should be right-justified. + */ + public static final int RIGHT = 2; + + /** + * This value indicates that each row of components + * should be justified to the leading edge of the container's + * orientation, for example, to the left in left-to-right orientations. + * + * @see java.awt.Component#getComponentOrientation + * @see java.awt.ComponentOrientation + * @since 1.2 + */ + public static final int LEADING = 3; + + /** + * This value indicates that each row of components + * should be justified to the trailing edge of the container's + * orientation, for example, to the right in left-to-right orientations. + * + * @see java.awt.Component#getComponentOrientation + * @see java.awt.ComponentOrientation + * @since 1.2 + */ + public static final int TRAILING = 4; + + /** + * align is the property that determines + * how each row distributes empty space. + * It can be one of the following values: + *

+ * + * @serial + * @see #getAlignment + * @see #setAlignment + */ + int align; // This is for 1.1 serialization compatibility + + /** + * newAlign is the property that determines + * how each row distributes empty space for the Java 2 platform, + * v1.2 and greater. + * It can be one of the following three values: + * + * + * @serial + * @since 1.2 + * @see #getAlignment + * @see #setAlignment + */ + int newAlign; // This is the one we actually use + + /** + * The flow layout manager allows a seperation of + * components with gaps. The horizontal gap will + * specify the space between components and between + * the components and the borders of the + * Container. + * + * @serial + * @see #getHgap() + * @see #setHgap(int) + */ + int hgap; + + /** + * The flow layout manager allows a seperation of + * components with gaps. The vertical gap will + * specify the space between rows and between the + * the rows and the borders of the Container. + * + * @serial + * @see #getHgap() + * @see #setHgap(int) + */ + int vgap; + + /** + * If true, components will be aligned on their baseline. + */ + private boolean alignOnBaseline; + + /* + * JDK 1.1 serialVersionUID + */ + private static final long serialVersionUID = -7262534875583282631L; + + /** + * Constructs a new FlowLayout with a centered alignment and a + * default 5-unit horizontal and vertical gap. + */ + public FlowLayout() { + this(CENTER, 5, 5); + } + + /** + * Constructs a new FlowLayout with the specified + * alignment and a default 5-unit horizontal and vertical gap. + * The value of the alignment argument must be one of + * FlowLayout.LEFT, FlowLayout.RIGHT, + * FlowLayout.CENTER, FlowLayout.LEADING, + * or FlowLayout.TRAILING. + * @param align the alignment value + */ + public FlowLayout(int align) { + this(align, 5, 5); + } + + /** + * Creates a new flow layout manager with the indicated alignment + * and the indicated horizontal and vertical gaps. + *

+ * The value of the alignment argument must be one of + * FlowLayout.LEFT, FlowLayout.RIGHT, + * FlowLayout.CENTER, FlowLayout.LEADING, + * or FlowLayout.TRAILING. + * @param align the alignment value + * @param hgap the horizontal gap between components + * and between the components and the + * borders of the Container + * @param vgap the vertical gap between components + * and between the components and the + * borders of the Container + */ + public FlowLayout(int align, int hgap, int vgap) { + this.hgap = hgap; + this.vgap = vgap; + setAlignment(align); + } + + /** + * Gets the alignment for this layout. + * Possible values are FlowLayout.LEFT, + * FlowLayout.RIGHT, FlowLayout.CENTER, + * FlowLayout.LEADING, + * or FlowLayout.TRAILING. + * @return the alignment value for this layout + * @see java.awt.FlowLayout#setAlignment + * @since JDK1.1 + */ + public int getAlignment() { + return newAlign; + } + + /** + * Sets the alignment for this layout. + * Possible values are + *

+ * @param align one of the alignment values shown above + * @see #getAlignment() + * @since JDK1.1 + */ + public void setAlignment(int align) { + this.newAlign = align; + + // this.align is used only for serialization compatibility, + // so set it to a value compatible with the 1.1 version + // of the class + + switch (align) { + case LEADING: + this.align = LEFT; + break; + case TRAILING: + this.align = RIGHT; + break; + default: + this.align = align; + break; + } + } + + /** + * Gets the horizontal gap between components + * and between the components and the borders + * of the Container + * + * @return the horizontal gap between components + * and between the components and the borders + * of the Container + * @see java.awt.FlowLayout#setHgap + * @since JDK1.1 + */ + public int getHgap() { + return hgap; + } + + /** + * Sets the horizontal gap between components and + * between the components and the borders of the + * Container. + * + * @param hgap the horizontal gap between components + * and between the components and the borders + * of the Container + * @see java.awt.FlowLayout#getHgap + * @since JDK1.1 + */ + public void setHgap(int hgap) { + this.hgap = hgap; + } + + /** + * Gets the vertical gap between components and + * between the components and the borders of the + * Container. + * + * @return the vertical gap between components + * and between the components and the borders + * of the Container + * @see java.awt.FlowLayout#setVgap + * @since JDK1.1 + */ + public int getVgap() { + return vgap; + } + + /** + * Sets the vertical gap between components and between + * the components and the borders of the Container. + * + * @param vgap the vertical gap between components + * and between the components and the borders + * of the Container + * @see java.awt.FlowLayout#getVgap + * @since JDK1.1 + */ + public void setVgap(int vgap) { + this.vgap = vgap; + } + + /** + * Sets whether or not components should be vertically aligned along their + * baseline. Components that do not have a baseline will be centered. + * The default is false. + * + * @param alignOnBaseline whether or not components should be + * vertically aligned on their baseline + * @since 1.6 + */ + public void setAlignOnBaseline(boolean alignOnBaseline) { + this.alignOnBaseline = alignOnBaseline; + } + + /** + * Returns true if components are to be vertically aligned along + * their baseline. The default is false. + * + * @return true if components are to be vertically aligned along + * their baseline + * @since 1.6 + */ + public boolean getAlignOnBaseline() { + return alignOnBaseline; + } + + /** + * Adds the specified component to the layout. + * Not used by this class. + * @param name the name of the component + * @param comp the component to be added + */ + public void addLayoutComponent(String name, Component comp) { + } + + /** + * Removes the specified component from the layout. + * Not used by this class. + * @param comp the component to remove + * @see java.awt.Container#removeAll + */ + public void removeLayoutComponent(Component comp) { + } + + /** + * Returns the preferred dimensions for this layout given the + * visible components in the specified target container. + * + * @param target the container that needs to be laid out + * @return the preferred dimensions to lay out the + * subcomponents of the specified container + * @see Container + * @see #minimumLayoutSize + * @see java.awt.Container#getPreferredSize + */ + public Dimension preferredLayoutSize(Container target) { + + Dimension dim = new Dimension(0, 0); + int nmembers = target.getComponentCount(); + boolean firstVisibleComponent = true; + boolean useBaseline = getAlignOnBaseline(); + int maxAscent = 0; + int maxDescent = 0; + + for (int i = 0 ; i < nmembers ; i++) { + Component m = target.getComponent(i); + if (m.isVisible()) { + Dimension d = m.getPreferredSize(); + dim.height = Math.max(dim.height, d.height); + if (firstVisibleComponent) { + firstVisibleComponent = false; + } else { + dim.width += hgap; + } + dim.width += d.width; + if (useBaseline) { + int baseline = m.getBaseline(d.width, d.height); + if (baseline >= 0) { + maxAscent = Math.max(maxAscent, baseline); + maxDescent = Math.max(maxDescent, d.height - baseline); + } + } + } + } + if (useBaseline) { + dim.height = Math.max(maxAscent + maxDescent, dim.height); + } + Insets insets = target.getInsets(); + dim.width += insets.left + insets.right + hgap*2; + dim.height += insets.top + insets.bottom + vgap*2; + return dim; + + } + + /** + * Returns the minimum dimensions needed to layout the visible + * components contained in the specified target container. + * @param target the container that needs to be laid out + * @return the minimum dimensions to lay out the + * subcomponents of the specified container + * @see #preferredLayoutSize + * @see java.awt.Container + * @see java.awt.Container#doLayout + */ + public Dimension minimumLayoutSize(Container target) { + + boolean useBaseline = getAlignOnBaseline(); + Dimension dim = new Dimension(0, 0); + int nmembers = target.getComponentCount(); + int maxAscent = 0; + int maxDescent = 0; + boolean firstVisibleComponent = true; + + for (int i = 0 ; i < nmembers ; i++) { + Component m = target.getComponent(i); + if (m.visible) { + Dimension d = m.getMinimumSize(); + dim.height = Math.max(dim.height, d.height); + if (firstVisibleComponent) { + firstVisibleComponent = false; + } else { + dim.width += hgap; + } + dim.width += d.width; + if (useBaseline) { + int baseline = m.getBaseline(d.width, d.height); + if (baseline >= 0) { + maxAscent = Math.max(maxAscent, baseline); + maxDescent = Math.max(maxDescent, + dim.height - baseline); + } + } + } + } + + if (useBaseline) { + dim.height = Math.max(maxAscent + maxDescent, dim.height); + } + + Insets insets = target.getInsets(); + dim.width += insets.left + insets.right + hgap*2; + dim.height += insets.top + insets.bottom + vgap*2; + return dim; + + + + + + + } + + /** + * Centers the elements in the specified row, if there is any slack. + * @param target the component which needs to be moved + * @param x the x coordinate + * @param y the y coordinate + * @param width the width dimensions + * @param height the height dimensions + * @param rowStart the beginning of the row + * @param rowEnd the the ending of the row + * @param useBaseline Whether or not to align on baseline. + * @param ascent Ascent for the components. This is only valid if + * useBaseline is true. + * @param descent Ascent for the components. This is only valid if + * useBaseline is true. + * @return actual row height + */ + private int moveComponents(Container target, int x, int y, int width, int height, + int rowStart, int rowEnd, boolean ltr, + boolean useBaseline, int[] ascent, + int[] descent) { + switch (newAlign) { + case LEFT: + x += ltr ? 0 : width; + break; + case CENTER: + x += width / 2; + break; + case RIGHT: + x += ltr ? width : 0; + break; + case LEADING: + break; + case TRAILING: + x += width; + break; + } + int maxAscent = 0; + int nonbaselineHeight = 0; + int baselineOffset = 0; + if (useBaseline) { + int maxDescent = 0; + for (int i = rowStart ; i < rowEnd ; i++) { + Component m = target.getComponent(i); + if (m.visible) { + if (ascent[i] >= 0) { + maxAscent = Math.max(maxAscent, ascent[i]); + maxDescent = Math.max(maxDescent, descent[i]); + } + else { + nonbaselineHeight = Math.max(m.getHeight(), + nonbaselineHeight); + } + } + } + height = Math.max(maxAscent + maxDescent, nonbaselineHeight); + baselineOffset = (height - maxAscent - maxDescent) / 2; + } + for (int i = rowStart ; i < rowEnd ; i++) { + Component m = target.getComponent(i); + if (m.isVisible()) { + int cy; + if (useBaseline && ascent[i] >= 0) { + cy = y + baselineOffset + maxAscent - ascent[i]; + } + else { + cy = y + (height - m.getHeight()) / 2; + } + if (ltr) { + m.setLocation(x, cy); + } else { + m.setLocation(target.getWidth() - x - m.getWidth(), cy); + } + x += m.getWidth() + hgap; + } + } + return height; + } + + /** + * Lays out the container. This method lets each + * visible component take + * its preferred size by reshaping the components in the + * target container in order to satisfy the alignment of + * this FlowLayout object. + * + * @param target the specified component being laid out + * @see Container + * @see java.awt.Container#doLayout + */ + public void layoutContainer(Container target) { + + Insets insets = target.getInsets(); + int maxwidth = target.getWidth() - (insets.left + insets.right + hgap*2); + int nmembers = target.getComponentCount(); + int x = 0, y = insets.top + vgap; + int rowh = 0, start = 0; + + boolean ltr = target.getComponentOrientation().isLeftToRight(); + + boolean useBaseline = getAlignOnBaseline(); + int[] ascent = null; + int[] descent = null; + + if (useBaseline) { + ascent = new int[nmembers]; + descent = new int[nmembers]; + } + + for (int i = 0 ; i < nmembers ; i++) { + Component m = target.getComponent(i); + if (m.isVisible()) { + Dimension d = m.getPreferredSize(); + m.setSize(d.width, d.height); + + if (useBaseline) { + int baseline = m.getBaseline(d.width, d.height); + if (baseline >= 0) { + ascent[i] = baseline; + descent[i] = d.height - baseline; + } + else { + ascent[i] = -1; + } + } + if ((x == 0) || ((x + d.width) <= maxwidth)) { + if (x > 0) { + x += hgap; + } + x += d.width; + rowh = Math.max(rowh, d.height); + } else { + rowh = moveComponents(target, insets.left + hgap, y, + maxwidth - x, rowh, start, i, ltr, + useBaseline, ascent, descent); + x = d.width; + y += vgap + rowh; + rowh = d.height; + start = i; + } + } + } + moveComponents(target, insets.left + hgap, y, maxwidth - x, rowh, + start, nmembers, ltr, useBaseline, ascent, descent); + + } + + // + // the internal serial version which says which version was written + // - 0 (default) for versions before the Java 2 platform, v1.2 + // - 1 for version >= Java 2 platform v1.2, which includes "newAlign" field + // + private static final int currentSerialVersion = 1; + /** + * This represent the currentSerialVersion + * which is bein used. It will be one of two values : + * 0 versions before Java 2 platform v1.2.. + * 1 versions after Java 2 platform v1.2.. + * + * @serial + * @since 1.2 + */ + private int serialVersionOnStream = currentSerialVersion; + + /** + * Reads this object out of a serialization stream, handling + * objects written by older versions of the class that didn't contain all + * of the fields we use now.. + */ + private void readObject(ObjectInputStream stream) + throws IOException, ClassNotFoundException + { + stream.defaultReadObject(); + + if (serialVersionOnStream < 1) { + // "newAlign" field wasn't present, so use the old "align" field. + setAlignment(this.align); + } + serialVersionOnStream = currentSerialVersion; + } + + /** + * Returns a string representation of this FlowLayout + * object and its values. + * @return a string representation of this layout + */ + public String toString() { + String str = ""; + switch (align) { + case LEFT: str = ",align=left"; break; + case CENTER: str = ",align=center"; break; + case RIGHT: str = ",align=right"; break; + case LEADING: str = ",align=leading"; break; + case TRAILING: str = ",align=trailing"; break; + } + return getClass().getName() + "[hgap=" + hgap + ",vgap=" + vgap + str + "]"; + } + + +} diff --git a/app/src/main/java/java/awt/Font.java b/app/src/main/java/java/awt/Font.java new file mode 100644 index 000000000..61a9ca951 --- /dev/null +++ b/app/src/main/java/java/awt/Font.java @@ -0,0 +1,244 @@ +package java.awt; + +import java.awt.font.*; +import java.awt.geom.*; +import java.io.*; +import java.util.*; +import java.text.AttributedCharacterIterator.Attribute; + +public class Font implements Serializable + { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -4206021311591459213L; + + /** + * The Constant PLAIN indicates font's plain style. + */ + public static final int PLAIN = 0; + + /** + * The Constant BOLD indicates font's bold style. + */ + public static final int BOLD = 1; + + /** + * The Constant ITALIC indicates font's italic style. + */ + public static final int ITALIC = 2; + + /** + * The Constant ROMAN_BASELINE indicated roman baseline. + */ + public static final int ROMAN_BASELINE = 0; + + /** + * The Constant CENTER_BASELINE indicates center baseline. + */ + public static final int CENTER_BASELINE = 1; + + /** + * The Constant HANGING_BASELINE indicates hanging baseline. + */ + public static final int HANGING_BASELINE = 2; + + /** + * The Constant TRUETYPE_FONT indicates a font resource of type TRUETYPE. + */ + public static final int TRUETYPE_FONT = 0; + + /** + * The Constant TYPE1_FONT indicates a font resource of type TYPE1. + */ + public static final int TYPE1_FONT = 1; + + /** + * The Constant LAYOUT_LEFT_TO_RIGHT indicates that text is left to right. + */ + public static final int LAYOUT_LEFT_TO_RIGHT = 0; + + /** + * The Constant LAYOUT_RIGHT_TO_LEFT indicates that text is right to left. + */ + public static final int LAYOUT_RIGHT_TO_LEFT = 1; + + /** + * The Constant LAYOUT_NO_START_CONTEXT indicates that the text in the char + * array before the indicated start should not be examined. + */ + public static final int LAYOUT_NO_START_CONTEXT = 2; + + /** + * The Constant LAYOUT_NO_LIMIT_CONTEXT indicates that text in the char + * array after the indicated limit should not be examined. + */ + public static final int LAYOUT_NO_LIMIT_CONTEXT = 4; + + /** + * The Constant DEFAULT_FONT. + */ + static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); //$NON-NLS-1$ + + /** + * The name of the Font. + */ + protected String name; + + /** + * The style of the Font. + */ + protected int style; + + /** + * The size of the Font. + */ + protected int size; + + /** + * The point size of the Font. + */ + protected float pointSize; + + // Flag if the Font object transformed + /** + * The transformed. + */ + private boolean transformed; + + // Set of font attributes + /** + * The requested attributes. + */ + private Hashtable fRequestedAttributes; + + // number of glyphs in this Font + /** + * The num glyphs. + */ + private transient int numGlyphs = -1; + + // code for missing glyph for this Font + /** + * The missing glyph code. + */ + private transient int missingGlyphCode = -1; + /** + * Instantiates a new Font with the specified attributes. The Font will be + * created with default attributes if the attribute's parameter is null. + * + * @param attributes + * the attributes to be assigned to the new Font, or null. + */ + public Font(Map attributes) { + Object currAttr; + + // Default values are taken from the documentation of the Font class. + // See Font constructor, decode and getFont sections. + + this.name = "default"; //$NON-NLS-1$ + this.size = 12; + this.pointSize = 12; + this.style = Font.PLAIN; + + if (attributes != null) { + + fRequestedAttributes = new Hashtable(attributes); + + currAttr = attributes.get(TextAttribute.SIZE); + if (currAttr != null) { + this.pointSize = ((Float)currAttr).floatValue(); + this.size = (int)Math.ceil(this.pointSize); + } + + currAttr = attributes.get(TextAttribute.POSTURE); + if (currAttr != null && currAttr.equals(TextAttribute.POSTURE_OBLIQUE)) { + this.style |= Font.ITALIC; + } + + currAttr = attributes.get(TextAttribute.WEIGHT); + if ((currAttr != null) + && (((Float)currAttr).floatValue() >= (TextAttribute.WEIGHT_BOLD).floatValue())) { + this.style |= Font.BOLD; + } + + currAttr = attributes.get(TextAttribute.FAMILY); + if (currAttr != null) { + this.name = (String)currAttr; + } + + currAttr = attributes.get(TextAttribute.TRANSFORM); + if (currAttr != null) { + /* + if (currAttr instanceof TransformAttribute) { + this.transformed = !((TransformAttribute)currAttr).getTransform().isIdentity(); + } else + */ + if (currAttr instanceof AffineTransform) { + this.transformed = !((AffineTransform)currAttr).isIdentity(); + } + } + + } else { + fRequestedAttributes = new Hashtable(5); + + this.transformed = false; + + fRequestedAttributes.put(TextAttribute.FAMILY, name); + + fRequestedAttributes.put(TextAttribute.SIZE, new Float(this.size)); + + if ((this.style & Font.BOLD) != 0) { + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); + } else { + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR); + } + if ((this.style & Font.ITALIC) != 0) { + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); + } else { + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); + } + + } + } + + /** + * Instantiates a new Font with the specified name, style and size. + * + * @param name + * the name of font. + * @param style + * the style of font. + * @param size + * the size of font. + */ + public Font(String name, int style, int size) { + + this.name = (name != null) ? name : "Default"; //$NON-NLS-1$ + this.size = (size >= 0) ? size : 0; + this.style = (style & ~0x03) == 0 ? style : Font.PLAIN; + this.pointSize = this.size; + + fRequestedAttributes = new Hashtable(5); + + // fRequestedAttributes.put(TextAttribute.TRANSFORM, IDENTITY_TRANSFORM); + + this.transformed = false; + + fRequestedAttributes.put(TextAttribute.FAMILY, this.name); + fRequestedAttributes.put(TextAttribute.SIZE, new Float(this.size)); + + if ((this.style & Font.BOLD) != 0) { + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); + } else { + fRequestedAttributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR); + } + if ((this.style & Font.ITALIC) != 0) { + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE); + } else { + fRequestedAttributes.put(TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR); + } + } + +} diff --git a/app/src/main/java/java/awt/FontFormatException.java b/app/src/main/java/java/awt/FontFormatException.java new file mode 100644 index 000000000..806711a76 --- /dev/null +++ b/app/src/main/java/java/awt/FontFormatException.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Ilya S. Okomin + * @version $Revision$ + */ + +package java.awt; + +/** + * The FontFormatException class is used to provide notification and information + * that font can't be created. + * + * @since Android 1.0 + */ +public class FontFormatException extends Exception { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -4481290147811361272L; + + /** + * Instantiates a new font format exception with detailed message. + * + * @param reason + * the detailed message. + */ + public FontFormatException(String reason) { + super(reason); + } + +} diff --git a/app/src/main/java/java/awt/Frame.java b/app/src/main/java/java/awt/Frame.java new file mode 100644 index 000000000..87cf9854f --- /dev/null +++ b/app/src/main/java/java/awt/Frame.java @@ -0,0 +1,37 @@ +package java.awt; + +import java.awt.*; +import java.util.*; +import java.awt.event.*; + +public class Frame extends Window { + public Frame() { + super(); + } + + public Frame(String title) { + super(title); + } + + public static Frame[] getFrames() { + Window[] allWindows = Window.getWindows(); + + List frames = new ArrayList(); + for (Window w : allWindows) { + if (w instanceof Frame) { + frames.add((Frame) w); + } + } + + return frames.toArray(new Frame[0]); + } + + public void setLocationRelativeTo(Component comp) { + //super.setLocationRelativeTo(comp); + } + + public void addWindowListener(WindowListener listener) { + //super.addWindowListener(lisener); + } +} + diff --git a/app/src/main/java/java/awt/Graphics.java b/app/src/main/java/java/awt/Graphics.java new file mode 100644 index 000000000..474a50114 --- /dev/null +++ b/app/src/main/java/java/awt/Graphics.java @@ -0,0 +1,42 @@ +package java.awt; + +import java.awt.image.BufferedImage; +import java.awt.image.ImageObserver; + +import android.graphics.Canvas; +import android.graphics.Paint; + +public class Graphics { + private Paint androidPaint; + private Canvas androidCanvas; + private BufferedImage bufImage; + + public Graphics(BufferedImage bufImage) { + this.bufImage = bufImage; + this.androidCanvas = new Canvas(bufImage.getAndroidBitmap()); + this.androidPaint = new Paint(); + } + + public void setColor(Color color) { + androidPaint.setColor(color.hashCode()); + } + + public void fillRect(int x, int y, int width, int height) { + this.androidCanvas.drawRect(x, y, x + width, y + height, androidPaint); + } + + public void drawString(String s, int x, int y) { + this.androidCanvas.drawText(s, x, y, androidPaint); + } + + public void dispose() { + } + + public boolean drawImage(Image image, int x, int y, ImageObserver observer) { + if (image instanceof BufferedImage) { + this.androidCanvas.drawBitmap(((BufferedImage) image).getAndroidBitmap(), (float) x, (float) y, null); + } + return true; + } +} + diff --git a/app/src/main/java/java/awt/Graphics2D.java b/app/src/main/java/java/awt/Graphics2D.java new file mode 100644 index 000000000..3fa43d584 --- /dev/null +++ b/app/src/main/java/java/awt/Graphics2D.java @@ -0,0 +1,10 @@ +package java.awt; + +import java.awt.image.BufferedImage; + +public class Graphics2D extends Graphics { + public Graphics2D(BufferedImage bufImage) { + super(bufImage); + } +} + diff --git a/app/src/main/java/java/awt/GraphicsEnvironment.java b/app/src/main/java/java/awt/GraphicsEnvironment.java new file mode 100644 index 000000000..e776f4ede --- /dev/null +++ b/app/src/main/java/java/awt/GraphicsEnvironment.java @@ -0,0 +1,27 @@ +package java.awt; + +/* + * A fake GraphicsEnvironment, it was added + * for AWT codes compatible and do nothing. + */ +public class GraphicsEnvironment extends Object +{ + private static GraphicsEnvironment localEnv = new GraphicsEnvironment(); + public static GraphicsEnvironment getLocalGraphicsEnvironment() { + return localEnv; + } + + public static String getHeadlessMessage() { + return + "\nNo X11 DISPLAY variable was set, " + + "but this program performed an operation which requires it."; + } + + public static void checkHeadless() { + + } + + public static boolean isHeadless() { + return false; + } +} diff --git a/app/src/main/java/java/awt/HeadlessException.java b/app/src/main/java/java/awt/HeadlessException.java new file mode 100644 index 000000000..fb9515879 --- /dev/null +++ b/app/src/main/java/java/awt/HeadlessException.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt; +/** + * Thrown when code that is dependent on a keyboard, display, or mouse + * is called in an environment that does not support a keyboard, display, + * or mouse. + * + * @since 1.4 + * @author Michael Martak + */ +public class HeadlessException extends UnsupportedOperationException { + /* + * JDK 1.4 serialVersionUID + */ + private static final long serialVersionUID = 167183644944358563L; + public HeadlessException() {} + public HeadlessException(String msg) { + super(msg); + } + public String getMessage() { + String superMessage = super.getMessage(); + String headlessMessage = GraphicsEnvironment.getHeadlessMessage(); + if (superMessage == null) { + return headlessMessage; + } else if (headlessMessage == null) { + return superMessage; + } else { + return superMessage + headlessMessage; + } + } +} diff --git a/app/src/main/java/java/awt/IllegalComponentStateException.java b/app/src/main/java/java/awt/IllegalComponentStateException.java new file mode 100644 index 000000000..bed172998 --- /dev/null +++ b/app/src/main/java/java/awt/IllegalComponentStateException.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Michael Danilov + * @version $Revision$ + */ + +package java.awt; + +/** + * The IllegalComponentStateException class is used to provide notification that + * AWT component is not in an appropriate state for the requested operation. + * + * @since Android 1.0 + */ +public class IllegalComponentStateException extends IllegalStateException { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -1889339587208144238L; + + /** + * Instantiates a new IllegalComponentStateException with the specified + * message. + * + * @param s + * the String message which describes the exception. + */ + public IllegalComponentStateException(String s) { + super(s); + } + + /** + * Instantiates a new IllegalComponentStateException without detailed + * message. + */ + public IllegalComponentStateException() { + } + +} diff --git a/app/src/main/java/java/awt/Image.java b/app/src/main/java/java/awt/Image.java new file mode 100644 index 000000000..4c5efff85 --- /dev/null +++ b/app/src/main/java/java/awt/Image.java @@ -0,0 +1,6 @@ +package java.awt; + +public abstract class Image +{ + // MOD: Fake class. +} diff --git a/app/src/main/java/java/awt/Insets.java b/app/src/main/java/java/awt/Insets.java new file mode 100644 index 000000000..04f198c61 --- /dev/null +++ b/app/src/main/java/java/awt/Insets.java @@ -0,0 +1,179 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Dmitry A. Durnev + * @version $Revision$ + */ + +package java.awt; + +import java.io.Serializable; + +import org.apache.harmony.misc.HashCode; + +/** + * The Insets class represents the borders of a container. This class describes + * the space that a container should leave at each edge: the top, the bottom, + * the right side, and the left side. The space can be filled with a border, a + * blank space, or a title. + * + * @since Android 1.0 + */ +public class Insets implements Cloneable, Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -2272572637695466749L; + + /** + * The top inset indicates the size of the space added to the top of the + * rectangle. + */ + public int top; + + /** + * The left inset indicates the size of the space added to the left side of + * the rectangle. + */ + public int left; + + /** + * The bottom inset indicates the size of the space subtracted from the + * bottom of the rectangle. + */ + public int bottom; + + /** + * The right inset indicates the size of the space subtracted from the right + * side of the rectangle. + */ + public int right; + + /** + * Instantiates a new Inset object with the specified top, left, bottom, + * right parameters. + * + * @param top + * the top inset. + * @param left + * the left inset. + * @param bottom + * the bottom inset. + * @param right + * the right inset. + */ + public Insets(int top, int left, int bottom, int right) { + setValues(top, left, bottom, right); + } + + /** + * Returns a hash code of the Insets object. + * + * @return a hash code of the Insets object. + */ + @Override + public int hashCode() { + int hashCode = HashCode.EMPTY_HASH_CODE; + hashCode = HashCode.combine(hashCode, top); + hashCode = HashCode.combine(hashCode, left); + hashCode = HashCode.combine(hashCode, bottom); + hashCode = HashCode.combine(hashCode, right); + return hashCode; + } + + /** + * Returns a copy of this Insets object. + * + * @return a copy of this Insets object. + */ + @Override + public Object clone() { + return new Insets(top, left, bottom, right); + } + + /** + * Checks if this Insets object is equal to the specified object. + * + * @param o + * the Object to be compared. + * @return true, if the object is an Insets object whose data values are + * equal to those of this object, false otherwise. + */ + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (o instanceof Insets) { + Insets i = (Insets)o; + return ((i.left == left) && (i.bottom == bottom) && (i.right == right) && (i.top == top)); + } + return false; + } + + /** + * Returns a String representation of this Insets object. + * + * @return a String representation of this Insets object. + */ + @Override + public String toString() { + /* + * The format is based on 1.5 release behavior which can be revealed by + * the following code: System.out.println(new Insets(1, 2, 3, 4)); + */ + + return (getClass().getName() + "[left=" + left + ",top=" + top + //$NON-NLS-1$ //$NON-NLS-2$ + ",right=" + right + ",bottom=" + bottom + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Sets top, left, bottom, and right insets to the specified values. + * + * @param top + * the top inset. + * @param left + * the left inset. + * @param bottom + * the bottom inset. + * @param right + * the right inset. + */ + public void set(int top, int left, int bottom, int right) { + setValues(top, left, bottom, right); + } + + /** + * Sets the values. + * + * @param top + * the top. + * @param left + * the left. + * @param bottom + * the bottom. + * @param right + * the right. + */ + private void setValues(int top, int left, int bottom, int right) { + this.top = top; + this.left = left; + this.bottom = bottom; + this.right = right; + } +} diff --git a/app/src/main/java/java/awt/LayoutManager.java b/app/src/main/java/java/awt/LayoutManager.java new file mode 100644 index 000000000..5a00db263 --- /dev/null +++ b/app/src/main/java/java/awt/LayoutManager.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1995, 2005, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt; + +/** + * Defines the interface for classes that know how to lay out + * Containers. + *

+ * Swing's painting architecture assumes the children of a + * JComponent do not overlap. If a + * JComponent's LayoutManager allows + * children to overlap, the JComponent must override + * isOptimizedDrawingEnabled to return false. + * + * @see Container + * @see javax.swing.JComponent#isOptimizedDrawingEnabled + * + * @author Sami Shaio + * @author Arthur van Hoff + */ +public interface LayoutManager { + /** + * If the layout manager uses a per-component string, + * adds the component comp to the layout, + * associating it + * with the string specified by name. + * + * @param name the string to be associated with the component + * @param comp the component to be added + */ + void addLayoutComponent(String name, Component comp); + + /** + * Removes the specified component from the layout. + * @param comp the component to be removed + */ + void removeLayoutComponent(Component comp); + + /** + * Calculates the preferred size dimensions for the specified + * container, given the components it contains. + * @param parent the container to be laid out + * + * @see #minimumLayoutSize + */ + Dimension preferredLayoutSize(Container parent); + + /** + * Calculates the minimum size dimensions for the specified + * container, given the components it contains. + * @param parent the component to be laid out + * @see #preferredLayoutSize + */ + Dimension minimumLayoutSize(Container parent); + + /** + * Lays out the specified container. + * @param parent the container to be laid out + */ + void layoutContainer(Container parent); +} diff --git a/app/src/main/java/java/awt/LayoutManager2.java b/app/src/main/java/java/awt/LayoutManager2.java new file mode 100644 index 000000000..ae6516e17 --- /dev/null +++ b/app/src/main/java/java/awt/LayoutManager2.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt; + +/** + * Defines an interface for classes that know how to layout Containers + * based on a layout constraints object. + * + * This interface extends the LayoutManager interface to deal with layouts + * explicitly in terms of constraint objects that specify how and where + * components should be added to the layout. + *

+ * This minimal extension to LayoutManager is intended for tool + * providers who wish to the creation of constraint-based layouts. + * It does not yet provide full, general support for custom + * constraint-based layout managers. + * + * @see LayoutManager + * @see Container + * + * @author Jonni Kanerva + */ +public interface LayoutManager2 extends LayoutManager { + + /** + * Adds the specified component to the layout, using the specified + * constraint object. + * @param comp the component to be added + * @param constraints where/how the component is added to the layout. + */ + void addLayoutComponent(Component comp, Object constraints); + + /** + * Calculates the maximum size dimensions for the specified container, + * given the components it contains. + * @see java.awt.Component#getMaximumSize + * @see LayoutManager + */ + public Dimension maximumLayoutSize(Container target); + + /** + * Returns the alignment along the x axis. This specifies how + * the component would like to be aligned relative to other + * components. The value should be a number between 0 and 1 + * where 0 represents alignment along the origin, 1 is aligned + * the furthest away from the origin, 0.5 is centered, etc. + */ + public float getLayoutAlignmentX(Container target); + + /** + * Returns the alignment along the y axis. This specifies how + * the component would like to be aligned relative to other + * components. The value should be a number between 0 and 1 + * where 0 represents alignment along the origin, 1 is aligned + * the furthest away from the origin, 0.5 is centered, etc. + */ + public float getLayoutAlignmentY(Container target); + + /** + * Invalidates the layout, indicating that if the layout manager + * has cached information it should be discarded. + */ + public void invalidateLayout(Container target); + +} diff --git a/app/src/main/java/java/awt/Panel.java b/app/src/main/java/java/awt/Panel.java new file mode 100644 index 000000000..3ccb3c3d0 --- /dev/null +++ b/app/src/main/java/java/awt/Panel.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt; + +import javax.accessibility.*; + +/** + * Panel is the simplest container class. A panel + * provides space in which an application can attach any other + * component, including other panels. + *

+ * The default layout manager for a panel is the + * FlowLayout layout manager. + * + * @author Sami Shaio + * @see java.awt.FlowLayout + * @since JDK1.0 + */ +public class Panel extends Container implements Accessible { + private static final String base = "panel"; + private static int nameCounter = 0; + + /* + * JDK 1.1 serialVersionUID + */ + private static final long serialVersionUID = -2728009084054400034L; + + /** + * Creates a new panel using the default layout manager. + * The default layout manager for all panels is the + * FlowLayout class. + */ + public Panel() { + this(new FlowLayout()); + } + + /* + * MOD: Why this implements Accessible? + * So MOD adding below... + */ + @Override + public AccessibleContext getAccessibleContext() + { + // TODO: Implement this method + return null; + } + + /** + * Creates a new panel with the specified layout manager. + * @param layout the layout manager for this panel. + * @since JDK1.1 + */ + public Panel(LayoutManager layout) { + setLayout(layout); + } + + /** + * Construct a name for this component. Called by getName() when the + * name is null. + */ + String constructComponentName() { + synchronized (Panel.class) { + return base + nameCounter++; + } + } + + /** + * Creates the Panel's peer. The peer allows you to modify the + * appearance of the panel without changing its functionality. + */ + + public void addNotify() { + super.addNotify(); + + /* + if (peer == null) + peer = getToolkit().createPanel(this); + */ + } + +///////////////// +// Accessibility support +//////////////// + + /** + * Gets the AccessibleContext associated with this Panel. + * For panels, the AccessibleContext takes the form of an + * AccessibleAWTPanel. + * A new AccessibleAWTPanel instance is created if necessary. + * + * @return an AccessibleAWTPanel that serves as the + * AccessibleContext of this Panel + * @since 1.3 + */ + /* + public AccessibleContext getAccessibleContext() { + if (accessibleContext == null) { + accessibleContext = new AccessibleAWTPanel(); + } + return accessibleContext; + } +*/ + /** + * This class implements accessibility support for the + * Panel class. It provides an implementation of the + * Java Accessibility API appropriate to panel user-interface elements. + * @since 1.3 + */ + protected class AccessibleAWTPanel { // extends AccessibleAWTContainer { + + private static final long serialVersionUID = -6409552226660031050L; + + /** + * Get the role of this object. + * + * @return an instance of AccessibleRole describing the role of the + * object + */ + /* + public AccessibleRole getAccessibleRole() { + return AccessibleRole.PANEL; + } + */ + } + +} diff --git a/app/src/main/java/java/awt/Point.java b/app/src/main/java/java/awt/Point.java new file mode 100644 index 000000000..8ec424121 --- /dev/null +++ b/app/src/main/java/java/awt/Point.java @@ -0,0 +1,211 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt; + +import java.awt.geom.Point2D; +import java.io.Serializable; + +/** + * The Point class represents a point location with coordinates X, Y in current + * coordinate system. + * + * @since Android 1.0 + */ +public class Point extends Point2D implements Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -5276940640259749850L; + + /** + * The X coordinate of Point. + */ + public int x; + + /** + * The Y coordinate of Point. + */ + public int y; + + /** + * Instantiates a new point with (0, O) coordinates, the origin of + * coordinate system. + */ + public Point() { + setLocation(0, 0); + } + + /** + * Instantiates a new point with (x, y) coordinates. + * + * @param x + * the X coordinate of Point. + * @param y + * the Y coordinate of Point. + */ + public Point(int x, int y) { + setLocation(x, y); + } + + /** + * Instantiates a new point, giving it the same location as the parameter p. + * + * @param p + * the Point object giving the coordinates of the new point. + */ + public Point(Point p) { + setLocation(p.x, p.y); + } + + /** + * Compares current Point with the specified object. + * + * @param obj + * the Object to be compared. + * @return true, if the Object being compared is a Point whose coordinates + * are equal to the coordinates of this Point, false otherwise. + * @see java.awt.geom.Point2D#equals(Object) + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Point) { + Point p = (Point)obj; + return x == p.x && y == p.y; + } + return false; + } + + /** + * Returns string representation of the current Point object. + * + * @return a string representation of the current Point object. + */ + @Override + public String toString() { + return getClass().getName() + "[x=" + x + ",y=" + y + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Gets X coordinate of Point as a double. + * + * @return X coordinate of the point as a double. + * @see java.awt.geom.Point2D#getX() + */ + @Override + public double getX() { + return x; + } + + /** + * Gets Y coordinate of Point as a double. + * + * @return Y coordinate of the point as a double. + * @see java.awt.geom.Point2D#getY() + */ + @Override + public double getY() { + return y; + } + + /** + * Gets the location of the Point as a new Point object. + * + * @return a copy of the Point. + */ + public Point getLocation() { + return new Point(x, y); + } + + /** + * Sets the location of the Point to the same coordinates as p. + * + * @param p + * the Point that gives the new location. + */ + public void setLocation(Point p) { + setLocation(p.x, p.y); + } + + /** + * Sets the location of the Point to the coordinates X, Y. + * + * @param x + * the X coordinate of the Point's new location. + * @param y + * the Y coordinate of the Point's new location. + */ + public void setLocation(int x, int y) { + this.x = x; + this.y = y; + } + + /** + * Sets the location of Point to the specified double coordinates. + * + * @param x + * the X the Point's new location. + * @param y + * the Y the Point's new location. + * @see java.awt.geom.Point2D#setLocation(double, double) + */ + @Override + public void setLocation(double x, double y) { + x = x < Integer.MIN_VALUE ? Integer.MIN_VALUE : x > Integer.MAX_VALUE ? Integer.MAX_VALUE + : x; + y = y < Integer.MIN_VALUE ? Integer.MIN_VALUE : y > Integer.MAX_VALUE ? Integer.MAX_VALUE + : y; + setLocation((int)Math.round(x), (int)Math.round(y)); + } + + /** + * Moves the Point to the specified (x, y) location. + * + * @param x + * the X coordinate of the new location. + * @param y + * the Y coordinate of the new location. + */ + public void move(int x, int y) { + setLocation(x, y); + } + + /** + * Translates current Point moving it from the position (x, y) to the new + * position given by (x+dx, x+dy) coordinates. + * + * @param dx + * the horizontal delta - the Point is moved to this distance + * along X axis. + * @param dy + * the vertical delta - the Point is moved to this distance along + * Y axis. + */ + public void translate(int dx, int dy) { + x += dx; + y += dy; + } + +} diff --git a/app/src/main/java/java/awt/Rectangle.java b/app/src/main/java/java/awt/Rectangle.java new file mode 100644 index 000000000..d8ebb3ad1 --- /dev/null +++ b/app/src/main/java/java/awt/Rectangle.java @@ -0,0 +1,723 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt; + +import java.awt.geom.Rectangle2D; +import java.io.Serializable; + +/** + * The Rectangle class defines the rectangular area in terms of its upper left + * corner coordinates [x,y], its width, and its height. A Rectangle specified by + * [x, y, width, height] parameters has an outline path with corners at [x, y], + * [x + width,y], [x + width,y + height], and [x, y + height].
+ *
+ * The rectangle is empty if the width or height is negative or zero. In this + * case the isEmpty method returns true. + * + * @since Android 1.0 + */ +public class Rectangle extends Rectangle2D implements Shape, Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -4345857070255674764L; + + /** + * The X coordinate of the rectangle's left upper corner. + */ + public int x; + + /** + * The Y coordinate of the rectangle's left upper corner. + */ + public int y; + + /** + * The width of rectangle. + */ + public int width; + + /** + * The height of rectangle. + */ + public int height; + + /** + * Instantiates a new rectangle with [0, 0] upper left corner coordinates, + * the width and the height are zero. + */ + public Rectangle() { + setBounds(0, 0, 0, 0); + } + + /** + * Instantiates a new rectangle whose upper left corner coordinates are + * given by the Point object (p.X and p.Y), and the width and the height are + * zero. + * + * @param p + * the Point specifies the upper left corner coordinates of the + * rectangle. + */ + public Rectangle(Point p) { + setBounds(p.x, p.y, 0, 0); + } + + /** + * Instantiates a new rectangle whose upper left corner coordinates are + * given by the Point object (p.X and p.Y), and the width and the height are + * given by Dimension object (d.width and d.height). + * + * @param p + * the point specifies the upper left corner coordinates of the + * rectangle. + * @param d + * the dimension specifies the width and the height of the + * rectangle. + */ + public Rectangle(Point p, Dimension d) { + setBounds(p.x, p.y, d.width, d.height); + } + + /** + * Instantiates a new rectangle determined by the upper left corner + * coordinates (x, y), width and height. + * + * @param x + * the X upper left corner coordinate of the rectangle. + * @param y + * the Y upper left corner coordinate of the rectangle. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + */ + public Rectangle(int x, int y, int width, int height) { + setBounds(x, y, width, height); + } + + /** + * Instantiates a new rectangle with [0, 0] as its upper left corner + * coordinates and the specified width and height. + * + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + */ + public Rectangle(int width, int height) { + setBounds(0, 0, width, height); + } + + /** + * Instantiates a new rectangle with the same coordinates as the given + * source rectangle. + * + * @param r + * the Rectangle object which parameters will be used for + * instantiating a new Rectangle. + */ + public Rectangle(Rectangle r) { + setBounds(r.x, r.y, r.width, r.height); + } + + /* + * public Rectangle(Dimension d) { setBounds(0, 0, d.width, d.height); } + */ + /** + * Gets the X coordinate of bound as a double. + * + * @return the X coordinate of bound as a double. + * @see java.awt.geom.RectangularShape#getX() + */ + @Override + public double getX() { + return x; + } + + /** + * Gets the Y coordinate of bound as a double. + * + * @return the Y coordinate of bound as a double. + * @see java.awt.geom.RectangularShape#getY() + */ + @Override + public double getY() { + return y; + } + + /** + * Gets the height of the rectangle as a double. + * + * @return the height of the rectangle as a double. + * @see java.awt.geom.RectangularShape#getHeight() + */ + @Override + public double getHeight() { + return height; + } + + /** + * Gets the width of the rectangle as a double. + * + * @return the width of the rectangle as a double. + * @see java.awt.geom.RectangularShape#getWidth() + */ + @Override + public double getWidth() { + return width; + } + + /** + * Determines whether or not the rectangle is empty. The rectangle is empty + * if its width or height is negative or zero. + * + * @return true, if the rectangle is empty, otherwise false. + * @see java.awt.geom.RectangularShape#isEmpty() + */ + @Override + public boolean isEmpty() { + return width <= 0 || height <= 0; + } + + /** + * Gets the size of a Rectangle as Dimension object. + * + * @return a Dimension object which represents size of the rectangle. + */ + public Dimension getSize() { + return new Dimension(width, height); + } + + /** + * Sets the size of the Rectangle. + * + * @param width + * the new width of the rectangle. + * @param height + * the new height of the rectangle. + */ + public void setSize(int width, int height) { + this.width = width; + this.height = height; + } + + /** + * Sets the size of a Rectangle specified as Dimension object. + * + * @param d + * a Dimension object which represents new size of a rectangle. + */ + public void setSize(Dimension d) { + setSize(d.width, d.height); + } + + /** + * Gets the location of a rectangle's upper left corner as a Point object. + * + * @return the Point object with coordinates equal to the upper left corner + * of the rectangle. + */ + public Point getLocation() { + return new Point(x, y); + } + + /** + * Sets the location of the rectangle in terms of its upper left corner + * coordinates X and Y. + * + * @param x + * the X coordinate of the rectangle's upper left corner. + * @param y + * the Y coordinate of the rectangle's upper left corner. + */ + public void setLocation(int x, int y) { + this.x = x; + this.y = y; + } + + /** + * Sets the location of a rectangle using a Point object to give the + * coordinates of the upper left corner. + * + * @param p + * the Point object which represents the new upper left corner + * coordinates of rectangle. + */ + public void setLocation(Point p) { + setLocation(p.x, p.y); + } + + /** + * Moves a rectangle to the new location by moving its upper left corner to + * the point with coordinates X and Y. + * + * @param x + * the new X coordinate of the rectangle's upper left corner. + * @param y + * the new Y coordinate of the rectangle's upper left corner. + * @deprecated Use setLocation(int, int) method. + */ + @Deprecated + public void move(int x, int y) { + setLocation(x, y); + } + + /** + * Sets the rectangle to be the nearest rectangle with integer coordinates + * bounding the rectangle defined by the double-valued parameters. + * + * @param x + * the X coordinate of the upper left corner of the double-valued + * rectangle to be bounded. + * @param y + * the Y coordinate of the upper left corner of the double-valued + * rectangle to be bounded. + * @param width + * the width of the rectangle to be bounded. + * @param height + * the height of the rectangle to be bounded. + * @see java.awt.geom.Rectangle2D#setRect(double, double, double, double) + */ + @Override + public void setRect(double x, double y, double width, double height) { + int x1 = (int)Math.floor(x); + int y1 = (int)Math.floor(y); + int x2 = (int)Math.ceil(x + width); + int y2 = (int)Math.ceil(y + height); + setBounds(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Sets a new size for the rectangle. + * + * @param width + * the rectangle's new width. + * @param height + * the rectangle's new height. + * @deprecated use the setSize(int, int) method. + */ + @Deprecated + public void resize(int width, int height) { + setBounds(x, y, width, height); + } + + /** + * Resets the bounds of a rectangle to the specified x, y, width and height + * parameters. + * + * @param x + * the new X coordinate of the upper left corner. + * @param y + * the new Y coordinate of the upper left corner. + * @param width + * the new width of rectangle. + * @param height + * the new height of rectangle. + * @deprecated use setBounds(int, int, int, int) method + */ + @Deprecated + public void reshape(int x, int y, int width, int height) { + setBounds(x, y, width, height); + } + + /** + * Gets bounds of the rectangle as a new Rectangle object. + * + * @return the Rectangle object with the same bounds as the original + * rectangle. + * @see java.awt.geom.RectangularShape#getBounds() + */ + @Override + public Rectangle getBounds() { + return new Rectangle(x, y, width, height); + } + + /** + * Gets the bounds of the original rectangle as a Rectangle2D object. + * + * @return the Rectangle2D object which represents the bounds of the + * original rectangle. + * @see java.awt.geom.Rectangle2D#getBounds2D() + */ + @Override + public Rectangle2D getBounds2D() { + return getBounds(); + } + + /** + * Sets the bounds of a rectangle to the specified x, y, width, and height + * parameters. + * + * @param x + * the X coordinate of the upper left corner. + * @param y + * the Y coordinate of the upper left corner. + * @param width + * the width of rectangle. + * @param height + * the height of rectangle. + */ + public void setBounds(int x, int y, int width, int height) { + this.x = x; + this.y = y; + this.height = height; + this.width = width; + } + + /** + * Sets the bounds of the rectangle to match the bounds of the Rectangle + * object sent as a parameter. + * + * @param r + * the Rectangle object which specifies the new bounds. + */ + public void setBounds(Rectangle r) { + setBounds(r.x, r.y, r.width, r.height); + } + + /** + * Enlarges the rectangle by moving each corner outward from the center by a + * distance of dx horizonally and a distance of dy vertically. Specifically, + * changes a rectangle with [x, y, width, height] parameters to a rectangle + * with [x-dx, y-dy, width+2*dx, height+2*dy] parameters. + * + * @param dx + * the horizontal distance to move each corner coordinate. + * @param dy + * the vertical distance to move each corner coordinate. + */ + public void grow(int dx, int dy) { + x -= dx; + y -= dy; + width += dx + dx; + height += dy + dy; + } + + /** + * Moves a rectangle a distance of mx along the x coordinate axis and a + * distance of my along y coordinate axis. + * + * @param mx + * the horizontal translation increment. + * @param my + * the vertical translation increment. + */ + public void translate(int mx, int my) { + x += mx; + y += my; + } + + /** + * Enlarges the rectangle to cover the specified point. + * + * @param px + * the X coordinate of the new point to be covered by the + * rectangle. + * @param py + * the Y coordinate of the new point to be covered by the + * rectangle. + */ + public void add(int px, int py) { + int x1 = Math.min(x, px); + int x2 = Math.max(x + width, px); + int y1 = Math.min(y, py); + int y2 = Math.max(y + height, py); + setBounds(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Enlarges the rectangle to cover the specified point with the new point + * given as a Point object. + * + * @param p + * the Point object that specifies the new point to be covered by + * the rectangle. + */ + public void add(Point p) { + add(p.x, p.y); + } + + /** + * Adds a new rectangle to the original rectangle, the result is an union of + * the specified specified rectangle and original rectangle. + * + * @param r + * the Rectangle which is added to the original rectangle. + */ + public void add(Rectangle r) { + int x1 = Math.min(x, r.x); + int x2 = Math.max(x + width, r.x + r.width); + int y1 = Math.min(y, r.y); + int y2 = Math.max(y + height, r.y + r.height); + setBounds(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Determines whether or not the point with specified coordinates [px, py] + * is within the bounds of the rectangle. + * + * @param px + * the X coordinate of point. + * @param py + * the Y coordinate of point. + * @return true, if the point with specified coordinates [px, py] is within + * the bounds of the rectangle, false otherwise. + */ + public boolean contains(int px, int py) { + if (isEmpty()) { + return false; + } + if (px < x || py < y) { + return false; + } + px -= x; + py -= y; + return px < width && py < height; + } + + /** + * Determines whether or not the point given as a Point object is within the + * bounds of the rectangle. + * + * @param p + * the Point object + * @return true, if the point p is within the bounds of the rectangle, + * otherwise false. + */ + public boolean contains(Point p) { + return contains(p.x, p.y); + } + + /** + * Determines whether or not the rectangle specified by [rx, ry, rw, rh] + * parameters is located inside the original rectangle. + * + * @param rx + * the X coordinate of the rectangle to compare. + * @param ry + * the Y coordinate of the rectangle to compare. + * @param rw + * the width of the rectangle to compare. + * @param rh + * the height of the rectangle to compare. + * @return true, if a rectangle with [rx, ry, rw, rh] parameters is entirely + * contained in the original rectangle, false otherwise. + */ + public boolean contains(int rx, int ry, int rw, int rh) { + return contains(rx, ry) && contains(rx + rw - 1, ry + rh - 1); + } + + /** + * Compares whether or not the rectangle specified by the Rectangle object + * is located inside the original rectangle. + * + * @param r + * the Rectangle object. + * @return true, if the rectangle specified by Rectangle object is entirely + * contained in the original rectangle, false otherwise. + */ + public boolean contains(Rectangle r) { + return contains(r.x, r.y, r.width, r.height); + } + + /** + * Compares whether or not a point with specified coordinates [px, py] + * belongs to a rectangle. + * + * @param px + * the X coordinate of a point. + * @param py + * the Y coordinate of a point. + * @return true, if a point with specified coordinates [px, py] belongs to a + * rectangle, otherwise false. + * @deprecated use contains(int, int) method. + */ + @Deprecated + public boolean inside(int px, int py) { + return contains(px, py); + } + + /** + * Returns the intersection of the original rectangle with the specified + * Rectangle2D. + * + * @param r + * the Rectangle2D object. + * @return the Rectangle2D object that is the result of intersecting the + * original rectangle with the specified Rectangle2D. + * @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D) + */ + @Override + public Rectangle2D createIntersection(Rectangle2D r) { + if (r instanceof Rectangle) { + return intersection((Rectangle)r); + } + Rectangle2D dst = new Rectangle2D.Double(); + Rectangle2D.intersect(this, r, dst); + return dst; + } + + /** + * Returns the intersection of the original rectangle with the specified + * rectangle. An empty rectangle is returned if there is no intersection. + * + * @param r + * the Rectangle object. + * @return the Rectangle object is result of the original rectangle with the + * specified rectangle. + */ + public Rectangle intersection(Rectangle r) { + int x1 = Math.max(x, r.x); + int y1 = Math.max(y, r.y); + int x2 = Math.min(x + width, r.x + r.width); + int y2 = Math.min(y + height, r.y + r.height); + return new Rectangle(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Determines whether or not the original rectangle intersects the specified + * rectangle. + * + * @param r + * the Rectangle object. + * @return true, if the two rectangles overlap, false otherwise. + */ + public boolean intersects(Rectangle r) { + return !intersection(r).isEmpty(); + } + + /** + * Determines where the specified Point is located with respect to the + * rectangle. This method computes whether the point is to the right or to + * the left of the rectangle and whether it is above or below the rectangle, + * and packs the result into an integer by using a binary OR operation with + * the following masks: + *

    + *
  • Rectangle2D.OUT_LEFT
  • + *
  • Rectangle2D.OUT_TOP
  • + *
  • Rectangle2D.OUT_RIGHT
  • + *
  • Rectangle2D.OUT_BOTTOM
  • + *
+ * If the rectangle is empty, all masks are set, and if the point is inside + * the rectangle, none are set. + * + * @param px + * the X coordinate of the specified point. + * @param py + * the Y coordinate of the specified point. + * @return the location of the Point relative to the rectangle as the result + * of logical OR operation with all out masks. + * @see java.awt.geom.Rectangle2D#outcode(double, double) + */ + @Override + public int outcode(double px, double py) { + int code = 0; + + if (width <= 0) { + code |= OUT_LEFT | OUT_RIGHT; + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } + + if (height <= 0) { + code |= OUT_TOP | OUT_BOTTOM; + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } + + return code; + } + + /** + * Enlarges the rectangle to cover the specified Rectangle2D. + * + * @param r + * the Rectangle2D object. + * @return the union of the original and the specified Rectangle2D. + * @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D) + */ + @Override + public Rectangle2D createUnion(Rectangle2D r) { + if (r instanceof Rectangle) { + return union((Rectangle)r); + } + Rectangle2D dst = new Rectangle2D.Double(); + Rectangle2D.union(this, r, dst); + return dst; + } + + /** + * Enlarges the rectangle to cover the specified rectangle. + * + * @param r + * the Rectangle. + * @return the union of the original and the specified rectangle. + */ + public Rectangle union(Rectangle r) { + Rectangle dst = new Rectangle(this); + dst.add(r); + return dst; + } + + /** + * Compares the original Rectangle with the specified object. + * + * @param obj + * the specified Object for comparison. + * @return true, if the specified Object is a rectangle with the same + * dimensions as the original rectangle, false otherwise. + * @see java.awt.geom.Rectangle2D#equals(Object) + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Rectangle) { + Rectangle r = (Rectangle)obj; + return r.x == x && r.y == y && r.width == width && r.height == height; + } + return false; + } + + /** + * Returns a string representation of the rectangle; the string contains [x, + * y, width, height] parameters of the rectangle. + * + * @return the string representation of the rectangle. + */ + @Override + public String toString() { + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way + // System.out.println(new Rectangle().toString()) + return getClass().getName() + "[x=" + x + ",y=" + y + //$NON-NLS-1$ //$NON-NLS-2$ + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + +} diff --git a/app/src/main/java/java/awt/Shape.java b/app/src/main/java/java/awt/Shape.java new file mode 100644 index 000000000..59bc623b8 --- /dev/null +++ b/app/src/main/java/java/awt/Shape.java @@ -0,0 +1,162 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Alexey A. Petrenko + * @version $Revision$ + */ + +package java.awt; + +import java.awt.geom.AffineTransform; +import java.awt.geom.PathIterator; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; + +/** + * The Shape interface defines a geometric shape defined by a boundary (outline) + * path. The path outline can be accessed through a PathIterator object. The + * Shape interface provides methods for obtaining the bounding box (which is the + * smallest rectangle containing the shape and for obtaining a PathIterator + * object for current Shape, as well as utility methods which determine if the + * Shape contains or intersects a Rectangle or contains a Point. + * + * @since Android 1.0 + */ +public interface Shape { + + /** + * Checks whether or not the point with specified coordinates lies inside + * the Shape. + * + * @param x + * the X coordinate. + * @param y + * the Y coordinate. + * @return true, if the specified coordinates lie inside the Shape, false + * otherwise. + */ + public boolean contains(double x, double y); + + /** + * Checks whether or not the rectangle with specified [x, y, width, height] + * parameters lies inside the Shape. + * + * @param x + * the X double coordinate of the rectangle's upper left corner. + * @param y + * the Y double coordinate of the rectangle's upper left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @return true, if the specified rectangle lies inside the Shape, false + * otherwise. + */ + public boolean contains(double x, double y, double w, double h); + + /** + * Checks whether or not the specified Point2D lies inside the Shape. + * + * @param point + * the Point2D object. + * @return true, if the specified Point2D lies inside the Shape, false + * otherwise. + */ + public boolean contains(Point2D point); + + /** + * Checks whether or not the specified rectangle lies inside the Shape. + * + * @param r + * the Rectangle2D object. + * @return true, if the specified rectangle lies inside the Shape, false + * otherwise. + */ + public boolean contains(Rectangle2D r); + + /** + * Gets the bounding rectangle of the Shape. The bounding rectangle is the + * smallest rectangle which contains the Shape. + * + * @return the bounding rectangle of the Shape. + */ + public Rectangle getBounds(); + + /** + * Gets the Rectangle2D which represents Shape bounds. The bounding + * rectangle is the smallest rectangle which contains the Shape. + * + * @return the bounding rectangle of the Shape. + */ + public Rectangle2D getBounds2D(); + + /** + * Gets the PathIterator object of the Shape which provides access to the + * shape's boundary modified by the specified AffineTransform. + * + * @param at + * the specified AffineTransform object or null. + * @return PathIterator object for the Shape. + */ + public PathIterator getPathIterator(AffineTransform at); + + /** + * Gets the PathIterator object of the Shape which provides access to the + * coordinates of the shapes boundary modified by the specified + * AffineTransform. The flatness parameter defines the amount of subdivision + * of the curved segments and specifies the maximum distance which every + * point on the unflattened transformed curve can deviate from the returned + * flattened path segments. + * + * @param at + * the specified AffineTransform object or null. + * @param flatness + * the maximum number of the control points for a given curve + * which varies from colinear before a subdivided curve is + * replaced by a straight line connecting the endpoints. + * @return PathIterator object for the Shape. + */ + public PathIterator getPathIterator(AffineTransform at, double flatness); + + /** + * Checks whether or not the interior of rectangular specified by [x, y, + * width, height] parameters intersects the interior of the Shape. + * + * @param x + * the X double coordinate of the rectangle's upper left corner. + * @param y + * the Y double coordinate of the rectangle's upper left corner. + * @param w + * the width of rectangle. + * @param h + * the height of rectangle. + * @return true, if the rectangle specified by [x, y, width, height] + * parameters intersects the interior of the Shape, false otherwise. + */ + public boolean intersects(double x, double y, double w, double h); + + /** + * Checks whether or not the interior of rectangle specified by Rectangle2D + * object intersects the interior of the Shape. + * + * @param r + * the Rectangle2D object. + * @return true, if the Rectangle2D intersects the interior of the Shape, + * otherwise false. + */ + public boolean intersects(Rectangle2D r); +} diff --git a/app/src/main/java/java/awt/Toolkit.java b/app/src/main/java/java/awt/Toolkit.java new file mode 100644 index 000000000..79cb9f7de --- /dev/null +++ b/app/src/main/java/java/awt/Toolkit.java @@ -0,0 +1,57 @@ +package java.awt; + +import java.awt.datatransfer.*; +import java.awt.peer.*; +import javax.imageio.*; +import java.io.*; + +public class Toolkit extends Object +{ + private static Toolkit toolkit = new Toolkit(); + private DesktopPeer desktopPeer = new DesktopPeer(){}; + private Clipboard clipboard = new Clipboard(); + + public Image createImage(String fileStr) + { + try { + return ImageIO.read(new File(fileStr)); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static void checkHeadless() + { + GraphicsEnvironment.checkHeadless(); + } + + public boolean isAlwaysOnTopSupported() + { + // Android implementation: NOT SUPPORTED + return false; + } + + private class AWTTreeLock { + } + + final Object awtTreeLock = new AWTTreeLock(); + + private Toolkit() + {} + + public DesktopPeer createDesktopPeer() + { + return desktopPeer; + } + + public static Toolkit getDefaultToolkit() + { + return toolkit; + } + + public Clipboard getSystemClipboard() throws HeadlessException + { + return clipboard; + } +} diff --git a/app/src/main/java/java/awt/Transparency.java b/app/src/main/java/java/awt/Transparency.java new file mode 100644 index 000000000..44a1e7f2e --- /dev/null +++ b/app/src/main/java/java/awt/Transparency.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Pavel Dolgov + * @version $Revision$ + */ + +package java.awt; + +/** + * The Transparency interface defines transparency's general modes. + * + * @since Android 1.0 + */ +public interface Transparency { + + /** + * The Constant OPAQUE represents completely opaque data, all pixels have an + * alpha value of 1.0. + */ + public static final int OPAQUE = 1; + + /** + * The Constant BITMASK represents data which can be either completely + * opaque, with an alpha value of 1.0, or completely transparent, with an + * alpha value of 0.0. + */ + public static final int BITMASK = 2; + + /** + * The Constant TRANSLUCENT represents data which alpha value can vary + * between and including 0.0 and 1.0. + */ + public static final int TRANSLUCENT = 3; + + /** + * Gets the transparency mode. + * + * @return the transparency mode: OPAQUE, BITMASK or TRANSLUCENT. + */ + public int getTransparency(); + +} diff --git a/app/src/main/java/java/awt/Window.java b/app/src/main/java/java/awt/Window.java new file mode 100644 index 000000000..6eefb753a --- /dev/null +++ b/app/src/main/java/java/awt/Window.java @@ -0,0 +1,88 @@ +package java.awt; + +import java.util.*; +import java.awt.peer.*; +import sun.security.util.*; +import java.awt.mod.*; + +public class Window extends Container +{ + private boolean alwaysOnTop; + + private static List windows; + private String title = "Untitled"; + + static { + if (windows == null) { + windows = new ArrayList(); + } + } + + public static Window[] getWindows() { + return windows.toArray(new Window[0]); + } + + public Window() { + this(""); + } + + public Window(String title) { + this.title = title; + + // Don't add WindowManager + // if (!(this instanceof AndroidWindowManager)) { + windows.add(this); + // } + } + + public void setTitle(String title){ + this.title = title; + } + + public String getTitle() { + return this.title; + } + + public final void setAlwaysOnTop(boolean alwaysOnTop) throws SecurityException { + SecurityManager security = System.getSecurityManager(); + if (security != null) { + security.checkPermission(SecurityConstants.AWT.SET_WINDOW_ALWAYS_ON_TOP_PERMISSION); + } + + boolean oldAlwaysOnTop; + synchronized(this) { + oldAlwaysOnTop = this.alwaysOnTop; + this.alwaysOnTop = alwaysOnTop; + } + if (oldAlwaysOnTop != alwaysOnTop ) { + if (isAlwaysOnTopSupported()) { + /* + WindowPeer peer = (WindowPeer)this.peer; + synchronized(getTreeLock()) { + if (peer != null) { + //peer.setAlwaysOnTop(alwaysOnTop); + } + } + */ + } + firePropertyChange("alwaysOnTop", oldAlwaysOnTop, alwaysOnTop); + } + } + + public boolean isAlwaysOnTopSupported() { + return Toolkit.getDefaultToolkit().isAlwaysOnTopSupported(); + } + + public final boolean isAlwaysOnTop() { + return alwaysOnTop; + } + + public void pack() { + //super.pack(); + } + + public void setIconImages(List icons) + { + // TODO: Implement this method + } +} diff --git a/app/src/main/java/java/awt/datatransfer/Clipboard.java b/app/src/main/java/java/awt/datatransfer/Clipboard.java new file mode 100644 index 000000000..1c120a64e --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/Clipboard.java @@ -0,0 +1,44 @@ +package java.awt.datatransfer; + +import android.app.Activity; +import android.content.Context; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.widget.Toast; + +import net.kdt.pojavlaunch.Tools; +import java.awt.mod.*; + +public class Clipboard extends Object +{ + public synchronized void setContents(final Transferable contents, ClipboardOwner owner) { + try { + final Activity act = ModdingKit.getCurrentActivity(); + act.runOnUiThread(new Runnable(){ + + @Override + public void run() + { + ClipboardManager clipboard = (ClipboardManager) act.getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("Copied text", ((StringSelection) contents).getString()); + clipboard.setPrimaryClip(clip); + + Toast.makeText(act, "Copied to clipboard!", Toast.LENGTH_SHORT).show(); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public synchronized Transferable getContents(Object requestor) { + try { + final Activity act = ModdingKit.getCurrentActivity(); + ClipboardManager clipboard = (ClipboardManager) act.getSystemService(Context.CLIPBOARD_SERVICE); + return new StringSelection(clipboard.getText().toString()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/app/src/main/java/java/awt/datatransfer/ClipboardOwner.java b/app/src/main/java/java/awt/datatransfer/ClipboardOwner.java new file mode 100644 index 000000000..39d42437b --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/ClipboardOwner.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt.datatransfer; +/** + * Defines the interface for classes that will provide data to + * a clipboard. An instance of this interface becomes the owner + * of the contents of a clipboard (clipboard owner) if it is + * passed as an argument to + * {@link java.awt.datatransfer.Clipboard#setContents} method of + * the clipboard and this method returns successfully. + * The instance remains the clipboard owner until another application + * or another object within this application asserts ownership + * of this clipboard. + * + * @see java.awt.datatransfer.Clipboard + * + * @author Amy Fowler + */ +public interface ClipboardOwner { + /** + * Notifies this object that it is no longer the clipboard owner. + * This method will be called when another application or another + * object within this application asserts ownership of the clipboard. + * + * @param clipboard the clipboard that is no longer owned + * @param contents the contents which this owner had placed on the clipboard + */ + public void lostOwnership(Clipboard clipboard, Transferable contents); +} diff --git a/app/src/main/java/java/awt/datatransfer/DataFlavor.java b/app/src/main/java/java/awt/datatransfer/DataFlavor.java new file mode 100644 index 000000000..c5ebf0ea7 --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/DataFlavor.java @@ -0,0 +1,719 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Michael Danilov + * @version $Revision$ + */ +package java.awt.datatransfer; + +import java.io.*; +import java.nio.*; +import java.nio.charset.*; +import java.util.*; + +import org.apache.harmony.awt.internal.nls.Messages; + + +public class DataFlavor implements Externalizable, Cloneable { + + private static final long serialVersionUID = 8367026044764648243L; + + /** + * @deprecated + */ + @Deprecated + public static final DataFlavor plainTextFlavor = + new DataFlavor("text/plain; charset=unicode; class=java.io.InputStream", //$NON-NLS-1$ + "Plain Text"); //$NON-NLS-1$ + + public static final DataFlavor stringFlavor = + new DataFlavor("application/x-java-serialized-object; class=java.lang.String", //$NON-NLS-1$ + "Unicode String"); //$NON-NLS-1$ + + /* public static final DataFlavor imageFlavor = + new DataFlavor("image/x-java-image; class=java.awt.Image", //$NON-NLS-1$ + "Image"); //$NON-NLS-1$ + */ + public static final DataFlavor javaFileListFlavor = + new DataFlavor("application/x-java-file-list; class=java.util.List", //$NON-NLS-1$ + "application/x-java-file-list"); //$NON-NLS-1$ + + public static final String javaJVMLocalObjectMimeType = + "application/x-java-jvm-local-objectref"; //$NON-NLS-1$ + + public static final String javaRemoteObjectMimeType = + "application/x-java-remote-object"; //$NON-NLS-1$ + + public static final String javaSerializedObjectMimeType = + "application/x-java-serialized-object"; //$NON-NLS-1$ + + private static final String sortedTextFlavors[] = { + "text/sgml", //$NON-NLS-1$ + "text/xml", //$NON-NLS-1$ + "text/html", //$NON-NLS-1$ + "text/rtf", //$NON-NLS-1$ + "text/enriched", //$NON-NLS-1$ + "text/richtext", //$NON-NLS-1$ + "text/uri-list", //$NON-NLS-1$ + "text/tab-separated-values", //$NON-NLS-1$ + "text/t140" , //$NON-NLS-1$ + "text/rfc822-headers", //$NON-NLS-1$ + "text/parityfec", //$NON-NLS-1$ + "text/directory", //$NON-NLS-1$ + "text/css", //$NON-NLS-1$ + "text/calendar", //$NON-NLS-1$ + "application/x-java-serialized-object", //$NON-NLS-1$ + "text/plain" //$NON-NLS-1$ + }; + + private static DataFlavor plainUnicodeFlavor = null; + + private String humanPresentableName; + private Class representationClass; + private MimeTypeProcessor.MimeType mimeInfo; + + public static final DataFlavor getTextPlainUnicodeFlavor() { + if (plainUnicodeFlavor == null) { + plainUnicodeFlavor = new DataFlavor("text/plain" //$NON-NLS-1$ + + "; charset=unicode"// + DTK.getDTK().getDefaultCharset() //$NON-NLS-1$ + + "; class=java.io.InputStream", //$NON-NLS-1$ + "Plain Text"); //$NON-NLS-1$ + } + + return plainUnicodeFlavor; + } + + protected static final Class tryToLoadClass(String className, ClassLoader fallback) + throws ClassNotFoundException + { + try { + return Class.forName(className); + } catch (ClassNotFoundException e0) { + try { + return ClassLoader.getSystemClassLoader().loadClass(className); + } catch (ClassNotFoundException e1) { + ClassLoader contextLoader = Thread.currentThread().getContextClassLoader(); + + if (contextLoader != null) { + try { + return contextLoader.loadClass(className); + } catch (ClassNotFoundException e2) { + } + } + + return fallback.loadClass(className); + } + } + } + + private static boolean isCharsetSupported(String charset) { + try { + return Charset.isSupported(charset); + } catch (IllegalCharsetNameException e) { + return false; + } + } + + public DataFlavor() { + mimeInfo = null; + humanPresentableName = null; + representationClass = null; + } + + public DataFlavor(Class representationClass, String humanPresentableName) { + mimeInfo = new MimeTypeProcessor.MimeType("application", "x-java-serialized-object"); //$NON-NLS-1$ //$NON-NLS-2$ + + if (humanPresentableName != null) { + this.humanPresentableName = humanPresentableName; + } else { + this.humanPresentableName = "application/x-java-serialized-object"; //$NON-NLS-1$ + } + + mimeInfo.addParameter("class", representationClass.getName()); //$NON-NLS-1$ + this.representationClass = representationClass; + } + + public DataFlavor(String mimeType, String humanPresentableName) { + try { + init(mimeType, humanPresentableName, null); + } catch (ClassNotFoundException e) { + // awt.16C=Can't load class: {0} + throw new IllegalArgumentException(Messages.getString("awt.16C", mimeInfo.getParameter("class")),e); //$NON-NLS-1$//$NON-NLS-2$ + } + } + + public DataFlavor(String mimeType) throws ClassNotFoundException { + init(mimeType, null, null); + } + + public DataFlavor(String mimeType, String humanPresentableName, ClassLoader classLoader) + throws ClassNotFoundException + { + init(mimeType, humanPresentableName, classLoader); + } + + private void init(String mimeType, String humanPresentableName, ClassLoader classLoader) + throws ClassNotFoundException + { + String className; + + try { + mimeInfo = MimeTypeProcessor.parse(mimeType); + } catch (IllegalArgumentException e) { + // awt.16D=Can't parse MIME type: {0} + throw new IllegalArgumentException(Messages.getString("awt.16D", mimeType)); //$NON-NLS-1$ + } + + if (humanPresentableName != null) { + this.humanPresentableName = humanPresentableName; + } else { + this.humanPresentableName = mimeInfo.getPrimaryType() + '/' + mimeInfo.getSubType(); + } + + className = mimeInfo.getParameter("class"); //$NON-NLS-1$ + if (className == null) { + className = "java.io.InputStream"; //$NON-NLS-1$ + mimeInfo.addParameter("class", className); //$NON-NLS-1$ + } + representationClass = (classLoader == null) ? + Class.forName(className) : + classLoader.loadClass(className); + } + + private String getCharset() { + if ((mimeInfo == null) || isCharsetRedundant()) { + return ""; //$NON-NLS-1$ + } + String charset = mimeInfo.getParameter("charset"); //$NON-NLS-1$ + + if (isCharsetRequired() && ((charset == null) || (charset.length() == 0))) { + return "unicode"; + } + if (charset == null) { + return ""; //$NON-NLS-1$ + } + + return charset; + } + + private boolean isCharsetRequired() { + String type = mimeInfo.getFullType(); + + return (type.equals("text/sgml") || //$NON-NLS-1$ + type.equals("text/xml") || //$NON-NLS-1$ + type.equals("text/html") || //$NON-NLS-1$ + type.equals("text/enriched") || //$NON-NLS-1$ + type.equals("text/richtext") || //$NON-NLS-1$ + type.equals("text/uri-list") || //$NON-NLS-1$ + type.equals("text/directory") || //$NON-NLS-1$ + type.equals("text/css") || //$NON-NLS-1$ + type.equals("text/calendar") || //$NON-NLS-1$ + type.equals("application/x-java-serialized-object") || //$NON-NLS-1$ + type.equals("text/plain")); //$NON-NLS-1$ + } + + private boolean isCharsetRedundant() { + String type = mimeInfo.getFullType(); + + return (type.equals("text/rtf") || //$NON-NLS-1$ + type.equals("text/tab-separated-values") || //$NON-NLS-1$ + type.equals("text/t140") || //$NON-NLS-1$ + type.equals("text/rfc822-headers") || //$NON-NLS-1$ + type.equals("text/parityfec")); //$NON-NLS-1$ + } + + MimeTypeProcessor.MimeType getMimeInfo() { + return mimeInfo; + } + + public String getPrimaryType() { + return (mimeInfo != null) ? mimeInfo.getPrimaryType() : null; + } + + public String getSubType() { + return (mimeInfo != null) ? mimeInfo.getSubType() : null; + } + + public String getMimeType() { + return (mimeInfo != null) ? MimeTypeProcessor.assemble(mimeInfo) : null; + } + + public String getParameter(String paramName) { + String lowerName = paramName.toLowerCase(); + + if (lowerName.equals("humanpresentablename")) { //$NON-NLS-1$ + return humanPresentableName; + } + return mimeInfo != null ? mimeInfo.getParameter(lowerName) : null; + } + + public String getHumanPresentableName() { + return humanPresentableName; + } + + public void setHumanPresentableName(String humanPresentableName) { + this.humanPresentableName = humanPresentableName; + } + + public Class getRepresentationClass() { + return representationClass; + } + + public final Class getDefaultRepresentationClass() { + return InputStream.class; + } + + public final String getDefaultRepresentationClassAsString() { + return getDefaultRepresentationClass().getName(); + } + + public boolean isRepresentationClassSerializable() { + return Serializable.class.isAssignableFrom(representationClass); + } + + public boolean isRepresentationClassRemote() { + // Code should be enabled when RMI is supported + // return java.rmi.Remote.class.isAssignableFrom(representationClass); + return false; + } + + public boolean isRepresentationClassReader() { + return Reader.class.isAssignableFrom(representationClass); + } + + public boolean isRepresentationClassInputStream() { + return InputStream.class.isAssignableFrom(representationClass); + } + + public boolean isRepresentationClassCharBuffer() { + return CharBuffer.class.isAssignableFrom(representationClass); + } + + public boolean isRepresentationClassByteBuffer() { + return ByteBuffer.class.isAssignableFrom(representationClass); + } + + /** + * @deprecated + */ + @Deprecated + protected String normalizeMimeTypeParameter(String parameterName, String parameterValue) { + return parameterValue; + } + + /** + * @deprecated + */ + @Deprecated + protected String normalizeMimeType(String mimeType) { + return mimeType; + } + + public final boolean isMimeTypeEqual(DataFlavor dataFlavor) { + return mimeInfo != null ? mimeInfo.equals(dataFlavor.mimeInfo) + : (dataFlavor.mimeInfo == null); + } + + public boolean isMimeTypeEqual(String mimeType) { + try { + return mimeInfo.equals(MimeTypeProcessor.parse(mimeType)); + } catch (IllegalArgumentException e) { + return false; + } + } + + public synchronized void writeExternal(ObjectOutput os) throws IOException { + os.writeObject(humanPresentableName); + os.writeObject(mimeInfo); + } + + public synchronized void readExternal(ObjectInput is) + throws IOException, ClassNotFoundException + { + humanPresentableName = (String) is.readObject(); + mimeInfo = (MimeTypeProcessor.MimeType) is.readObject(); + + representationClass = (mimeInfo != null) ? + Class.forName(mimeInfo.getParameter("class")) : null; //$NON-NLS-1$ + } + + @Override + public Object clone() throws CloneNotSupportedException { + DataFlavor clone = new DataFlavor(); + + clone.humanPresentableName = humanPresentableName; + clone.representationClass = representationClass; + clone.mimeInfo = (mimeInfo != null) ? (MimeTypeProcessor.MimeType) + mimeInfo.clone() : null; + + return clone; + } + + @Override + public String toString() { + /* The format is based on 1.5 release behavior + * which can be revealed by the following code: + * + * System.out.println(DataFlavor.imageFlavor.toString()); + */ + + return (getClass().getName() + + "[MimeType=(" + getMimeType() //$NON-NLS-1$ + + ");humanPresentableName=" + humanPresentableName + "]"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + public boolean isMimeTypeSerializedObject() { + return isMimeTypeEqual(javaSerializedObjectMimeType); + } + + @Override + public boolean equals(Object o) { + if ((o == null) || !(o instanceof DataFlavor)) { + return false; + } + return equals((DataFlavor) o); + } + + public boolean equals(DataFlavor that) { + if (that == this) { + return true; + } + if (that == null) { + return false; + } + if (mimeInfo == null) { + return (that.mimeInfo == null); + } + if (!(mimeInfo.equals(that.mimeInfo) && + representationClass.equals(that.representationClass))) + { + return false; + } + if (!mimeInfo.getPrimaryType().equals("text") || isUnicodeFlavor()) { //$NON-NLS-1$ + return true; + } + + String charset1 = getCharset(); + String charset2 = that.getCharset(); + + if (!isCharsetSupported(charset1) || !isCharsetSupported(charset2)) { + return charset1.equalsIgnoreCase(charset2); + } + return (Charset.forName(charset1).equals(Charset.forName(charset2))); + + } + + @Deprecated + public boolean equals(String s) { + if (s == null) { + return false; + } + + return isMimeTypeEqual(s); + } + + public boolean match(DataFlavor that) { + return equals(that); + } + + @Override + public int hashCode() { + return getKeyInfo().hashCode(); + } + + private String getKeyInfo() { + String key = mimeInfo.getFullType() + ";class=" + representationClass.getName(); //$NON-NLS-1$ + + if (!mimeInfo.getPrimaryType().equals("text") || isUnicodeFlavor()) { //$NON-NLS-1$ + return key; + } + + return key + ";charset=" + getCharset().toLowerCase(); //$NON-NLS-1$ + } + + public boolean isFlavorSerializedObjectType() { + return (isMimeTypeSerializedObject() + && isRepresentationClassSerializable()); + } + + public boolean isFlavorRemoteObjectType() { + return (isMimeTypeEqual(javaRemoteObjectMimeType) + && isRepresentationClassRemote()); + } + + public boolean isFlavorJavaFileListType() { + return (java.util.List.class.isAssignableFrom(representationClass) && + isMimeTypeEqual(javaFileListFlavor)); + } + + public boolean isFlavorTextType() { + if (equals(stringFlavor) || equals(plainTextFlavor)) { + return true; + } + if ((mimeInfo != null) && !mimeInfo.getPrimaryType().equals("text")) { //$NON-NLS-1$ + return false; + } + + String charset = getCharset(); + + if (isByteCodeFlavor()) { + if (charset.length() != 0) { + return isCharsetSupported(charset); + } + + return true; + } + + return isUnicodeFlavor(); + } + + public Reader getReaderForText(Transferable transferable) + throws UnsupportedFlavorException, IOException + { + Object data = transferable.getTransferData(this); + + if (data == null) { + // awt.16E=Transferable has null data + throw new IllegalArgumentException(Messages.getString("awt.16E")); //$NON-NLS-1$ + } + + if (data instanceof Reader) { + Reader reader = (Reader) data; + reader.reset(); + return reader; + } else if (data instanceof String) { + return new StringReader((String) data); + } else if (data instanceof CharBuffer) { + return new CharArrayReader(((CharBuffer) data).array()); + } else if (data instanceof char[]) { + return new CharArrayReader((char[]) data); + } else { + String charset = getCharset(); + InputStream stream; + + if (data instanceof InputStream) { + stream = (InputStream) data; + stream.reset(); + } else if (data instanceof ByteBuffer) { + stream = new ByteArrayInputStream((((ByteBuffer) data).array())); + } else if (data instanceof byte[]) { + stream = new ByteArrayInputStream((byte[]) data); + } else { + // awt.16F=Can't create reader for this representation class + throw new IllegalArgumentException(Messages.getString("awt.16F")); //$NON-NLS-1$ + } + + if (charset.length() == 0) { + return new InputStreamReader(stream); + } + return new InputStreamReader(stream, charset); + } + } + + public static final DataFlavor selectBestTextFlavor(DataFlavor[] availableFlavors) { + if (availableFlavors == null) { + return null; + } + + List> sorted = sortTextFlavorsByType(new LinkedList(Arrays.asList(availableFlavors))); + + if (sorted.isEmpty()) { + return null; + } + + List bestSorted = sorted.get(0); + + if (bestSorted.size() == 1) { + return bestSorted.get(0); + } + + if (bestSorted.get(0).getCharset().length() == 0) { + return selectBestFlavorWOCharset(bestSorted); + } + return selectBestFlavorWCharset(bestSorted); + } + + private static DataFlavor selectBestFlavorWCharset(List list) { + List best; + + best = getFlavors(list, Reader.class); + if (best != null) { + return best.get(0); + } + best = getFlavors(list, String.class); + if (best != null) { + return best.get(0); + } + best = getFlavors(list, CharBuffer.class); + if (best != null) { + return best.get(0); + } + best = getFlavors(list, char[].class); + if (best != null) { + return best.get(0); + } + + return selectBestByCharset(list); + } + + private static DataFlavor selectBestByCharset(List list) { + List best; + + best = getFlavors(list, new String[] {"UTF-16", "UTF-8", "UTF-16BE", "UTF-16LE"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + if (best == null) { + best = getFlavors(list, new String[] {"unicode"}); + if (best == null) { + best = getFlavors(list, new String[] {"US-ASCII"}); //$NON-NLS-1$ + if (best == null) { + best = selectBestByAlphabet(list); + } + } + } + + if (best != null) { + if (best.size() == 1) { + return best.get(0); + } + return selectBestFlavorWOCharset(best); + } + + return null; + } + + private static List selectBestByAlphabet(List list) { + String charsets[] = new String[list.size()]; + LinkedList best = new LinkedList(); + + for (int i = 0; i < charsets.length; i++) { + charsets[i] = list.get(i).getCharset(); + } + Arrays.sort(charsets, String.CASE_INSENSITIVE_ORDER); + + for (DataFlavor flavor : list) { + if (charsets[0].equalsIgnoreCase(flavor.getCharset())) { + best.add(flavor); + } + } + + return best.isEmpty() ? null : best; + } + + private static List getFlavors(List list, String[] charset) { + LinkedList sublist = new LinkedList(); + + for (Iterator i = list.iterator(); i.hasNext();) { + DataFlavor flavor = i.next(); + + if (isCharsetSupported(flavor.getCharset())) { + for (String element : charset) { + if (Charset.forName(element).equals(Charset.forName(flavor.getCharset()))) { + sublist.add(flavor); + } + } + } else { + i.remove(); + } + } + + return sublist.isEmpty() ? null : list; + } + + private static DataFlavor selectBestFlavorWOCharset(List list) { + List best; + + best = getFlavors(list, InputStream.class); + if (best != null) { + return best.get(0); + } + best = getFlavors(list, ByteBuffer.class); + if (best != null) { + return best.get(0); + } + best = getFlavors(list, byte[].class); + if (best != null) { + return best.get(0); + } + + return list.get(0); + } + + private static List getFlavors(List list, Class klass) { + LinkedList sublist = new LinkedList(); + + for (DataFlavor flavor : list) { + if (flavor.representationClass.equals(klass)) { + sublist.add(flavor); + } + } + + return sublist.isEmpty() ? null : list; + } + + private static List> sortTextFlavorsByType(List availableFlavors) { + LinkedList> list = new LinkedList>(); + + for (String element : sortedTextFlavors) { + List subList = fetchTextFlavors(availableFlavors, element); + + if (subList != null) { + list.addLast(subList); + } + } + if (!availableFlavors.isEmpty()) { + list.addLast(availableFlavors); + } + + return list; + } + + private static List fetchTextFlavors(List availableFlavors, String mimeType) { + LinkedList list = new LinkedList(); + + for (Iterator i = availableFlavors.iterator(); i.hasNext();) { + DataFlavor flavor = i.next(); + + if (flavor.isFlavorTextType()) { + if (flavor.mimeInfo.getFullType().equals(mimeType)) { + if (!list.contains(flavor)) { + list.add(flavor); + } + i.remove(); + } + } else { + i.remove(); + } + } + + return list.isEmpty() ? null : list; + } + + private boolean isUnicodeFlavor() { + return (representationClass != null) + && (representationClass.equals(Reader.class) + || representationClass.equals(String.class) + || representationClass.equals(CharBuffer.class) + || representationClass.equals(char[].class)); + } + + private boolean isByteCodeFlavor() { + return (representationClass != null) + && (representationClass.equals(InputStream.class) + || representationClass.equals(ByteBuffer.class) + || representationClass.equals(byte[].class)); + } + +} diff --git a/app/src/main/java/java/awt/datatransfer/MimeTypeProcessor.java b/app/src/main/java/java/awt/datatransfer/MimeTypeProcessor.java new file mode 100644 index 000000000..ef3158c30 --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/MimeTypeProcessor.java @@ -0,0 +1,262 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package java.awt.datatransfer; + +import java.io.Serializable; +import java.util.Enumeration; +import java.util.Hashtable; + +final class MimeTypeProcessor { + + private static MimeTypeProcessor instance; + + private MimeTypeProcessor() { + super(); + } + + static MimeType parse(String str) { + MimeType res; + + if (instance == null) { + instance = new MimeTypeProcessor(); + } + + res = new MimeType(); + if (str != null) { + StringPosition pos = new StringPosition(); + + retrieveType(str, res, pos); + retrieveParams(str, res, pos); + } + + return res; + } + + static String assemble(MimeType type) { + StringBuilder buf = new StringBuilder(); + + buf.append(type.getFullType()); + for (Enumeration keys = type.parameters.keys(); keys.hasMoreElements();) { + String name = keys.nextElement(); + String value = type.parameters.get(name); + + buf.append("; "); //$NON-NLS-1$ + buf.append(name); + buf.append("=\""); //$NON-NLS-1$ + buf.append(value); + buf.append('"'); + } + + return buf.toString(); + } + + private static void retrieveType(String str, MimeType res, StringPosition pos) { + res.primaryType = retrieveToken(str, pos).toLowerCase(); + pos.i = getNextMeaningfulIndex(str, pos.i); + if ((pos.i >= str.length()) || (str.charAt(pos.i) != '/')) { + throw new IllegalArgumentException(); + } + pos.i++; + res.subType = retrieveToken(str, pos).toLowerCase(); + } + + private static void retrieveParams(String str, MimeType res, StringPosition pos) { + res.parameters = new Hashtable(); + res.systemParameters = new Hashtable(); + do { + pos.i = getNextMeaningfulIndex(str, pos.i); + if (pos.i >= str.length()) { + return; + } + if (str.charAt(pos.i) != ';') { + throw new IllegalArgumentException(); + } + pos.i++; + retrieveParam(str, res, pos); + } while (true); + } + + private static void retrieveParam(String str, MimeType res, StringPosition pos) { + String name = retrieveToken(str, pos).toLowerCase(); + + pos.i = getNextMeaningfulIndex(str, pos.i); + if ((pos.i >= str.length()) || (str.charAt(pos.i) != '=')) { + throw new IllegalArgumentException(); + } + pos.i++; + pos.i = getNextMeaningfulIndex(str, pos.i); + if ((pos.i >= str.length())) { + throw new IllegalArgumentException(); + } + String value; + + if (str.charAt(pos.i) == '"') { + value = retrieveQuoted(str, pos); + } else { + value = retrieveToken(str, pos); + } + res.parameters.put(name, value); + } + + private static String retrieveQuoted(String str, StringPosition pos) { + StringBuilder buf = new StringBuilder(); + boolean check = true; + + pos.i++; + while ((str.charAt(pos.i) != '"') || !check) { + char c = str.charAt(pos.i++); + + if (!check) { + check = true; + } else if (c == '\\') { + check = false; + } + if (check) { + buf.append(c); + } + if (pos.i == str.length()) { + throw new IllegalArgumentException(); + } + } + pos.i++; + + return buf.toString(); + } + + private static String retrieveToken(String str, StringPosition pos) { + StringBuilder buf = new StringBuilder(); + + pos.i = getNextMeaningfulIndex(str, pos.i); + if ((pos.i >= str.length()) || isTSpecialChar(str.charAt(pos.i))) { + throw new IllegalArgumentException(); + } + do { + buf.append(str.charAt(pos.i++)); + } while ((pos.i < str.length()) + && isMeaningfulChar(str.charAt(pos.i)) + && !isTSpecialChar(str.charAt(pos.i))); + + return buf.toString(); + } + + private static int getNextMeaningfulIndex(String str, int i) { + while ((i < str.length()) && !isMeaningfulChar(str.charAt(i))) { + i++; + } + + return i; + } + + private static boolean isTSpecialChar(char c) { + return ((c == '(') || (c == ')') || (c == '[') || (c == ']') || (c == '<') + || (c == '>') || (c == '@') || (c == ',') || (c == ';') || (c == ':') + || (c == '\\') || (c == '\"') || (c == '/') || (c == '?') || (c == '=')); + } + + private static boolean isMeaningfulChar(char c) { + return ((c >= '!') && (c <= '~')); + } + + private static final class StringPosition { + + int i = 0; + + } + + static final class MimeType implements Cloneable, Serializable { + + private static final long serialVersionUID = -6693571907475992044L; + private String primaryType; + private String subType; + private Hashtable parameters; + private Hashtable systemParameters; + + MimeType() { + primaryType = null; + subType = null; + parameters = null; + systemParameters = null; + } + + MimeType(String primaryType, String subType) { + this.primaryType = primaryType; + this.subType = subType; + parameters = new Hashtable(); + systemParameters = new Hashtable(); + } + + boolean equals(MimeType that) { + if (that == null) { + return false; + } + return getFullType().equals(that.getFullType()); + } + + String getPrimaryType() { + return primaryType; + } + + String getSubType() { + return subType; + } + + String getFullType() { + return (primaryType + "/" + subType); //$NON-NLS-1$ + } + + String getParameter(String name) { + return parameters.get(name); + } + + void addParameter(String name, String value) { + if (value == null) { + return; + } + if ((value.charAt(0) == '\"') + && (value.charAt(value.length() - 1) == '\"')) { + value = value.substring(1, value.length() - 2); + } + if (value.length() == 0) { + return; + } + parameters.put(name, value); + } + + void removeParameter(String name) { + parameters.remove(name); + } + + Object getSystemParameter(String name) { + return systemParameters.get(name); + } + + void addSystemParameter(String name, Object value) { + systemParameters.put(name, value); + } + + @SuppressWarnings("unchecked") + @Override + public Object clone() { + MimeType clone = new MimeType(primaryType, subType); + clone.parameters = (Hashtable)parameters.clone(); + clone.systemParameters = (Hashtable)systemParameters.clone(); + return clone; + } + } + +} diff --git a/app/src/main/java/java/awt/datatransfer/StringSelection.java b/app/src/main/java/java/awt/datatransfer/StringSelection.java new file mode 100644 index 000000000..562c5a03a --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/StringSelection.java @@ -0,0 +1,38 @@ +package java.awt.datatransfer; + +import java.io.IOException; + +public class StringSelection implements Transferable +{ + + @Override + public DataFlavor[] getTransferDataFlavors() + { + // TODO: Implement this method + return null; + } + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) + { + // TODO: Implement this method + return false; + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException + { + // TODO: Implement this method + return null; + } + + private String data; + public StringSelection(String data) + { + this.data = data; + } + public String getString() + { + return data; + } +} diff --git a/app/src/main/java/java/awt/datatransfer/Transferable.java b/app/src/main/java/java/awt/datatransfer/Transferable.java new file mode 100644 index 000000000..308e59b9a --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/Transferable.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1996, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.awt.datatransfer; +import java.io.IOException; +/** + * Defines the interface for classes that can be used to provide data + * for a transfer operation. + *

+ * For information on using data transfer with Swing, see + * + * How to Use Drag and Drop and Data Transfer, + * a section in The Java Tutorial, for more information. + * + * @author Amy Fowler + */ +public interface Transferable { + /** + * Returns an array of DataFlavor objects indicating the flavors the data + * can be provided in. The array should be ordered according to preference + * for providing the data (from most richly descriptive to least descriptive). + * @return an array of data flavors in which this data can be transferred + */ + public DataFlavor[] getTransferDataFlavors(); + /** + * Returns whether or not the specified data flavor is supported for + * this object. + * @param flavor the requested flavor for the data + * @return boolean indicating whether or not the data flavor is supported + */ + public boolean isDataFlavorSupported(DataFlavor flavor); + /** + * Returns an object which represents the data to be transferred. The class + * of the object returned is defined by the representation class of the flavor. + * + * @param flavor the requested flavor for the data + * @see DataFlavor#getRepresentationClass + * @exception IOException if the data is no longer available + * in the requested flavor. + * @exception UnsupportedFlavorException if the requested data flavor is + * not supported. + */ + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException; +} diff --git a/app/src/main/java/java/awt/datatransfer/UnsupportedFlavorException.java b/app/src/main/java/java/awt/datatransfer/UnsupportedFlavorException.java new file mode 100644 index 000000000..a77adfd65 --- /dev/null +++ b/app/src/main/java/java/awt/datatransfer/UnsupportedFlavorException.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package java.awt.datatransfer; + +public class UnsupportedFlavorException extends Exception { + private static final long serialVersionUID = 5383814944251665601L; + + public UnsupportedFlavorException(DataFlavor flavor) { + super("flavor = " + String.valueOf(flavor)); //$NON-NLS-1$ + } +} diff --git a/app/src/main/java/java/awt/event/WindowAdapter.java b/app/src/main/java/java/awt/event/WindowAdapter.java new file mode 100644 index 000000000..ae2cead8d --- /dev/null +++ b/app/src/main/java/java/awt/event/WindowAdapter.java @@ -0,0 +1,5 @@ +package java.awt.event; + +public class WindowAdapter implements WindowListener +{ +} diff --git a/app/src/main/java/java/awt/event/WindowEvent.java b/app/src/main/java/java/awt/event/WindowEvent.java new file mode 100644 index 000000000..d0330ff82 --- /dev/null +++ b/app/src/main/java/java/awt/event/WindowEvent.java @@ -0,0 +1,431 @@ +/* + * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.awt.event; + +import java.awt.Window; +import java.lang.annotation.Native; + +/** + * A low-level event that indicates that a window has changed its status. This + * low-level event is generated by a Window object when it is opened, closed, + * activated, deactivated, iconified, or deiconified, or when focus is + * transfered into or out of the Window. + *

+ * The event is passed to every WindowListener + * or WindowAdapter object which registered to receive such + * events using the window's addWindowListener method. + * (WindowAdapter objects implement the + * WindowListener interface.) Each such listener object + * gets this WindowEvent when the event occurs. + *

+ * An unspecified behavior will be caused if the {@code id} parameter + * of any particular {@code WindowEvent} instance is not + * in the range from {@code WINDOW_FIRST} to {@code WINDOW_LAST}. + * + * @author Carl Quinn + * @author Amy Fowler + * + * @see WindowAdapter + * @see WindowListener + * @see Tutorial: Writing a Window Listener + * + * @since JDK1.1 + */ +public class WindowEvent /* extends ComponentEvent */ { + + /** + * The first number in the range of ids used for window events. + */ + public static final int WINDOW_FIRST = 200; + + /** + * The window opened event. This event is delivered only + * the first time a window is made visible. + */ + @Native public static final int WINDOW_OPENED = WINDOW_FIRST; // 200 + + /** + * The "window is closing" event. This event is delivered when + * the user attempts to close the window from the window's system menu. + * If the program does not explicitly hide or dispose the window + * while processing this event, the window close operation will be + * cancelled. + */ + @Native public static final int WINDOW_CLOSING = 1 + WINDOW_FIRST; //Event.WINDOW_DESTROY + + /** + * The window closed event. This event is delivered after the displayable + * window has been closed as the result of a call to dispose. + * @see java.awt.Component#isDisplayable + * @see Window#dispose + */ + @Native public static final int WINDOW_CLOSED = 2 + WINDOW_FIRST; + + /** + * The window iconified event. This event is delivered when + * the window has been changed from a normal to a minimized state. + * For many platforms, a minimized window is displayed as + * the icon specified in the window's iconImage property. + * @see java.awt.Frame#setIconImage + */ + @Native public static final int WINDOW_ICONIFIED = 3 + WINDOW_FIRST; //Event.WINDOW_ICONIFY + + /** + * The window deiconified event type. This event is delivered when + * the window has been changed from a minimized to a normal state. + */ + @Native public static final int WINDOW_DEICONIFIED = 4 + WINDOW_FIRST; //Event.WINDOW_DEICONIFY + + /** + * The window-activated event type. This event is delivered when the Window + * becomes the active Window. Only a Frame or a Dialog can be the active + * Window. The native windowing system may denote the active Window or its + * children with special decorations, such as a highlighted title bar. The + * active Window is always either the focused Window, or the first Frame or + * Dialog that is an owner of the focused Window. + */ + @Native public static final int WINDOW_ACTIVATED = 5 + WINDOW_FIRST; + + /** + * The window-deactivated event type. This event is delivered when the + * Window is no longer the active Window. Only a Frame or a Dialog can be + * the active Window. The native windowing system may denote the active + * Window or its children with special decorations, such as a highlighted + * title bar. The active Window is always either the focused Window, or the + * first Frame or Dialog that is an owner of the focused Window. + */ + @Native public static final int WINDOW_DEACTIVATED = 6 + WINDOW_FIRST; + + /** + * The window-gained-focus event type. This event is delivered when the + * Window becomes the focused Window, which means that the Window, or one + * of its subcomponents, will receive keyboard events. + */ + @Native public static final int WINDOW_GAINED_FOCUS = 7 + WINDOW_FIRST; + + /** + * The window-lost-focus event type. This event is delivered when a Window + * is no longer the focused Window, which means keyboard events will no + * longer be delivered to the Window or any of its subcomponents. + */ + @Native public static final int WINDOW_LOST_FOCUS = 8 + WINDOW_FIRST; + + /** + * The window-state-changed event type. This event is delivered + * when a Window's state is changed by virtue of it being + * iconified, maximized etc. + * @since 1.4 + */ + @Native public static final int WINDOW_STATE_CHANGED = 9 + WINDOW_FIRST; + + /** + * The last number in the range of ids used for window events. + */ + public static final int WINDOW_LAST = WINDOW_STATE_CHANGED; + + /** + * The other Window involved in this focus or activation change. For a + * WINDOW_ACTIVATED or WINDOW_GAINED_FOCUS event, this is the Window that + * lost activation or focus. For a WINDOW_DEACTIVATED or WINDOW_LOST_FOCUS + * event, this is the Window that gained activation or focus. For any other + * type of WindowEvent, or if the focus or activation change occurs with a + * native application, a Java application in a different VM, or with no + * other Window, null is returned. + * + * @see #getOppositeWindow + * @since 1.4 + */ + transient Window opposite; + + /** + * TBS + */ + int oldState; + int newState; + + + /* + * JDK 1.1 serialVersionUID + */ + private static final long serialVersionUID = -1567959133147912127L; + + + /** + * Constructs a WindowEvent object. + *

This method throws an + * IllegalArgumentException if source + * is null. + * + * @param source The Window object + * that originated the event + * @param id An integer indicating the type of event. + * For information on allowable values, see + * the class description for {@link WindowEvent} + * @param opposite The other window involved in the focus or activation + * change, or null + * @param oldState Previous state of the window for window state change event. + * See {@code #getOldState()} for allowable values + * @param newState New state of the window for window state change event. + * See {@code #getNewState()} for allowable values + * @throws IllegalArgumentException if source is null + * @see #getWindow() + * @see #getID() + * @see #getOppositeWindow() + * @see #getOldState() + * @see #getNewState() + * @since 1.4 + */ + public WindowEvent(Window source, int id, Window opposite, + int oldState, int newState) + { + // super(source, id); + this.opposite = opposite; + this.oldState = oldState; + this.newState = newState; + } + + /** + * Constructs a WindowEvent object with the + * specified opposite Window. The opposite + * Window is the other Window + * involved in this focus or activation change. + * For a WINDOW_ACTIVATED or + * WINDOW_GAINED_FOCUS event, this is the + * Window that lost activation or focus. + * For a WINDOW_DEACTIVATED or + * WINDOW_LOST_FOCUS event, this is the + * Window that gained activation or focus. + * If this focus change occurs with a native application, with a + * Java application in a different VM, or with no other + * Window, then the opposite Window is null. + *

This method throws an + * IllegalArgumentException if source + * is null. + * + * @param source The Window object that + * originated the event + * @param id An integer indicating the type of event. + * For information on allowable values, see + * the class description for {@link WindowEvent}. + * It is expected that this constructor will not + * be used for other then + * {@code WINDOW_ACTIVATED},{@code WINDOW_DEACTIVATED}, + * {@code WINDOW_GAINED_FOCUS}, or {@code WINDOW_LOST_FOCUS}. + * {@code WindowEvent} types, + * because the opposite Window of other event types + * will always be {@code null}. + * @param opposite The other Window involved in the + * focus or activation change, or null + * @throws IllegalArgumentException if source is null + * @see #getWindow() + * @see #getID() + * @see #getOppositeWindow() + * @since 1.4 + */ + public WindowEvent(Window source, int id, Window opposite) { + this(source, id, opposite, 0, 0); + } + + /** + * Constructs a WindowEvent object with the specified + * previous and new window states. + *

This method throws an + * IllegalArgumentException if source + * is null. + * + * @param source The Window object + * that originated the event + * @param id An integer indicating the type of event. + * For information on allowable values, see + * the class description for {@link WindowEvent}. + * It is expected that this constructor will not + * be used for other then + * {@code WINDOW_STATE_CHANGED} + * {@code WindowEvent} + * types, because the previous and new window + * states are meaningless for other event types. + * @param oldState An integer representing the previous window state. + * See {@code #getOldState()} for allowable values + * @param newState An integer representing the new window state. + * See {@code #getNewState()} for allowable values + * @throws IllegalArgumentException if source is null + * @see #getWindow() + * @see #getID() + * @see #getOldState() + * @see #getNewState() + * @since 1.4 + */ + public WindowEvent(Window source, int id, int oldState, int newState) { + this(source, id, null, oldState, newState); + } + + /** + * Constructs a WindowEvent object. + *

This method throws an + * IllegalArgumentException if source + * is null. + * + * @param source The Window object that originated the event + * @param id An integer indicating the type of event. + * For information on allowable values, see + * the class description for {@link WindowEvent}. + * @throws IllegalArgumentException if source is null + * @see #getWindow() + * @see #getID() + */ + public WindowEvent(Window source, int id) { + this(source, id, null, 0, 0); + } + + /** + * Returns the originator of the event. + * + * @return the Window object that originated the event + */ + public Window getWindow() { + return null; // (source instanceof Window) ? (Window)source : null; + } + + /** + * Returns the other Window involved in this focus or activation change. + * For a WINDOW_ACTIVATED or WINDOW_GAINED_FOCUS event, this is the Window + * that lost activation or focus. For a WINDOW_DEACTIVATED or + * WINDOW_LOST_FOCUS event, this is the Window that gained activation or + * focus. For any other type of WindowEvent, or if the focus or activation + * change occurs with a native application, with a Java application in a + * different VM or context, or with no other Window, null is returned. + * + * @return the other Window involved in the focus or activation change, or + * null + * @since 1.4 + */ + public Window getOppositeWindow() { + if (opposite == null) { + return null; + } + /* + return (SunToolkit.targetToAppContext(opposite) == + AppContext.getAppContext()) + ? opposite + : null; + */ + return opposite; + } + + /** + * For WINDOW_STATE_CHANGED events returns the + * previous state of the window. The state is + * represented as a bitwise mask. + *

    + *
  • NORMAL + *
    Indicates that no state bits are set. + *
  • ICONIFIED + *
  • MAXIMIZED_HORIZ + *
  • MAXIMIZED_VERT + *
  • MAXIMIZED_BOTH + *
    Concatenates MAXIMIZED_HORIZ + * and MAXIMIZED_VERT. + *
+ * + * @return a bitwise mask of the previous window state + * @see java.awt.Frame#getExtendedState() + * @since 1.4 + */ + public int getOldState() { + return oldState; + } + + /** + * For WINDOW_STATE_CHANGED events returns the + * new state of the window. The state is + * represented as a bitwise mask. + *
    + *
  • NORMAL + *
    Indicates that no state bits are set. + *
  • ICONIFIED + *
  • MAXIMIZED_HORIZ + *
  • MAXIMIZED_VERT + *
  • MAXIMIZED_BOTH + *
    Concatenates MAXIMIZED_HORIZ + * and MAXIMIZED_VERT. + *
+ * + * @return a bitwise mask of the new window state + * @see java.awt.Frame#getExtendedState() + * @since 1.4 + */ + public int getNewState() { + return newState; + } + + /** + * Returns a parameter string identifying this event. + * This method is useful for event-logging and for debugging. + * + * @return a string identifying the event and its attributes + */ + public String paramString() { + String typeStr; + switch(0) { // id + case WINDOW_OPENED: + typeStr = "WINDOW_OPENED"; + break; + case WINDOW_CLOSING: + typeStr = "WINDOW_CLOSING"; + break; + case WINDOW_CLOSED: + typeStr = "WINDOW_CLOSED"; + break; + case WINDOW_ICONIFIED: + typeStr = "WINDOW_ICONIFIED"; + break; + case WINDOW_DEICONIFIED: + typeStr = "WINDOW_DEICONIFIED"; + break; + case WINDOW_ACTIVATED: + typeStr = "WINDOW_ACTIVATED"; + break; + case WINDOW_DEACTIVATED: + typeStr = "WINDOW_DEACTIVATED"; + break; + case WINDOW_GAINED_FOCUS: + typeStr = "WINDOW_GAINED_FOCUS"; + break; + case WINDOW_LOST_FOCUS: + typeStr = "WINDOW_LOST_FOCUS"; + break; + case WINDOW_STATE_CHANGED: + typeStr = "WINDOW_STATE_CHANGED"; + break; + default: + typeStr = "unknown type"; + } + typeStr += ",opposite=" + getOppositeWindow() + + ",oldState=" + oldState + ",newState=" + newState; + + return typeStr; + } +} diff --git a/app/src/main/java/java/awt/event/WindowListener.java b/app/src/main/java/java/awt/event/WindowListener.java new file mode 100644 index 000000000..d326597de --- /dev/null +++ b/app/src/main/java/java/awt/event/WindowListener.java @@ -0,0 +1,5 @@ +package java.awt.event; + +public interface WindowListener +{ +} diff --git a/app/src/main/java/java/awt/font/TextAttribute.java b/app/src/main/java/java/awt/font/TextAttribute.java new file mode 100644 index 000000000..38808b7f3 --- /dev/null +++ b/app/src/main/java/java/awt/font/TextAttribute.java @@ -0,0 +1,1117 @@ +/* + * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * (C) Copyright Taligent, Inc. 1996 - 1997, All Rights Reserved + * (C) Copyright IBM Corp. 1996 - 1998, All Rights Reserved + * + * The original version of this source code and documentation is + * copyrighted and owned by Taligent, Inc., a wholly-owned subsidiary + * of IBM. These materials are provided under terms of a License + * Agreement between Taligent and Sun. This technology is protected + * by multiple US and International patents. + * + * This notice and attribution to Taligent may not be removed. + * Taligent is a registered trademark of Taligent, Inc. + * + */ + +package java.awt.font; + +import java.io.InvalidObjectException; +import java.text.AttributedCharacterIterator.Attribute; +import java.util.Map; +import java.util.HashMap; + +/** + * The TextAttribute class defines attribute keys and + * attribute values used for text rendering. + *

+ * TextAttribute instances are used as attribute keys to + * identify attributes in + * {@link java.awt.Font Font}, + * {@link java.awt.font.TextLayout TextLayout}, + * {@link java.text.AttributedCharacterIterator AttributedCharacterIterator}, + * and other classes handling text attributes. Other constants defined + * in this class can be used as attribute values. + *

+ * For each text attribute, the documentation provides: + *

    + *
  • the type of its value, + *
  • the relevant predefined constants, if any + *
  • the default effect if the attribute is absent + *
  • the valid values if there are limitations + *
  • a description of the effect. + *
+ *

+ *

Values

+ *
    + *
  • The values of attributes must always be immutable. + *
  • Where value limitations are given, any value outside of that + * set is reserved for future use; the value will be treated as + * the default. + *
  • The value null is treated the same as the + * default value and results in the default behavior. + *
  • If the value is not of the proper type, the attribute + * will be ignored. + *
  • The identity of the value does not matter, only the actual + * value. For example, TextAttribute.WEIGHT_BOLD and + * new Float(2.0) + * indicate the same WEIGHT. + *
  • Attribute values of type Number (used for + * WEIGHT, WIDTH, POSTURE, + * SIZE, JUSTIFICATION, and + * TRACKING) can vary along their natural range and are + * not restricted to the predefined constants. + * Number.floatValue() is used to get the actual value + * from the Number. + *
  • The values for WEIGHT, WIDTH, and + * POSTURE are interpolated by the system, which + * can select the 'nearest available' font or use other techniques to + * approximate the user's request. + * + *
+ * + *

Summary of attributes

+ *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
KeyValue TypePrincipal ConstantsDefault Value
{@link #FAMILY}StringSee Font {@link java.awt.Font#DIALOG DIALOG}, +{@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},
{@link java.awt.Font#SERIF SERIF}, +{@link java.awt.Font#SANS_SERIF SANS_SERIF}, and {@link java.awt.Font#MONOSPACED MONOSPACED}. +
"Default" (use platform default)
{@link #WEIGHT}NumberWEIGHT_REGULAR, WEIGHT_BOLDWEIGHT_REGULAR
{@link #WIDTH}NumberWIDTH_CONDENSED, WIDTH_REGULAR,
WIDTH_EXTENDED
WIDTH_REGULAR
{@link #POSTURE}NumberPOSTURE_REGULAR, POSTURE_OBLIQUEPOSTURE_REGULAR
{@link #SIZE}Numbernone12.0
{@link #TRANSFORM}{@link TransformAttribute}See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}TransformAttribute.IDENTITY
{@link #SUPERSCRIPT}IntegerSUPERSCRIPT_SUPER, SUPERSCRIPT_SUB0 (use the standard glyphs and metrics)
{@link #FONT}{@link java.awt.Font}nonenull (do not override font resolution)
{@link #CHAR_REPLACEMENT}{@link GraphicAttribute}nonenull (draw text using font glyphs)
{@link #FOREGROUND}{@link java.awt.Paint}nonenull (use current graphics paint)
{@link #BACKGROUND}{@link java.awt.Paint}nonenull (do not render background)
{@link #UNDERLINE}IntegerUNDERLINE_ON-1 (do not render underline)
{@link #STRIKETHROUGH}BooleanSTRIKETHROUGH_ONfalse (do not render strikethrough)
{@link #RUN_DIRECTION}BooleanRUN_DIRECTION_LTR
RUN_DIRECTION_RTL
null (use {@link java.text.Bidi} standard default)
{@link #BIDI_EMBEDDING}Integernone0 (use base line direction)
{@link #JUSTIFICATION}NumberJUSTIFICATION_FULLJUSTIFICATION_FULL
{@link #INPUT_METHOD_HIGHLIGHT}{@link java.awt.im.InputMethodHighlight},
{@link java.text.Annotation}
(see class)null (do not apply input highlighting)
{@link #INPUT_METHOD_UNDERLINE}IntegerUNDERLINE_LOW_ONE_PIXEL,
UNDERLINE_LOW_TWO_PIXEL
-1 (do not render underline)
{@link #SWAP_COLORS}BooleanSWAP_COLORS_ONfalse (do not swap colors)
{@link #NUMERIC_SHAPING}{@link java.awt.font.NumericShaper}nonenull (do not shape digits)
{@link #KERNING}IntegerKERNING_ON0 (do not request kerning)
{@link #LIGATURES}IntegerLIGATURES_ON0 (do not form optional ligatures)
{@link #TRACKING}NumberTRACKING_LOOSE, TRACKING_TIGHT0 (do not add tracking)
+ *
+ * + * @see java.awt.Font + * @see java.awt.font.TextLayout + * @see java.text.AttributedCharacterIterator + */ +public final class TextAttribute extends Attribute { + + // table of all instances in this class, used by readResolve + private static final Map instanceMap = new HashMap(29); + + /** + * Constructs a TextAttribute with the specified name. + * @param name the attribute name to assign to this + * TextAttribute + */ + protected TextAttribute(String name) { + super(name); + if (this.getClass() == TextAttribute.class) { + instanceMap.put(name, this); + } + } + + /** + * Resolves instances being deserialized to the predefined constants. + */ + protected Object readResolve() throws InvalidObjectException { + if (this.getClass() != TextAttribute.class) { + throw new InvalidObjectException( + "subclass didn't correctly implement readResolve"); + } + + TextAttribute instance = (TextAttribute) instanceMap.get(getName()); + if (instance != null) { + return instance; + } else { + throw new InvalidObjectException("unknown attribute name"); + } + } + + // Serialization compatibility with Java 2 platform v1.2. + // 1.2 will throw an InvalidObjectException if ever asked to + // deserialize INPUT_METHOD_UNDERLINE. + // This shouldn't happen in real life. + static final long serialVersionUID = 7744112784117861702L; + + // + // For use with Font. + // + + /** + * Attribute key for the font name. Values are instances of + * String. The default value is + * "Default", which causes the platform default font + * family to be used. + * + *

The Font class defines constants for the logical + * font names + * {@link java.awt.Font#DIALOG DIALOG}, + * {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT}, + * {@link java.awt.Font#SANS_SERIF SANS_SERIF}, + * {@link java.awt.Font#SERIF SERIF}, and + * {@link java.awt.Font#MONOSPACED MONOSPACED}. + * + *

This defines the value passed as name to the + * Font constructor. Both logical and physical + * font names are allowed. If a font with the requested name + * is not found, the default font is used. + * + *

Note: This attribute is unfortunately misnamed, as + * it specifies the face name and not just the family. Thus + * values such as "Lucida Sans Bold" will select that face if it + * exists. Note, though, that if the requested face does not + * exist, the default will be used with regular weight. + * The "Bold" in the name is part of the face name, not a separate + * request that the font's weight be bold.

+ */ + public static final TextAttribute FAMILY = + new TextAttribute("family"); + + /** + * Attribute key for the weight of a font. Values are instances + * of Number. The default value is + * WEIGHT_REGULAR. + * + *

Several constant values are provided, see {@link + * #WEIGHT_EXTRA_LIGHT}, {@link #WEIGHT_LIGHT}, {@link + * #WEIGHT_DEMILIGHT}, {@link #WEIGHT_REGULAR}, {@link + * #WEIGHT_SEMIBOLD}, {@link #WEIGHT_MEDIUM}, {@link + * #WEIGHT_DEMIBOLD}, {@link #WEIGHT_BOLD}, {@link #WEIGHT_HEAVY}, + * {@link #WEIGHT_EXTRABOLD}, and {@link #WEIGHT_ULTRABOLD}. The + * value WEIGHT_BOLD corresponds to the + * style value Font.BOLD as passed to the + * Font constructor. + * + *

The value is roughly the ratio of the stem width to that of + * the regular weight. + * + *

The system can interpolate the provided value. + */ + public static final TextAttribute WEIGHT = + new TextAttribute("weight"); + + /** + * The lightest predefined weight. + * @see #WEIGHT + */ + public static final Float WEIGHT_EXTRA_LIGHT = + Float.valueOf(0.5f); + + /** + * The standard light weight. + * @see #WEIGHT + */ + public static final Float WEIGHT_LIGHT = + Float.valueOf(0.75f); + + /** + * An intermediate weight between WEIGHT_LIGHT and + * WEIGHT_STANDARD. + * @see #WEIGHT + */ + public static final Float WEIGHT_DEMILIGHT = + Float.valueOf(0.875f); + + /** + * The standard weight. This is the default value for WEIGHT. + * @see #WEIGHT + */ + public static final Float WEIGHT_REGULAR = + Float.valueOf(1.0f); + + /** + * A moderately heavier weight than WEIGHT_REGULAR. + * @see #WEIGHT + */ + public static final Float WEIGHT_SEMIBOLD = + Float.valueOf(1.25f); + + /** + * An intermediate weight between WEIGHT_REGULAR and + * WEIGHT_BOLD. + * @see #WEIGHT + */ + public static final Float WEIGHT_MEDIUM = + Float.valueOf(1.5f); + + /** + * A moderately lighter weight than WEIGHT_BOLD. + * @see #WEIGHT + */ + public static final Float WEIGHT_DEMIBOLD = + Float.valueOf(1.75f); + + /** + * The standard bold weight. + * @see #WEIGHT + */ + public static final Float WEIGHT_BOLD = + Float.valueOf(2.0f); + + /** + * A moderately heavier weight than WEIGHT_BOLD. + * @see #WEIGHT + */ + public static final Float WEIGHT_HEAVY = + Float.valueOf(2.25f); + + /** + * An extra heavy weight. + * @see #WEIGHT + */ + public static final Float WEIGHT_EXTRABOLD = + Float.valueOf(2.5f); + + /** + * The heaviest predefined weight. + * @see #WEIGHT + */ + public static final Float WEIGHT_ULTRABOLD = + Float.valueOf(2.75f); + + /** + * Attribute key for the width of a font. Values are instances of + * Number. The default value is + * WIDTH_REGULAR. + * + *

Several constant values are provided, see {@link + * #WIDTH_CONDENSED}, {@link #WIDTH_SEMI_CONDENSED}, {@link + * #WIDTH_REGULAR}, {@link #WIDTH_SEMI_EXTENDED}, {@link + * #WIDTH_EXTENDED}. + * + *

The value is roughly the ratio of the advance width to that + * of the regular width. + * + *

The system can interpolate the provided value. + */ + public static final TextAttribute WIDTH = + new TextAttribute("width"); + + /** + * The most condensed predefined width. + * @see #WIDTH + */ + public static final Float WIDTH_CONDENSED = + Float.valueOf(0.75f); + + /** + * A moderately condensed width. + * @see #WIDTH + */ + public static final Float WIDTH_SEMI_CONDENSED = + Float.valueOf(0.875f); + + /** + * The standard width. This is the default value for + * WIDTH. + * @see #WIDTH + */ + public static final Float WIDTH_REGULAR = + Float.valueOf(1.0f); + + /** + * A moderately extended width. + * @see #WIDTH + */ + public static final Float WIDTH_SEMI_EXTENDED = + Float.valueOf(1.25f); + + /** + * The most extended predefined width. + * @see #WIDTH + */ + public static final Float WIDTH_EXTENDED = + Float.valueOf(1.5f); + + /** + * Attribute key for the posture of a font. Values are instances + * of Number. The default value is + * POSTURE_REGULAR. + * + *

Two constant values are provided, {@link #POSTURE_REGULAR} + * and {@link #POSTURE_OBLIQUE}. The value + * POSTURE_OBLIQUE corresponds to the style value + * Font.ITALIC as passed to the Font + * constructor. + * + *

The value is roughly the slope of the stems of the font, + * expressed as the run over the rise. Positive values lean right. + * + *

The system can interpolate the provided value. + * + *

This will affect the font's italic angle as returned by + * Font.getItalicAngle. + * + * @see java.awt.Font#getItalicAngle() + */ + public static final TextAttribute POSTURE = + new TextAttribute("posture"); + + /** + * The standard posture, upright. This is the default value for + * POSTURE. + * @see #POSTURE + */ + public static final Float POSTURE_REGULAR = + Float.valueOf(0.0f); + + /** + * The standard italic posture. + * @see #POSTURE + */ + public static final Float POSTURE_OBLIQUE = + Float.valueOf(0.20f); + + /** + * Attribute key for the font size. Values are instances of + * Number. The default value is 12pt. + * + *

This corresponds to the size parameter to the + * Font constructor. + * + *

Very large or small sizes will impact rendering performance, + * and the rendering system might not render text at these sizes. + * Negative sizes are illegal and result in the default size. + * + *

Note that the appearance and metrics of a 12pt font with a + * 2x transform might be different than that of a 24 point font + * with no transform. + */ + public static final TextAttribute SIZE = + new TextAttribute("size"); + + /** + * Attribute key for the transform of a font. Values are + * instances of TransformAttribute. The + * default value is TransformAttribute.IDENTITY. + * + *

The TransformAttribute class defines the + * constant {@link TransformAttribute#IDENTITY IDENTITY}. + * + *

This corresponds to the transform passed to + * Font.deriveFont(AffineTransform). Since that + * transform is mutable and TextAttribute values must + * not be, the TransformAttribute wrapper class is + * used. + * + *

The primary intent is to support scaling and skewing, though + * other effects are possible.

+ * + *

Some transforms will cause the baseline to be rotated and/or + * shifted. The text and the baseline are transformed together so + * that the text follows the new baseline. For example, with text + * on a horizontal baseline, the new baseline follows the + * direction of the unit x vector passed through the + * transform. Text metrics are measured against this new baseline. + * So, for example, with other things being equal, text rendered + * with a rotated TRANSFORM and an unrotated TRANSFORM will measure as + * having the same ascent, descent, and advance.

+ * + *

In styled text, the baselines for each such run are aligned + * one after the other to potentially create a non-linear baseline + * for the entire run of text. For more information, see {@link + * TextLayout#getLayoutPath}.

+ * + * @see TransformAttribute + * @see java.awt.geom.AffineTransform + */ + public static final TextAttribute TRANSFORM = + new TextAttribute("transform"); + + /** + * Attribute key for superscripting and subscripting. Values are + * instances of Integer. The default value is + * 0, which means that no superscript or subscript is used. + * + *

Two constant values are provided, see {@link + * #SUPERSCRIPT_SUPER} and {@link #SUPERSCRIPT_SUB}. These have + * the values 1 and -1 respectively. Values of + * greater magnitude define greater levels of superscript or + * subscripting, for example, 2 corresponds to super-superscript, + * 3 to super-super-superscript, and similarly for negative values + * and subscript, up to a level of 7 (or -7). Values beyond this + * range are reserved; behavior is platform-dependent. + * + *

SUPERSCRIPT can + * impact the ascent and descent of a font. The ascent + * and descent can never become negative, however. + */ + public static final TextAttribute SUPERSCRIPT = + new TextAttribute("superscript"); + + /** + * Standard superscript. + * @see #SUPERSCRIPT + */ + public static final Integer SUPERSCRIPT_SUPER = + Integer.valueOf(1); + + /** + * Standard subscript. + * @see #SUPERSCRIPT + */ + public static final Integer SUPERSCRIPT_SUB = + Integer.valueOf(-1); + + /** + * Attribute key used to provide the font to use to render text. + * Values are instances of {@link java.awt.Font}. The default + * value is null, indicating that normal resolution of a + * Font from attributes should be performed. + * + *

TextLayout and + * AttributedCharacterIterator work in terms of + * Maps of TextAttributes. Normally, + * all the attributes are examined and used to select and + * configure a Font instance. If a FONT + * attribute is present, though, its associated Font + * will be used. This provides a way for users to override the + * resolution of font attributes into a Font, or + * force use of a particular Font instance. This + * also allows users to specify subclasses of Font in + * cases where a Font can be subclassed. + * + *

FONT is used for special situations where + * clients already have a Font instance but still + * need to use Map-based APIs. Typically, there will + * be no other attributes in the Map except the + * FONT attribute. With Map-based APIs + * the common case is to specify all attributes individually, so + * FONT is not needed or desireable. + * + *

However, if both FONT and other attributes are + * present in the Map, the rendering system will + * merge the attributes defined in the Font with the + * additional attributes. This merging process classifies + * TextAttributes into two groups. One group, the + * 'primary' group, is considered fundamental to the selection and + * metric behavior of a font. These attributes are + * FAMILY, WEIGHT, WIDTH, + * POSTURE, SIZE, + * TRANSFORM, SUPERSCRIPT, and + * TRACKING. The other group, the 'secondary' group, + * consists of all other defined attributes, with the exception of + * FONT itself. + * + *

To generate the new Map, first the + * Font is obtained from the FONT + * attribute, and all of its attributes extracted into a + * new Map. Then only the secondary + * attributes from the original Map are added to + * those in the new Map. Thus the values of primary + * attributes come solely from the Font, and the + * values of secondary attributes originate with the + * Font but can be overridden by other values in the + * Map. + * + *

Note:Font's Map-based + * constructor and deriveFont methods do not process + * the FONT attribute, as these are used to create + * new Font objects. Instead, {@link + * java.awt.Font#getFont(Map) Font.getFont(Map)} should be used to + * handle the FONT attribute. + * + * @see java.awt.Font + */ + public static final TextAttribute FONT = + new TextAttribute("font"); + + /** + * Attribute key for a user-defined glyph to display in lieu + * of the font's standard glyph for a character. Values are + * intances of GraphicAttribute. The default value is null, + * indicating that the standard glyphs provided by the font + * should be used. + * + *

This attribute is used to reserve space for a graphic or + * other component embedded in a line of text. It is required for + * correct positioning of 'inline' components within a line when + * bidirectional reordering (see {@link java.text.Bidi}) is + * performed. Each character (Unicode code point) will be + * rendered using the provided GraphicAttribute. Typically, the + * characters to which this attribute is applied should be + * \uFFFC. + * + *

The GraphicAttribute determines the logical and visual + * bounds of the text; the actual Font values are ignored. + * + * @see GraphicAttribute + */ + public static final TextAttribute CHAR_REPLACEMENT = + new TextAttribute("char_replacement"); + + // + // Adornments added to text. + // + + /** + * Attribute key for the paint used to render the text. Values are + * instances of Paint. The default value is + * null, indicating that the Paint set on the + * Graphics2D at the time of rendering is used. + * + *

Glyphs will be rendered using this + * Paint regardless of the Paint value + * set on the Graphics (but see {@link #SWAP_COLORS}). + * + * @see java.awt.Paint + * @see #SWAP_COLORS + */ + public static final TextAttribute FOREGROUND = + new TextAttribute("foreground"); + + /** + * Attribute key for the paint used to render the background of + * the text. Values are instances of Paint. + * The default value is null, indicating that the background + * should not be rendered. + * + *

The logical bounds of the text will be filled using this + * Paint, and then the text will be rendered on top + * of it (but see {@link #SWAP_COLORS}). + * + *

The visual bounds of the text is extended to include the + * logical bounds, if necessary. The outline is not affected. + * + * @see java.awt.Paint + * @see #SWAP_COLORS + */ + public static final TextAttribute BACKGROUND = + new TextAttribute("background"); + + /** + * Attribute key for underline. Values are instances of + * Integer. The default value is -1, which + * means no underline. + * + *

The constant value {@link #UNDERLINE_ON} is provided. + * + *

The underline affects both the visual bounds and the outline + * of the text. + */ + public static final TextAttribute UNDERLINE = + new TextAttribute("underline"); + + /** + * Standard underline. + * + * @see #UNDERLINE + */ + public static final Integer UNDERLINE_ON = + Integer.valueOf(0); + + /** + * Attribute key for strikethrough. Values are instances of + * Boolean. The default value is + * false, which means no strikethrough. + * + *

The constant value {@link #STRIKETHROUGH_ON} is provided. + * + *

The strikethrough affects both the visual bounds and the + * outline of the text. + */ + public static final TextAttribute STRIKETHROUGH = + new TextAttribute("strikethrough"); + + /** + * A single strikethrough. + * + * @see #STRIKETHROUGH + */ + public static final Boolean STRIKETHROUGH_ON = + Boolean.TRUE; + + // + // Attributes use to control layout of text on a line. + // + + /** + * Attribute key for the run direction of the line. Values are + * instances of Boolean. The default value is + * null, which indicates that the standard Bidi algorithm for + * determining run direction should be used with the value {@link + * java.text.Bidi#DIRECTION_DEFAULT_LEFT_TO_RIGHT}. + * + *

The constants {@link #RUN_DIRECTION_RTL} and {@link + * #RUN_DIRECTION_LTR} are provided. + * + *

This determines the value passed to the {@link + * java.text.Bidi} constructor to select the primary direction of + * the text in the paragraph. + * + *

Note: This attribute should have the same value for + * all the text in a paragraph, otherwise the behavior is + * undetermined. + * + * @see java.text.Bidi + */ + public static final TextAttribute RUN_DIRECTION = + new TextAttribute("run_direction"); + + /** + * Left-to-right run direction. + * @see #RUN_DIRECTION + */ + public static final Boolean RUN_DIRECTION_LTR = + Boolean.FALSE; + + /** + * Right-to-left run direction. + * @see #RUN_DIRECTION + */ + public static final Boolean RUN_DIRECTION_RTL = + Boolean.TRUE; + + /** + * Attribute key for the embedding level of the text. Values are + * instances of Integer. The default value is + * null, indicating that the the Bidirectional + * algorithm should run without explicit embeddings. + * + *

Positive values 1 through 61 are embedding levels, + * negative values -1 through -61 are override levels. + * The value 0 means that the base line direction is used. These + * levels are passed in the embedding levels array to the {@link + * java.text.Bidi} constructor. + * + *

Note: When this attribute is present anywhere in + * a paragraph, then any Unicode bidi control characters (RLO, + * LRO, RLE, LRE, and PDF) in the paragraph are + * disregarded, and runs of text where this attribute is not + * present are treated as though it were present and had the value + * 0. + * + * @see java.text.Bidi + */ + public static final TextAttribute BIDI_EMBEDDING = + new TextAttribute("bidi_embedding"); + + /** + * Attribute key for the justification of a paragraph. Values are + * instances of Number. The default value is + * 1, indicating that justification should use the full width + * provided. Values are pinned to the range [0..1]. + * + *

The constants {@link #JUSTIFICATION_FULL} and {@link + * #JUSTIFICATION_NONE} are provided. + * + *

Specifies the fraction of the extra space to use when + * justification is requested on a TextLayout. For + * example, if the line is 50 points wide and it is requested to + * justify to 70 points, a value of 0.75 will pad to use + * three-quarters of the remaining space, or 15 points, so that + * the resulting line will be 65 points in length. + * + *

Note: This should have the same value for all the + * text in a paragraph, otherwise the behavior is undetermined. + * + * @see TextLayout#getJustifiedLayout + */ + public static final TextAttribute JUSTIFICATION = + new TextAttribute("justification"); + + /** + * Justify the line to the full requested width. This is the + * default value for JUSTIFICATION. + * @see #JUSTIFICATION + */ + public static final Float JUSTIFICATION_FULL = + Float.valueOf(1.0f); + + /** + * Do not allow the line to be justified. + * @see #JUSTIFICATION + */ + public static final Float JUSTIFICATION_NONE = + Float.valueOf(0.0f); + + // + // For use by input method. + // + + /** + * Attribute key for input method highlight styles. + * + *

Values are instances of {@link + * java.awt.im.InputMethodHighlight} or {@link + * java.text.Annotation}. The default value is null, + * which means that input method styles should not be applied + * before rendering. + * + *

If adjacent runs of text with the same + * InputMethodHighlight need to be rendered + * separately, the InputMethodHighlights should be + * wrapped in Annotation instances. + * + *

Input method highlights are used while text is being + * composed by an input method. Text editing components should + * retain them even if they generally only deal with unstyled + * text, and make them available to the drawing routines. + * + * @see java.awt.Font + * @see java.awt.im.InputMethodHighlight + * @see java.text.Annotation + */ + public static final TextAttribute INPUT_METHOD_HIGHLIGHT = + new TextAttribute("input method highlight"); + + /** + * Attribute key for input method underlines. Values + * are instances of Integer. The default + * value is -1, which means no underline. + * + *

Several constant values are provided, see {@link + * #UNDERLINE_LOW_ONE_PIXEL}, {@link #UNDERLINE_LOW_TWO_PIXEL}, + * {@link #UNDERLINE_LOW_DOTTED}, {@link #UNDERLINE_LOW_GRAY}, and + * {@link #UNDERLINE_LOW_DASHED}. + * + *

This may be used in conjunction with {@link #UNDERLINE} if + * desired. The primary purpose is for use by input methods. + * Other use of these underlines for simple ornamentation might + * confuse users. + * + *

The input method underline affects both the visual bounds and + * the outline of the text. + * + * @since 1.3 + */ + public static final TextAttribute INPUT_METHOD_UNDERLINE = + new TextAttribute("input method underline"); + + /** + * Single pixel solid low underline. + * @see #INPUT_METHOD_UNDERLINE + * @since 1.3 + */ + public static final Integer UNDERLINE_LOW_ONE_PIXEL = + Integer.valueOf(1); + + /** + * Double pixel solid low underline. + * @see #INPUT_METHOD_UNDERLINE + * @since 1.3 + */ + public static final Integer UNDERLINE_LOW_TWO_PIXEL = + Integer.valueOf(2); + + /** + * Single pixel dotted low underline. + * @see #INPUT_METHOD_UNDERLINE + * @since 1.3 + */ + public static final Integer UNDERLINE_LOW_DOTTED = + Integer.valueOf(3); + + /** + * Double pixel gray low underline. + * @see #INPUT_METHOD_UNDERLINE + * @since 1.3 + */ + public static final Integer UNDERLINE_LOW_GRAY = + Integer.valueOf(4); + + /** + * Single pixel dashed low underline. + * @see #INPUT_METHOD_UNDERLINE + * @since 1.3 + */ + public static final Integer UNDERLINE_LOW_DASHED = + Integer.valueOf(5); + + /** + * Attribute key for swapping foreground and background + * Paints. Values are instances of + * Boolean. The default value is + * false, which means do not swap colors. + * + *

The constant value {@link #SWAP_COLORS_ON} is defined. + * + *

If the {@link #FOREGROUND} attribute is set, its + * Paint will be used as the background, otherwise + * the Paint currently on the Graphics + * will be used. If the {@link #BACKGROUND} attribute is set, its + * Paint will be used as the foreground, otherwise + * the system will find a contrasting color to the + * (resolved) background so that the text will be visible. + * + * @see #FOREGROUND + * @see #BACKGROUND + */ + public static final TextAttribute SWAP_COLORS = + new TextAttribute("swap_colors"); + + /** + * Swap foreground and background. + * @see #SWAP_COLORS + * @since 1.3 + */ + public static final Boolean SWAP_COLORS_ON = + Boolean.TRUE; + + /** + * Attribute key for converting ASCII decimal digits to other + * decimal ranges. Values are instances of {@link NumericShaper}. + * The default is null, which means do not perform + * numeric shaping. + * + *

When a numeric shaper is defined, the text is first + * processed by the shaper before any other analysis of the text + * is performed. + * + *

Note: This should have the same value for all the + * text in the paragraph, otherwise the behavior is undetermined. + * + * @see NumericShaper + * @since 1.4 + */ + public static final TextAttribute NUMERIC_SHAPING = + new TextAttribute("numeric_shaping"); + + /** + * Attribute key to request kerning. Values are instances of + * Integer. The default value is + * 0, which does not request kerning. + * + *

The constant value {@link #KERNING_ON} is provided. + * + *

The default advances of single characters are not + * appropriate for some character sequences, for example "To" or + * "AWAY". Without kerning the adjacent characters appear to be + * separated by too much space. Kerning causes selected sequences + * of characters to be spaced differently for a more pleasing + * visual appearance. + * + * @since 1.6 + */ + public static final TextAttribute KERNING = + new TextAttribute("kerning"); + + /** + * Request standard kerning. + * @see #KERNING + * @since 1.6 + */ + public static final Integer KERNING_ON = + Integer.valueOf(1); + + + /** + * Attribute key for enabling optional ligatures. Values are + * instances of Integer. The default value is + * 0, which means do not use optional ligatures. + * + *

The constant value {@link #LIGATURES_ON} is defined. + * + *

Ligatures required by the writing system are always enabled. + * + * @since 1.6 + */ + public static final TextAttribute LIGATURES = + new TextAttribute("ligatures"); + + /** + * Request standard optional ligatures. + * @see #LIGATURES + * @since 1.6 + */ + public static final Integer LIGATURES_ON = + Integer.valueOf(1); + + /** + * Attribute key to control tracking. Values are instances of + * Number. The default value is + * 0, which means no additional tracking. + * + *

The constant values {@link #TRACKING_TIGHT} and {@link + * #TRACKING_LOOSE} are provided. + * + *

The tracking value is multiplied by the font point size and + * passed through the font transform to determine an additional + * amount to add to the advance of each glyph cluster. Positive + * tracking values will inhibit formation of optional ligatures. + * Tracking values are typically between -0.1 and + * 0.3; values outside this range are generally not + * desireable. + * + * @since 1.6 + */ + public static final TextAttribute TRACKING = + new TextAttribute("tracking"); + + /** + * Perform tight tracking. + * @see #TRACKING + * @since 1.6 + */ + public static final Float TRACKING_TIGHT = + Float.valueOf(-.04f); + + /** + * Perform loose tracking. + * @see #TRACKING + * @since 1.6 + */ + public static final Float TRACKING_LOOSE = + Float.valueOf(.04f); +} diff --git a/app/src/main/java/java/awt/geom/AffineTransform.java b/app/src/main/java/java/awt/geom/AffineTransform.java new file mode 100644 index 000000000..8a6938cf0 --- /dev/null +++ b/app/src/main/java/java/awt/geom/AffineTransform.java @@ -0,0 +1,1267 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Shape; +import java.io.IOException; +import java.io.Serializable; + +import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.misc.HashCode; + +/** + * The Class AffineTransform represents a linear transformation (rotation, + * scaling, or shear) followed by a translation that acts on a coordinate space. + * It preserves collinearity of points and ratios of distances between collinear + * points: so if A, B, and C are on a line, then after the space has been + * transformed via the affine transform, the images of the three points will + * still be on a line, and the ratio of the distance from A to B with the + * distance from B to C will be the same as the corresponding ratio in the image + * space. + * + * @since Android 1.0 + */ +public class AffineTransform implements Cloneable, Serializable { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = 1330973210523860834L; + + /** + * The Constant TYPE_IDENTITY. + */ + public static final int TYPE_IDENTITY = 0; + + /** + * The Constant TYPE_TRANSLATION. + */ + public static final int TYPE_TRANSLATION = 1; + + /** + * The Constant TYPE_UNIFORM_SCALE. + */ + public static final int TYPE_UNIFORM_SCALE = 2; + + /** + * The Constant TYPE_GENERAL_SCALE. + */ + public static final int TYPE_GENERAL_SCALE = 4; + + /** + * The Constant TYPE_QUADRANT_ROTATION. + */ + public static final int TYPE_QUADRANT_ROTATION = 8; + + /** + * The Constant TYPE_GENERAL_ROTATION. + */ + public static final int TYPE_GENERAL_ROTATION = 16; + + /** + * The Constant TYPE_GENERAL_TRANSFORM. + */ + public static final int TYPE_GENERAL_TRANSFORM = 32; + + /** + * The Constant TYPE_FLIP. + */ + public static final int TYPE_FLIP = 64; + + /** + * The Constant TYPE_MASK_SCALE. + */ + public static final int TYPE_MASK_SCALE = TYPE_UNIFORM_SCALE | TYPE_GENERAL_SCALE; + + /** + * The Constant TYPE_MASK_ROTATION. + */ + public static final int TYPE_MASK_ROTATION = TYPE_QUADRANT_ROTATION | TYPE_GENERAL_ROTATION; + + /** + * The TYPE_UNKNOWN is an initial type value. + */ + static final int TYPE_UNKNOWN = -1; + + /** + * The min value equivalent to zero. If absolute value less then ZERO it + * considered as zero. + */ + static final double ZERO = 1E-10; + + /** + * The values of transformation matrix. + */ + double m00; + + /** + * The m10. + */ + double m10; + + /** + * The m01. + */ + double m01; + + /** + * The m11. + */ + double m11; + + /** + * The m02. + */ + double m02; + + /** + * The m12. + */ + double m12; + + /** + * The transformation type. + */ + transient int type; + + /** + * Instantiates a new affine transform of type TYPE_IDENTITY + * (which leaves coordinates unchanged). + */ + public AffineTransform() { + type = TYPE_IDENTITY; + m00 = m11 = 1.0; + m10 = m01 = m02 = m12 = 0.0; + } + + /** + * Instantiates a new affine transform that has the same data as the given + * AffineTransform. + * + * @param t + * the transform to copy. + */ + public AffineTransform(AffineTransform t) { + this.type = t.type; + this.m00 = t.m00; + this.m10 = t.m10; + this.m01 = t.m01; + this.m11 = t.m11; + this.m02 = t.m02; + this.m12 = t.m12; + } + + /** + * Instantiates a new affine transform by specifying the values of the 2x3 + * transformation matrix as floats. The type is set to the default type: + * TYPE_UNKNOWN + * + * @param m00 + * the m00 entry in the transformation matrix. + * @param m10 + * the m10 entry in the transformation matrix. + * @param m01 + * the m01 entry in the transformation matrix. + * @param m11 + * the m11 entry in the transformation matrix. + * @param m02 + * the m02 entry in the transformation matrix. + * @param m12 + * the m12 entry in the transformation matrix. + */ + public AffineTransform(float m00, float m10, float m01, float m11, float m02, float m12) { + this.type = TYPE_UNKNOWN; + this.m00 = m00; + this.m10 = m10; + this.m01 = m01; + this.m11 = m11; + this.m02 = m02; + this.m12 = m12; + } + + /** + * Instantiates a new affine transform by specifying the values of the 2x3 + * transformation matrix as doubles. The type is set to the default type: + * TYPE_UNKNOWN + * + * @param m00 + * the m00 entry in the transformation matrix. + * @param m10 + * the m10 entry in the transformation matrix. + * @param m01 + * the m01 entry in the transformation matrix. + * @param m11 + * the m11 entry in the transformation matrix. + * @param m02 + * the m02 entry in the transformation matrix. + * @param m12 + * the m12 entry in the transformation matrix. + */ + public AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12) { + this.type = TYPE_UNKNOWN; + this.m00 = m00; + this.m10 = m10; + this.m01 = m01; + this.m11 = m11; + this.m02 = m02; + this.m12 = m12; + } + + /** + * Instantiates a new affine transform by reading the values of the + * transformation matrix from an array of floats. The mapping from the array + * to the matrix starts with matrix[0] giving the top-left + * entry of the matrix and proceeds with the usual left-to-right and + * top-down ordering. + *

+ * If the array has only four entries, then the two entries of the last row + * of the transformation matrix default to zero. + * + * @param matrix + * the array of four or six floats giving the values of the + * matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. + */ + public AffineTransform(float[] matrix) { + this.type = TYPE_UNKNOWN; + m00 = matrix[0]; + m10 = matrix[1]; + m01 = matrix[2]; + m11 = matrix[3]; + if (matrix.length > 4) { + m02 = matrix[4]; + m12 = matrix[5]; + } + } + + /** + * Instantiates a new affine transform by reading the values of the + * transformation matrix from an array of doubles. The mapping from the + * array to the matrix starts with matrix[0] giving the + * top-left entry of the matrix and proceeds with the usual left-to-right + * and top-down ordering. + *

+ * If the array has only four entries, then the two entries of the last row + * of the transformation matrix default to zero. + * + * @param matrix + * the array of four or six doubles giving the values of the + * matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. + */ + public AffineTransform(double[] matrix) { + this.type = TYPE_UNKNOWN; + m00 = matrix[0]; + m10 = matrix[1]; + m01 = matrix[2]; + m11 = matrix[3]; + if (matrix.length > 4) { + m02 = matrix[4]; + m12 = matrix[5]; + } + } + + /** + * Returns type of the affine transformation. + *

+ * The type is computed as follows: Label the entries of the transformation + * matrix as three rows (m00, m01), (m10, m11), and (m02, m12). Then if the + * original basis vectors are (1, 0) and (0, 1), the new basis vectors after + * transformation are given by (m00, m01) and (m10, m11), and the + * translation vector is (m02, m12). + *

+ * The types are classified as follows:
TYPE_IDENTITY - no change
+ * TYPE_TRANSLATION - The translation vector isn't zero
+ * TYPE_UNIFORM_SCALE - The new basis vectors have equal length
+ * TYPE_GENERAL_SCALE - The new basis vectors dont' have equal length
+ * TYPE_FLIP - The new basis vector orientation differs from the original + * one
TYPE_QUADRANT_ROTATION - The new basis is a rotation of the + * original by 90, 180, 270, or 360 degrees
TYPE_GENERAL_ROTATION - The + * new basis is a rotation of the original by an arbitrary angle
+ * TYPE_GENERAL_TRANSFORM - The transformation can't be inverted.
+ *

+ * Note that multiple types are possible, thus the types can be combined + * using bitwise combinations. + * + * @return the type of the Affine Transform. + */ + public int getType() { + if (type != TYPE_UNKNOWN) { + return type; + } + + int type = 0; + + if (m00 * m01 + m10 * m11 != 0.0) { + type |= TYPE_GENERAL_TRANSFORM; + return type; + } + + if (m02 != 0.0 || m12 != 0.0) { + type |= TYPE_TRANSLATION; + } else if (m00 == 1.0 && m11 == 1.0 && m01 == 0.0 && m10 == 0.0) { + type = TYPE_IDENTITY; + return type; + } + + if (m00 * m11 - m01 * m10 < 0.0) { + type |= TYPE_FLIP; + } + + double dx = m00 * m00 + m10 * m10; + double dy = m01 * m01 + m11 * m11; + if (dx != dy) { + type |= TYPE_GENERAL_SCALE; + } else if (dx != 1.0) { + type |= TYPE_UNIFORM_SCALE; + } + + if ((m00 == 0.0 && m11 == 0.0) || (m10 == 0.0 && m01 == 0.0 && (m00 < 0.0 || m11 < 0.0))) { + type |= TYPE_QUADRANT_ROTATION; + } else if (m01 != 0.0 || m10 != 0.0) { + type |= TYPE_GENERAL_ROTATION; + } + + return type; + } + + /** + * Gets the scale x entry of the transformation matrix (the upper left + * matrix entry). + * + * @return the scale x value. + */ + public double getScaleX() { + return m00; + } + + /** + * Gets the scale y entry of the transformation matrix (the lower right + * entry of the linear transformation). + * + * @return the scale y value. + */ + public double getScaleY() { + return m11; + } + + /** + * Gets the shear x entry of the transformation matrix (the upper right + * entry of the linear transformation). + * + * @return the shear x value. + */ + public double getShearX() { + return m01; + } + + /** + * Gets the shear y entry of the transformation matrix (the lower left entry + * of the linear transformation). + * + * @return the shear y value. + */ + public double getShearY() { + return m10; + } + + /** + * Gets the x coordinate of the translation vector. + * + * @return the x coordinate of the translation vector. + */ + public double getTranslateX() { + return m02; + } + + /** + * Gets the y coordinate of the translation vector. + * + * @return the y coordinate of the translation vector. + */ + public double getTranslateY() { + return m12; + } + + /** + * Checks if the AffineTransformation is the identity. + * + * @return true, if the AffineTransformation is the identity. + */ + public boolean isIdentity() { + return getType() == TYPE_IDENTITY; + } + + /** + * Writes the values of the transformation matrix into the given array of + * doubles. If the array has length 4, only the linear transformation part + * will be written into it. If it has length greater than 4, the translation + * vector will be included as well. + * + * @param matrix + * the array to fill with the values of the matrix. + * @throws ArrayIndexOutOfBoundsException + * if the size of the array is 0, 1, 2, 3, or 5. + */ + public void getMatrix(double[] matrix) { + matrix[0] = m00; + matrix[1] = m10; + matrix[2] = m01; + matrix[3] = m11; + if (matrix.length > 4) { + matrix[4] = m02; + matrix[5] = m12; + } + } + + /** + * Gets the determinant of the linear transformation matrix. + * + * @return the determinant of the linear transformation matrix. + */ + public double getDeterminant() { + return m00 * m11 - m01 * m10; + } + + /** + * Sets the transform in terms of a list of double values. + * + * @param m00 + * the m00 coordinate of the transformation matrix. + * @param m10 + * the m10 coordinate of the transformation matrix. + * @param m01 + * the m01 coordinate of the transformation matrix. + * @param m11 + * the m11 coordinate of the transformation matrix. + * @param m02 + * the m02 coordinate of the transformation matrix. + * @param m12 + * the m12 coordinate of the transformation matrix. + */ + public void setTransform(double m00, double m10, double m01, double m11, double m02, double m12) { + this.type = TYPE_UNKNOWN; + this.m00 = m00; + this.m10 = m10; + this.m01 = m01; + this.m11 = m11; + this.m02 = m02; + this.m12 = m12; + } + + /** + * Sets the transform's data to match the data of the transform sent as a + * parameter. + * + * @param t + * the transform that gives the new values. + */ + public void setTransform(AffineTransform t) { + type = t.type; + setTransform(t.m00, t.m10, t.m01, t.m11, t.m02, t.m12); + } + + /** + * Sets the transform to the identity transform. + */ + public void setToIdentity() { + type = TYPE_IDENTITY; + m00 = m11 = 1.0; + m10 = m01 = m02 = m12 = 0.0; + } + + /** + * Sets the transformation to a translation alone. Sets the linear part of + * the transformation to identity and the translation vector to the values + * sent as parameters. Sets the type to TYPE_IDENTITY if the + * resulting AffineTransformation is the identity transformation, otherwise + * sets it to TYPE_TRANSLATION. + * + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. + */ + public void setToTranslation(double mx, double my) { + m00 = m11 = 1.0; + m01 = m10 = 0.0; + m02 = mx; + m12 = my; + if (mx == 0.0 && my == 0.0) { + type = TYPE_IDENTITY; + } else { + type = TYPE_TRANSLATION; + } + } + + /** + * Sets the transformation to being a scale alone, eliminating rotation, + * shear, and translation elements. Sets the type to + * TYPE_IDENTITY if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to TYPE_UNKNOWN. + * + * @param scx + * the scaling factor in the x direction. + * @param scy + * the scaling factor in the y direction. + */ + public void setToScale(double scx, double scy) { + m00 = scx; + m11 = scy; + m10 = m01 = m02 = m12 = 0.0; + if (scx != 1.0 || scy != 1.0) { + type = TYPE_UNKNOWN; + } else { + type = TYPE_IDENTITY; + } + } + + /** + * Sets the transformation to being a shear alone, eliminating rotation, + * scaling, and translation elements. Sets the type to + * TYPE_IDENTITY if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to TYPE_UNKNOWN. + * + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. + */ + public void setToShear(double shx, double shy) { + m00 = m11 = 1.0; + m02 = m12 = 0.0; + m01 = shx; + m10 = shy; + if (shx != 0.0 || shy != 0.0) { + type = TYPE_UNKNOWN; + } else { + type = TYPE_IDENTITY; + } + } + + /** + * Sets the transformation to being a rotation alone, eliminating shearing, + * scaling, and translation elements. Sets the type to + * TYPE_IDENTITY if the resulting AffineTransformation is the + * identity transformation, otherwise sets it to TYPE_UNKNOWN. + * + * @param angle + * the angle of rotation in radians. + */ + public void setToRotation(double angle) { + double sin = Math.sin(angle); + double cos = Math.cos(angle); + if (Math.abs(cos) < ZERO) { + cos = 0.0; + sin = sin > 0.0 ? 1.0 : -1.0; + } else if (Math.abs(sin) < ZERO) { + sin = 0.0; + cos = cos > 0.0 ? 1.0 : -1.0; + } + m00 = m11 = cos; + m01 = -sin; + m10 = sin; + m02 = m12 = 0.0; + type = TYPE_UNKNOWN; + } + + /** + * Sets the transformation to being a rotation followed by a translation. + * Sets the type to TYPE_UNKNOWN. + * + * @param angle + * the angle of rotation in radians. + * @param px + * the distance to translate in the x direction. + * @param py + * the distance to translate in the y direction. + */ + public void setToRotation(double angle, double px, double py) { + setToRotation(angle); + m02 = px * (1.0 - m00) + py * m10; + m12 = py * (1.0 - m00) - px * m10; + type = TYPE_UNKNOWN; + } + + /** + * Creates a new AffineTransformation that is a translation alone with the + * translation vector given by the values sent as parameters. The new + * transformation's type is TYPE_IDENTITY if the + * AffineTransformation is the identity transformation, otherwise it's + * TYPE_TRANSLATION. + * + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. + * @return the new AffineTransformation. + */ + public static AffineTransform getTranslateInstance(double mx, double my) { + AffineTransform t = new AffineTransform(); + t.setToTranslation(mx, my); + return t; + } + + /** + * Creates a new AffineTransformation that is a scale alone. The new + * transformation's type is TYPE_IDENTITY if the + * AffineTransformation is the identity transformation, otherwise it's + * TYPE_UNKNOWN. + * + * @param scx + * the scaling factor in the x direction. + * @param scY + * the scaling factor in the y direction. + * @return the new AffineTransformation. + */ + public static AffineTransform getScaleInstance(double scx, double scY) { + AffineTransform t = new AffineTransform(); + t.setToScale(scx, scY); + return t; + } + + /** + * Creates a new AffineTransformation that is a shear alone. The new + * transformation's type is TYPE_IDENTITY if the + * AffineTransformation is the identity transformation, otherwise it's + * TYPE_UNKNOWN. + * + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. + * @return the new AffineTransformation. + */ + public static AffineTransform getShearInstance(double shx, double shy) { + AffineTransform m = new AffineTransform(); + m.setToShear(shx, shy); + return m; + } + + /** + * Creates a new AffineTransformation that is a rotation alone. The new + * transformation's type is TYPE_IDENTITY if the + * AffineTransformation is the identity transformation, otherwise it's + * TYPE_UNKNOWN. + * + * @param angle + * the angle of rotation in radians. + * @return the new AffineTransformation. + */ + public static AffineTransform getRotateInstance(double angle) { + AffineTransform t = new AffineTransform(); + t.setToRotation(angle); + return t; + } + + /** + * Creates a new AffineTransformation that is a rotation followed by a + * translation. Sets the type to TYPE_UNKNOWN. + * + * @param angle + * the angle of rotation in radians. + * @param x + * the distance to translate in the x direction. + * @param y + * the distance to translate in the y direction. + * @return the new AffineTransformation. + */ + public static AffineTransform getRotateInstance(double angle, double x, double y) { + AffineTransform t = new AffineTransform(); + t.setToRotation(angle, x, y); + return t; + } + + /** + * Applies a translation to this AffineTransformation. + * + * @param mx + * the distance to translate in the x direction. + * @param my + * the distance to translate in the y direction. + */ + public void translate(double mx, double my) { + concatenate(AffineTransform.getTranslateInstance(mx, my)); + } + + /** + * Applies a scaling transformation to this AffineTransformation. + * + * @param scx + * the scaling factor in the x direction. + * @param scy + * the scaling factor in the y direction. + */ + public void scale(double scx, double scy) { + concatenate(AffineTransform.getScaleInstance(scx, scy)); + } + + /** + * Applies a shearing transformation to this AffineTransformation. + * + * @param shx + * the shearing factor in the x direction. + * @param shy + * the shearing factor in the y direction. + */ + public void shear(double shx, double shy) { + concatenate(AffineTransform.getShearInstance(shx, shy)); + } + + /** + * Applies a rotation transformation to this AffineTransformation. + * + * @param angle + * the angle of rotation in radians. + */ + public void rotate(double angle) { + concatenate(AffineTransform.getRotateInstance(angle)); + } + + /** + * Applies a rotation and translation transformation to this + * AffineTransformation. + * + * @param angle + * the angle of rotation in radians. + * @param px + * the distance to translate in the x direction. + * @param py + * the distance to translate in the y direction. + */ + public void rotate(double angle, double px, double py) { + concatenate(AffineTransform.getRotateInstance(angle, px, py)); + } + + /** + * Multiplies the matrix representations of two AffineTransform objects. + * + * @param t1 + * - the AffineTransform object is a multiplicand + * @param t2 + * - the AffineTransform object is a multiplier + * @return an AffineTransform object that is the result of t1 multiplied by + * the matrix t2. + */ + AffineTransform multiply(AffineTransform t1, AffineTransform t2) { + return new AffineTransform(t1.m00 * t2.m00 + t1.m10 * t2.m01, // m00 + t1.m00 * t2.m10 + t1.m10 * t2.m11, // m01 + t1.m01 * t2.m00 + t1.m11 * t2.m01, // m10 + t1.m01 * t2.m10 + t1.m11 * t2.m11, // m11 + t1.m02 * t2.m00 + t1.m12 * t2.m01 + t2.m02, // m02 + t1.m02 * t2.m10 + t1.m12 * t2.m11 + t2.m12);// m12 + } + + /** + * Applies the given AffineTransform to this AffineTransform via matrix + * multiplication. + * + * @param t + * the AffineTransform to apply to this AffineTransform. + */ + public void concatenate(AffineTransform t) { + setTransform(multiply(t, this)); + } + + /** + * Changes the current AffineTransform the one obtained by taking the + * transform t and applying this AffineTransform to it. + * + * @param t + * the AffineTransform that this AffineTransform is multiplied + * by. + */ + public void preConcatenate(AffineTransform t) { + setTransform(multiply(this, t)); + } + + /** + * Creates an AffineTransform that is the inverse of this transform. + * + * @return the affine transform that is the inverse of this AffineTransform. + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). + */ + public AffineTransform createInverse() throws NoninvertibleTransformException { + double det = getDeterminant(); + if (Math.abs(det) < ZERO) { + // awt.204=Determinant is zero + throw new NoninvertibleTransformException(Messages.getString("awt.204")); //$NON-NLS-1$ + } + return new AffineTransform(m11 / det, // m00 + -m10 / det, // m10 + -m01 / det, // m01 + m00 / det, // m11 + (m01 * m12 - m11 * m02) / det, // m02 + (m10 * m02 - m00 * m12) / det // m12 + ); + } + + /** + * Apply the current AffineTransform to the point. + * + * @param src + * the original point. + * @param dst + * Point2D object to be filled with the destination coordinates + * (where the original point is sent by this AffineTransform). + * May be null. + * @return the point in the AffineTransform's image space where the original + * point is sent. + */ + public Point2D transform(Point2D src, Point2D dst) { + if (dst == null) { + if (src instanceof Point2D.Double) { + dst = new Point2D.Double(); + } else { + dst = new Point2D.Float(); + } + } + + double x = src.getX(); + double y = src.getY(); + + dst.setLocation(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12); + return dst; + } + + /** + * Applies this AffineTransform to an array of points. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length > src.length or + * dstOff + length > dst.length. + */ + public void transform(Point2D[] src, int srcOff, Point2D[] dst, int dstOff, int length) { + while (--length >= 0) { + Point2D srcPoint = src[srcOff++]; + double x = srcPoint.getX(); + double y = srcPoint.getY(); + Point2D dstPoint = dst[dstOff]; + if (dstPoint == null) { + if (srcPoint instanceof Point2D.Double) { + dstPoint = new Point2D.Double(); + } else { + dstPoint = new Point2D.Float(); + } + } + dstPoint.setLocation(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12); + dst[dstOff++] = dstPoint; + } + } + + /** + * Applies this AffineTransform to a set of points given as an array of + * double values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + */ + public void transform(double[] src, int srcOff, double[] dst, int dstOff, int length) { + int step = 2; + if (src == dst && srcOff < dstOff && dstOff < srcOff + length * 2) { + srcOff = srcOff + length * 2 - 2; + dstOff = dstOff + length * 2 - 2; + step = -2; + } + while (--length >= 0) { + double x = src[srcOff + 0]; + double y = src[srcOff + 1]; + dst[dstOff + 0] = x * m00 + y * m01 + m02; + dst[dstOff + 1] = x * m10 + y * m11 + m12; + srcOff += step; + dstOff += step; + } + } + + /** + * Applies this AffineTransform to a set of points given as an array of + * float values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + */ + public void transform(float[] src, int srcOff, float[] dst, int dstOff, int length) { + int step = 2; + if (src == dst && srcOff < dstOff && dstOff < srcOff + length * 2) { + srcOff = srcOff + length * 2 - 2; + dstOff = dstOff + length * 2 - 2; + step = -2; + } + while (--length >= 0) { + float x = src[srcOff + 0]; + float y = src[srcOff + 1]; + dst[dstOff + 0] = (float)(x * m00 + y * m01 + m02); + dst[dstOff + 1] = (float)(x * m10 + y * m11 + m12); + srcOff += step; + dstOff += step; + } + } + + /** + * Applies this AffineTransform to a set of points given as an array of + * float values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. The destination coordinates + * are given as values of type double. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + */ + public void transform(float[] src, int srcOff, double[] dst, int dstOff, int length) { + while (--length >= 0) { + float x = src[srcOff++]; + float y = src[srcOff++]; + dst[dstOff++] = x * m00 + y * m01 + m02; + dst[dstOff++] = x * m10 + y * m11 + m12; + } + } + + /** + * Applies this AffineTransform to a set of points given as an array of + * double values where every two values in the array give the coordinates of + * a point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. The destination coordinates + * are given as values of type float. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + */ + public void transform(double[] src, int srcOff, float[] dst, int dstOff, int length) { + while (--length >= 0) { + double x = src[srcOff++]; + double y = src[srcOff++]; + dst[dstOff++] = (float)(x * m00 + y * m01 + m02); + dst[dstOff++] = (float)(x * m10 + y * m11 + m12); + } + } + + /** + * Transforms the point according to the linear transformation part of this + * AffineTransformation (without applying the translation). + * + * @param src + * the original point. + * @param dst + * the point object where the result of the delta transform is + * written. + * @return the result of applying the delta transform (linear part only) to + * the original point. + */ + // TODO: is this right? if dst is null, we check what it's an + // instance of? Shouldn't it be src instanceof Point2D.Double? + public Point2D deltaTransform(Point2D src, Point2D dst) { + if (dst == null) { + if (dst instanceof Point2D.Double) { + dst = new Point2D.Double(); + } else { + dst = new Point2D.Float(); + } + } + + double x = src.getX(); + double y = src.getY(); + + dst.setLocation(x * m00 + y * m01, x * m10 + y * m11); + return dst; + } + + /** + * Applies the linear transformation part of this AffineTransform (ignoring + * the translation part) to a set of points given as an array of double + * values where every two values in the array give the coordinates of a + * point; the even-indexed values giving the x coordinates and the + * odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the delta transformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + */ + public void deltaTransform(double[] src, int srcOff, double[] dst, int dstOff, int length) { + while (--length >= 0) { + double x = src[srcOff++]; + double y = src[srcOff++]; + dst[dstOff++] = x * m00 + y * m01; + dst[dstOff++] = x * m10 + y * m11; + } + } + + /** + * Transforms the point according to the inverse of this + * AffineTransformation. + * + * @param src + * the original point. + * @param dst + * the point object where the result of the inverse transform is + * written (may be null). + * @return the result of applying the inverse transform. Inverse transform. + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). + */ + public Point2D inverseTransform(Point2D src, Point2D dst) + throws NoninvertibleTransformException { + double det = getDeterminant(); + if (Math.abs(det) < ZERO) { + // awt.204=Determinant is zero + throw new NoninvertibleTransformException(Messages.getString("awt.204")); //$NON-NLS-1$ + } + + if (dst == null) { + if (src instanceof Point2D.Double) { + dst = new Point2D.Double(); + } else { + dst = new Point2D.Float(); + } + } + + double x = src.getX() - m02; + double y = src.getY() - m12; + + dst.setLocation((x * m11 - y * m01) / det, (y * m00 - x * m10) / det); + return dst; + } + + /** + * Applies the inverse of this AffineTransform to a set of points given as + * an array of double values where every two values in the array give the + * coordinates of a point; the even-indexed values giving the x coordinates + * and the odd-indexed values giving the y coordinates. + * + * @param src + * the array of points to be transformed. + * @param srcOff + * the offset in the source point array of the first point to be + * transformed. + * @param dst + * the point array where the images of the points (after applying + * the inverse of the AffineTransformation) should be placed. + * @param dstOff + * the offset in the destination array where the new values + * should be written. + * @param length + * the number of points to transform. + * @throws ArrayIndexOutOfBoundsException + * if srcOff + length*2 > src.length or + * dstOff + length*2 > dst.length. + * @throws NoninvertibleTransformException + * if this AffineTransform cannot be inverted (the determinant + * of the linear transformation part is zero). + */ + public void inverseTransform(double[] src, int srcOff, double[] dst, int dstOff, int length) + throws NoninvertibleTransformException { + double det = getDeterminant(); + if (Math.abs(det) < ZERO) { + // awt.204=Determinant is zero + throw new NoninvertibleTransformException(Messages.getString("awt.204")); //$NON-NLS-1$ + } + + while (--length >= 0) { + double x = src[srcOff++] - m02; + double y = src[srcOff++] - m12; + dst[dstOff++] = (x * m11 - y * m01) / det; + dst[dstOff++] = (y * m00 - x * m10) / det; + } + } + + /** + * Creates a new shape whose data is given by applying this AffineTransform + * to the specified shape. + * + * @param src + * the original shape whose data is to be transformed. + * @return the new shape found by applying this AffineTransform to the + * original shape. + */ + public Shape createTransformedShape(Shape src) { + if (src == null) { + return null; + } + if (src instanceof GeneralPath) { + return ((GeneralPath)src).createTransformedShape(this); + } + PathIterator path = src.getPathIterator(this); + GeneralPath dst = new GeneralPath(path.getWindingRule()); + dst.append(path, false); + return dst; + } + + @Override + public String toString() { + return getClass().getName() + "[[" + m00 + ", " + m01 + ", " + m02 + "], [" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + + m10 + ", " + m11 + ", " + m12 + "]]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + + @Override + public int hashCode() { + HashCode hash = new HashCode(); + hash.append(m00); + hash.append(m01); + hash.append(m02); + hash.append(m10); + hash.append(m11); + hash.append(m12); + return hash.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof AffineTransform) { + AffineTransform t = (AffineTransform)obj; + return m00 == t.m00 && m01 == t.m01 && m02 == t.m02 && m10 == t.m10 && m11 == t.m11 + && m12 == t.m12; + } + return false; + } + + /** + * Writes the AffineTrassform object to the output steam. + * + * @param stream + * - the output stream. + * @throws IOException + * - if there are I/O errors while writing to the output stream. + */ + private void writeObject(java.io.ObjectOutputStream stream) throws IOException { + stream.defaultWriteObject(); + } + + /** + * Read the AffineTransform object from the input stream. + * + * @param stream + * - the input stream. + * @throws IOException + * - if there are I/O errors while reading from the input + * stream. + * @throws ClassNotFoundException + * - if class could not be found. + */ + private void readObject(java.io.ObjectInputStream stream) throws IOException, + ClassNotFoundException { + stream.defaultReadObject(); + type = TYPE_UNKNOWN; + } + +} diff --git a/app/src/main/java/java/awt/geom/Arc2D.java b/app/src/main/java/java/awt/geom/Arc2D.java new file mode 100644 index 000000000..56f5cd392 --- /dev/null +++ b/app/src/main/java/java/awt/geom/Arc2D.java @@ -0,0 +1,1157 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class Arc2D represents a segment of a curve inscribed in a rectangle. The + * curve is defined by a start angle and an extent angle (the end angle minus + * the start angle) as a pie wedge whose point is in the center of the + * rectangle. The Arc2D as a shape may be either OPEN (including nothing but the + * curved arc segment itself), CHORD (the curved arc segment closed by a + * connecting segment from the end to the beginning of the arc, or PIE (the + * segments from the end of the arc to the center of the rectangle and from the + * center of the rectangle back to the arc's start point are included). + * + * @since Android 1.0 + */ +public abstract class Arc2D extends RectangularShape { + + /** + * The arc type OPEN indicates that the shape includes only the curved arc + * segment. + */ + public final static int OPEN = 0; + + /** + * The arc type CHORD indicates that as a shape the connecting segment from + * the end point of the curved arc to the beginning point is included. + */ + public final static int CHORD = 1; + + /** + * The arc type PIE indicates that as a shape the two segments from the + * arc's endpoint to the center of the rectangle and from the center of the + * rectangle to the arc's endpoint are included. + */ + public final static int PIE = 2; + + /** + * The Class Float is a subclass of Arc2D in which all of the data values + * are given as floats. + * + * @see Arc2D.Double + * @since Android 1.0 + */ + public static class Float extends Arc2D { + + /** + * The x coordinate of the upper left corner of the rectangle that + * contains the arc. + */ + public float x; + + /** + * The y coordinate of the upper left corner of the rectangle that + * contains the arc. + */ + public float y; + + /** + * The width of the rectangle that contains the arc. + */ + public float width; + + /** + * The height of the rectangle that contains the arc. + */ + public float height; + + /** + * The start angle of the arc in degrees. + */ + public float start; + + /** + * The width angle of the arc in degrees. + */ + public float extent; + + /** + * Instantiates a new Arc2D of type OPEN with float values. + */ + public Float() { + super(OPEN); + } + + /** + * Instantiates a new Arc2D of the specified type with float values. + * + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Float(int type) { + super(type); + } + + /** + * Instantiates a Arc2D with the specified float-valued data. + * + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Float(float x, float y, float width, float height, float start, float extent, + int type) { + super(type); + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.start = start; + this.extent = extent; + } + + /** + * Instantiates a new Angle2D with the specified float-valued data and + * the bounding rectangle given by the parameter bounds. + * + * @param bounds + * the bounding rectangle of the Angle2D. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Float(Rectangle2D bounds, float start, float extent, int type) { + super(type); + this.x = (float)bounds.getX(); + this.y = (float)bounds.getY(); + this.width = (float)bounds.getWidth(); + this.height = (float)bounds.getHeight(); + this.start = start; + this.extent = extent; + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public double getAngleStart() { + return start; + } + + @Override + public double getAngleExtent() { + return extent; + } + + @Override + public boolean isEmpty() { + return width <= 0.0f || height <= 0.0f; + } + + @Override + public void setArc(double x, double y, double width, double height, double start, + double extent, int type) { + this.setArcType(type); + this.x = (float)x; + this.y = (float)y; + this.width = (float)width; + this.height = (float)height; + this.start = (float)start; + this.extent = (float)extent; + } + + @Override + public void setAngleStart(double start) { + this.start = (float)start; + } + + @Override + public void setAngleExtent(double extent) { + this.extent = (float)extent; + } + + @Override + protected Rectangle2D makeBounds(double x, double y, double width, double height) { + return new Rectangle2D.Float((float)x, (float)y, (float)width, (float)height); + } + + } + + /** + * The Class Double is a subclass of Arc2D in which all of the data values + * are given as doubles. + * + * @see Arc2D.Float + * @since Android 1.0 + */ + public static class Double extends Arc2D { + + /** + * The x coordinate of the upper left corner of the rectangle that + * contains the arc. + */ + public double x; + + /** + * The y coordinate of the upper left corner of the rectangle that + * contains the arc. + */ + public double y; + + /** + * The width of the rectangle that contains the arc. + */ + public double width; + + /** + * The height of the rectangle that contains the arc. + */ + public double height; + + /** + * The start angle of the arc in degrees. + */ + public double start; + + /** + * The width angle of the arc in degrees. + */ + public double extent; + + /** + * Instantiates a new Arc2D of type OPEN with double values. + */ + public Double() { + super(OPEN); + } + + /** + * Instantiates a new Arc2D of the specified type with double values. + * + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Double(int type) { + super(type); + } + + /** + * Instantiates a Arc2D with the specified double-valued data. + * + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Double(double x, double y, double width, double height, double start, double extent, + int type) { + super(type); + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.start = start; + this.extent = extent; + } + + /** + * Instantiates a new Angle2D with the specified float-valued data and + * the bounding rectangle given by the parameter bounds. + * + * @param bounds + * the bounding rectangle of the Angle2D. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public Double(Rectangle2D bounds, double start, double extent, int type) { + super(type); + this.x = bounds.getX(); + this.y = bounds.getY(); + this.width = bounds.getWidth(); + this.height = bounds.getHeight(); + this.start = start; + this.extent = extent; + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public double getAngleStart() { + return start; + } + + @Override + public double getAngleExtent() { + return extent; + } + + @Override + public boolean isEmpty() { + return width <= 0.0 || height <= 0.0; + } + + @Override + public void setArc(double x, double y, double width, double height, double start, + double extent, int type) { + this.setArcType(type); + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.start = start; + this.extent = extent; + } + + @Override + public void setAngleStart(double start) { + this.start = start; + } + + @Override + public void setAngleExtent(double extent) { + this.extent = extent; + } + + @Override + protected Rectangle2D makeBounds(double x, double y, double width, double height) { + return new Rectangle2D.Double(x, y, width, height); + } + + } + + /** + * The Class Iterator is the subclass of PathIterator that is used to + * traverse the boundary of a shape of type Arc2D. + */ + class Iterator implements PathIterator { + + /** + * The x coordinate of the center of the arc's bounding rectangle. + */ + double x; + + /** + * The y coordinate of the center of the arc's bounding rectangle. + */ + double y; + + /** + * Half of the width of the arc's bounding rectangle (the radius in the + * case of a circular arc). + */ + double width; + + /** + * Half of the height of the arc's bounding rectangle (the radius in the + * case of a circular arc). + */ + double height; + + /** + * The start angle of the arc in degrees. + */ + double angle; + + /** + * The angle extent in degrees. + */ + double extent; + + /** + * The closure type of the arc. + */ + int type; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * The number of arc segments the source arc subdivided to be + * approximated by Bezier curves. Depends on extent value. + */ + int arcCount; + + /** + * The number of line segments. Depends on closure type. + */ + int lineCount; + + /** + * The step to calculate next arc subdivision point. + */ + double step; + + /** + * The temporary value of cosinus of the current angle. + */ + double cos; + + /** + * The temporary value of sinus of the current angle. + */ + double sin; + + /** The coefficient to calculate control points of Bezier curves. */ + double k; + + /** + * The temporary value of x coordinate of the Bezier curve control + * vector. + */ + double kx; + + /** + * The temporary value of y coordinate of the Bezier curve control + * vector. + */ + double ky; + + /** + * The x coordinate of the first path point (MOVE_TO). + */ + double mx; + + /** + * The y coordinate of the first path point (MOVE_TO). + */ + double my; + + /** + * Constructs a new Arc2D.Iterator for given line and transformation + * + * @param a + * the source Arc2D object. + * @param t + * the AffineTransformation. + */ + Iterator(Arc2D a, AffineTransform t) { + if (width < 0 || height < 0) { + arcCount = 0; + lineCount = 0; + index = 1; + return; + } + + this.width = a.getWidth() / 2.0; + this.height = a.getHeight() / 2.0; + this.x = a.getX() + width; + this.y = a.getY() + height; + this.angle = -Math.toRadians(a.getAngleStart()); + this.extent = -a.getAngleExtent(); + this.type = a.getArcType(); + this.t = t; + + if (Math.abs(extent) >= 360.0) { + arcCount = 4; + k = 4.0 / 3.0 * (Math.sqrt(2.0) - 1.0); + step = Math.PI / 2.0; + if (extent < 0.0) { + step = -step; + k = -k; + } + } else { + arcCount = (int)Math.rint(Math.abs(extent) / 90.0); + step = Math.toRadians(extent / arcCount); + k = 4.0 / 3.0 * (1.0 - Math.cos(step / 2.0)) / Math.sin(step / 2.0); + } + + lineCount = 0; + if (type == Arc2D.CHORD) { + lineCount++; + } else if (type == Arc2D.PIE) { + lineCount += 2; + } + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > arcCount + lineCount; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + count = 1; + cos = Math.cos(angle); + sin = Math.sin(angle); + kx = k * width * sin; + ky = k * height * cos; + coords[0] = mx = x + cos * width; + coords[1] = my = y + sin * height; + } else if (index <= arcCount) { + type = SEG_CUBICTO; + count = 3; + coords[0] = mx - kx; + coords[1] = my + ky; + angle += step; + cos = Math.cos(angle); + sin = Math.sin(angle); + kx = k * width * sin; + ky = k * height * cos; + coords[4] = mx = x + cos * width; + coords[5] = my = y + sin * height; + coords[2] = mx + kx; + coords[3] = my - ky; + } else if (index == arcCount + lineCount) { + type = SEG_CLOSE; + count = 0; + } else { + type = SEG_LINETO; + count = 1; + coords[0] = x; + coords[1] = y; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + count = 1; + cos = Math.cos(angle); + sin = Math.sin(angle); + kx = k * width * sin; + ky = k * height * cos; + coords[0] = (float)(mx = x + cos * width); + coords[1] = (float)(my = y + sin * height); + } else if (index <= arcCount) { + type = SEG_CUBICTO; + count = 3; + coords[0] = (float)(mx - kx); + coords[1] = (float)(my + ky); + angle += step; + cos = Math.cos(angle); + sin = Math.sin(angle); + kx = k * width * sin; + ky = k * height * cos; + coords[4] = (float)(mx = x + cos * width); + coords[5] = (float)(my = y + sin * height); + coords[2] = (float)(mx + kx); + coords[3] = (float)(my - ky); + } else if (index == arcCount + lineCount) { + type = SEG_CLOSE; + count = 0; + } else { + type = SEG_LINETO; + count = 1; + coords[0] = (float)x; + coords[1] = (float)y; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + } + + /** + * The closure type of the arc. + */ + private int type; + + /** + * Instantiates a new arc2D. + * + * @param type + * the closure type. + */ + protected Arc2D(int type) { + setArcType(type); + } + + /** + * Takes the double-valued data and creates the corresponding Rectangle2D + * object with values either of type float or of type double depending on + * whether this Arc2D instance is of type Float or Double. + * + * @param x + * the x coordinate of the upper left corner of the bounding + * rectangle. + * @param y + * the y coordinate of the upper left corner of the bounding + * rectangle. + * @param width + * the width of the bounding rectangle. + * @param height + * the height of the bounding rectangle. + * @return the corresponding Rectangle2D object. + */ + protected abstract Rectangle2D makeBounds(double x, double y, double width, double height); + + /** + * Gets the start angle. + * + * @return the start angle. + */ + public abstract double getAngleStart(); + + /** + * Gets the width angle. + * + * @return the width angle. + */ + public abstract double getAngleExtent(); + + /** + * Sets the start angle. + * + * @param start + * the new start angle. + */ + public abstract void setAngleStart(double start); + + /** + * Sets the width angle. + * + * @param extent + * the new width angle. + */ + public abstract void setAngleExtent(double extent); + + /** + * Sets the data values that define the arc. + * + * @param x + * the x coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param y + * the y coordinate of the upper left corner of the rectangle + * that contains the arc. + * @param width + * the width of the rectangle that contains the arc. + * @param height + * the height of the rectangle that contains the arc. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the width angle of the arc in degrees. + * @param type + * the type of the new Arc2D, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public abstract void setArc(double x, double y, double width, double height, double start, + double extent, int type); + + /** + * Gets the arc type, either {@link Arc2D#OPEN}, {@link Arc2D#CHORD}, or + * {@link Arc2D#PIE}. + * + * @return the arc type. + */ + public int getArcType() { + return type; + } + + /** + * Sets the arc type, either {@link Arc2D#OPEN}, {@link Arc2D#CHORD}, or + * {@link Arc2D#PIE}. + * + * @param type + * the new arc type. + */ + public void setArcType(int type) { + if (type != OPEN && type != CHORD && type != PIE) { + // awt.205=Invalid type of Arc: {0} + throw new IllegalArgumentException(Messages.getString("awt.205", type)); //$NON-NLS-1$ + } + this.type = type; + } + + /** + * Gets the start point of the arc as a Point2D. + * + * @return the start point of the curved arc segment. + */ + public Point2D getStartPoint() { + double a = Math.toRadians(getAngleStart()); + return new Point2D.Double(getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, getY() + + (1.0 - Math.sin(a)) * getHeight() / 2.0); + } + + /** + * Gets the end point of the arc as a Point2D. + * + * @return the end point of the curved arc segment. + */ + public Point2D getEndPoint() { + double a = Math.toRadians(getAngleStart() + getAngleExtent()); + return new Point2D.Double(getX() + (1.0 + Math.cos(a)) * getWidth() / 2.0, getY() + + (1.0 - Math.sin(a)) * getHeight() / 2.0); + } + + public Rectangle2D getBounds2D() { + if (isEmpty()) { + return makeBounds(getX(), getY(), getWidth(), getHeight()); + } + double rx1 = getX(); + double ry1 = getY(); + double rx2 = rx1 + getWidth(); + double ry2 = ry1 + getHeight(); + + Point2D p1 = getStartPoint(); + Point2D p2 = getEndPoint(); + + double bx1 = containsAngle(180.0) ? rx1 : Math.min(p1.getX(), p2.getX()); + double by1 = containsAngle(90.0) ? ry1 : Math.min(p1.getY(), p2.getY()); + double bx2 = containsAngle(0.0) ? rx2 : Math.max(p1.getX(), p2.getX()); + double by2 = containsAngle(270.0) ? ry2 : Math.max(p1.getY(), p2.getY()); + + if (type == PIE) { + double cx = getCenterX(); + double cy = getCenterY(); + bx1 = Math.min(bx1, cx); + by1 = Math.min(by1, cy); + bx2 = Math.max(bx2, cx); + by2 = Math.max(by2, cy); + } + return makeBounds(bx1, by1, bx2 - bx1, by2 - by1); + } + + @Override + public void setFrame(double x, double y, double width, double height) { + setArc(x, y, width, height, getAngleStart(), getAngleExtent(), type); + } + + /** + * Sets the data that defines the arc. + * + * @param point + * the upper left corner of the bounding rectangle. + * @param size + * the size of the bounding rectangle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public void setArc(Point2D point, Dimension2D size, double start, double extent, int type) { + setArc(point.getX(), point.getY(), size.getWidth(), size.getHeight(), start, extent, type); + } + + /** + * Sets the data that defines the arc. + * + * @param rect + * the arc's bounding rectangle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public void setArc(Rectangle2D rect, double start, double extent, int type) { + setArc(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight(), start, extent, type); + } + + /** + * Sets the data that defines the arc by copying it from another Arc2D. + * + * @param arc + * the arc whose data is copied into this arc. + */ + public void setArc(Arc2D arc) { + setArc(arc.getX(), arc.getY(), arc.getWidth(), arc.getHeight(), arc.getAngleStart(), arc + .getAngleExtent(), arc.getArcType()); + } + + /** + * Sets the data for a circular arc by giving its center and radius. + * + * @param x + * the x coordinate of the center of the circle. + * @param y + * the y coordinate of the center of the circle. + * @param radius + * the radius of the circle. + * @param start + * the start angle of the arc in degrees. + * @param extent + * the angle width of the arc in degrees. + * @param type + * the closure type, either {@link Arc2D#OPEN}, + * {@link Arc2D#CHORD}, or {@link Arc2D#PIE}. + */ + public void setArcByCenter(double x, double y, double radius, double start, double extent, + int type) { + setArc(x - radius, y - radius, radius * 2.0, radius * 2.0, start, extent, type); + } + + /** + * Sets the arc data for a circular arc based on two tangent lines and the + * radius. The two tangent lines are the lines from p1 to p2 and from p2 to + * p3, which determine a unique circle with the given radius. The start and + * end points of the arc are the points where the circle touches the two + * lines, and the arc itself is the shorter of the two circle segments + * determined by the two points (in other words, it is the piece of the + * circle that is closer to the lines' intersection point p2 and forms a + * concave shape with the segments from p1 to p2 and from p2 to p3). + * + * @param p1 + * a point which determines one of the two tangent lines (with + * p2). + * @param p2 + * the point of intersection of the two tangent lines. + * @param p3 + * a point which determines one of the two tangent lines (with + * p2). + * @param radius + * the radius of the circular arc. + */ + public void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius) { + // Used simple geometric calculations of arc center, radius and angles + // by tangents + double a1 = -Math.atan2(p1.getY() - p2.getY(), p1.getX() - p2.getX()); + double a2 = -Math.atan2(p3.getY() - p2.getY(), p3.getX() - p2.getX()); + double am = (a1 + a2) / 2.0; + double ah = a1 - am; + double d = radius / Math.abs(Math.sin(ah)); + double x = p2.getX() + d * Math.cos(am); + double y = p2.getY() - d * Math.sin(am); + ah = ah >= 0.0 ? Math.PI * 1.5 - ah : Math.PI * 0.5 - ah; + a1 = getNormAngle(Math.toDegrees(am - ah)); + a2 = getNormAngle(Math.toDegrees(am + ah)); + double delta = a2 - a1; + if (delta <= 0.0) { + delta += 360.0; + } + setArcByCenter(x, y, radius, a1, delta, type); + } + + /** + * Sets a new start angle to be the angle given by the the vector from the + * current center point to the specified point. + * + * @param point + * the point that determines the new start angle. + */ + public void setAngleStart(Point2D point) { + double angle = Math.atan2(point.getY() - getCenterY(), point.getX() - getCenterX()); + setAngleStart(getNormAngle(-Math.toDegrees(angle))); + } + + /** + * Sets the angles in terms of vectors from the current arc center to the + * points (x1, y1) and (x2, y2). The start angle is given by the vector from + * the current center to the point (x1, y1) and the end angle is given by + * the vector from the center to the point (x2, y2). + * + * @param x1 + * the x coordinate of the point whose vector from the center + * point determines the new start angle of the arc. + * @param y1 + * the y coordinate of the point whose vector from the center + * point determines the new start angle of the arc. + * @param x2 + * the x coordinate of the point whose vector from the center + * point determines the new end angle of the arc. + * @param y2 + * the y coordinate of the point whose vector from the center + * point determines the new end angle of the arc. + */ + public void setAngles(double x1, double y1, double x2, double y2) { + double cx = getCenterX(); + double cy = getCenterY(); + double a1 = getNormAngle(-Math.toDegrees(Math.atan2(y1 - cy, x1 - cx))); + double a2 = getNormAngle(-Math.toDegrees(Math.atan2(y2 - cy, x2 - cx))); + a2 -= a1; + if (a2 <= 0.0) { + a2 += 360.0; + } + setAngleStart(a1); + setAngleExtent(a2); + } + + /** + * Sets the angles in terms of vectors from the current arc center to the + * points p1 and p2. The start angle is given by the vector from the current + * center to the point p1 and the end angle is given by the vector from the + * center to the point p2. + * + * @param p1 + * the point whose vector from the center point determines the + * new start angle of the arc. + * @param p2 + * the point whose vector from the center point determines the + * new end angle of the arc. + */ + public void setAngles(Point2D p1, Point2D p2) { + setAngles(p1.getX(), p1.getY(), p2.getX(), p2.getY()); + } + + /** + * Normalizes the angle by removing extra winding (past 360 degrees) and + * placing it in the positive degree range. + * + * @param angle + * the source angle in degrees. + * @return an angle between 0 and 360 degrees which corresponds to the same + * direction vector as the source angle. + */ + double getNormAngle(double angle) { + double n = Math.floor(angle / 360.0); + return angle - n * 360.0; + } + + /** + * Determines whether the given angle is contained in the span of the arc. + * + * @param angle + * the angle to test in degrees. + * @return true, if the given angle is between the start angle and the end + * angle of the arc. + */ + public boolean containsAngle(double angle) { + double extent = getAngleExtent(); + if (extent >= 360.0) { + return true; + } + angle = getNormAngle(angle); + double a1 = getNormAngle(getAngleStart()); + double a2 = a1 + extent; + if (a2 > 360.0) { + return angle >= a1 || angle <= a2 - 360.0; + } + if (a2 < 0.0) { + return angle >= a2 + 360.0 || angle <= a1; + } + return extent > 0.0 ? a1 <= angle && angle <= a2 : a2 <= angle && angle <= a1; + } + + public boolean contains(double px, double py) { + // Normalize point + double nx = (px - getX()) / getWidth() - 0.5; + double ny = (py - getY()) / getHeight() - 0.5; + + if ((nx * nx + ny * ny) > 0.25) { + return false; + } + + double extent = getAngleExtent(); + double absExtent = Math.abs(extent); + if (absExtent >= 360.0) { + return true; + } + + boolean containsAngle = containsAngle(Math.toDegrees(-Math.atan2(ny, nx))); + if (type == PIE) { + return containsAngle; + } + if (absExtent <= 180.0 && !containsAngle) { + return false; + } + + Line2D l = new Line2D.Double(getStartPoint(), getEndPoint()); + int ccw1 = l.relativeCCW(px, py); + int ccw2 = l.relativeCCW(getCenterX(), getCenterY()); + return ccw1 == 0 || ccw2 == 0 || ((ccw1 + ccw2) == 0 ^ absExtent > 180.0); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + + if (!(contains(rx, ry) && contains(rx + rw, ry) && contains(rx + rw, ry + rh) && contains( + rx, ry + rh))) { + return false; + } + + double absExtent = Math.abs(getAngleExtent()); + if (type != PIE || absExtent <= 180.0 || absExtent >= 360.0) { + return true; + } + + Rectangle2D r = new Rectangle2D.Double(rx, ry, rw, rh); + + double cx = getCenterX(); + double cy = getCenterY(); + if (r.contains(cx, cy)) { + return false; + } + + Point2D p1 = getStartPoint(); + Point2D p2 = getEndPoint(); + + return !r.intersectsLine(cx, cy, p1.getX(), p1.getY()) + && !r.intersectsLine(cx, cy, p2.getX(), p2.getY()); + } + + @Override + public boolean contains(Rectangle2D rect) { + return contains(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight()); + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + + if (isEmpty() || rw <= 0.0 || rh <= 0.0) { + return false; + } + + // Check: Does arc contain rectangle's points + if (contains(rx, ry) || contains(rx + rw, ry) || contains(rx, ry + rh) + || contains(rx + rw, ry + rh)) { + return true; + } + + double cx = getCenterX(); + double cy = getCenterY(); + Point2D p1 = getStartPoint(); + Point2D p2 = getEndPoint(); + Rectangle2D r = new Rectangle2D.Double(rx, ry, rw, rh); + + // Check: Does rectangle contain arc's points + if (r.contains(p1) || r.contains(p2) || (type == PIE && r.contains(cx, cy))) { + return true; + } + + if (type == PIE) { + if (r.intersectsLine(p1.getX(), p1.getY(), cx, cy) + || r.intersectsLine(p2.getX(), p2.getY(), cx, cy)) { + return true; + } + } else { + if (r.intersectsLine(p1.getX(), p1.getY(), p2.getX(), p2.getY())) { + return true; + } + } + + // Nearest rectangle point + double nx = cx < rx ? rx : (cx > rx + rw ? rx + rw : cx); + double ny = cy < ry ? ry : (cy > ry + rh ? ry + rh : cy); + return contains(nx, ny); + } + + public PathIterator getPathIterator(AffineTransform at) { + return new Iterator(this, at); + } + +} diff --git a/app/src/main/java/java/awt/geom/Area.java b/app/src/main/java/java/awt/geom/Area.java new file mode 100644 index 000000000..e6619e349 --- /dev/null +++ b/app/src/main/java/java/awt/geom/Area.java @@ -0,0 +1,330 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.geom.PathIterator; +import java.awt.geom.Rectangle2D; +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.luni.util.NotImplementedException; + +/** + * The Class Area provides a minimal implementation for a generic shape. + * + * @since Android 1.0 + */ +public class Area implements Shape, Cloneable { + + /** + * The source Shape object. + */ + Shape s; + + /** + * The Class NullIterator. + */ + private static class NullIterator implements PathIterator { + + /** + * Instantiates a new null iterator. + */ + NullIterator() { + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return true; + } + + public void next() { + // nothing + } + + public int currentSegment(double[] coords) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + + public int currentSegment(float[] coords) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + + } + + /** + * Instantiates a new area with no data. + */ + public Area() { + } + + /** + * Instantiates a new area with data given by the specified shape. + * + * @param s + * the shape that gives the data for this Area. + */ + public Area(Shape s) { + if (s == null) { + throw new NullPointerException(); + } + this.s = s; + } + + public boolean contains(double x, double y) { + return s == null ? false : s.contains(x, y); + } + + public boolean contains(double x, double y, double width, double height) { + return s == null ? false : s.contains(x, y, width, height); + } + + public boolean contains(Point2D p) { + if (p == null) { + throw new NullPointerException(); + } + return s == null ? false : s.contains(p); + } + + public boolean contains(Rectangle2D r) { + if (r == null) { + throw new NullPointerException(); + } + return s == null ? false : s.contains(r); + } + + /** + * Tests whether the object is equal to this Area. + * + * @param obj + * the object to compare. + * @return true, if successful. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean equals(Area obj) throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + public boolean intersects(double x, double y, double width, double height) { + return s == null ? false : s.intersects(x, y, width, height); + } + + public boolean intersects(Rectangle2D r) { + if (r == null) { + throw new NullPointerException(); + } + return s == null ? false : s.intersects(r); + } + + public Rectangle getBounds() { + return s == null ? new Rectangle() : s.getBounds(); + } + + public Rectangle2D getBounds2D() { + return s == null ? new Rectangle2D.Double() : s.getBounds2D(); + } + + public PathIterator getPathIterator(AffineTransform t) { + return s == null ? new NullIterator() : s.getPathIterator(t); + } + + public PathIterator getPathIterator(AffineTransform t, double flatness) { + return s == null ? new NullIterator() : s.getPathIterator(t, flatness); + } + + /** + * Adds the specified area to this area. + * + * @param area + * the area to add to this area. + * @throws NotImplementedException + * if this method is not implemented. + */ + public void add(Area area) throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Performs an exclusive or operation between this shape and the specified + * shape. + * + * @param area + * the area to XOR against this area. + * @throws NotImplementedException + * if this method is not implemented. + */ + public void exclusiveOr(Area area) throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Extracts a Rectangle2D from the source shape if the underlying shape data + * describes a rectangle. + * + * @return a Rectangle2D object if the source shape is rectangle, or null if + * shape is empty or not rectangle. + */ + Rectangle2D extractRectangle() { + if (s == null) { + return null; + } + float[] points = new float[12]; + int count = 0; + PathIterator p = s.getPathIterator(null); + float[] coords = new float[6]; + while (!p.isDone()) { + int type = p.currentSegment(coords); + if (count > 12 || type == PathIterator.SEG_QUADTO || type == PathIterator.SEG_CUBICTO) { + return null; + } + points[count++] = coords[0]; + points[count++] = coords[1]; + p.next(); + } + if (points[0] == points[6] && points[6] == points[8] && points[2] == points[4] + && points[1] == points[3] && points[3] == points[9] && points[5] == points[7]) { + return new Rectangle2D.Float(points[0], points[1], points[2] - points[0], points[7] + - points[1]); + } + return null; + } + + /** + * Reduces the size of this Area by intersecting it with the specified Area + * if they are both rectangles. + * + * @see java.awt.geom.Rectangle2D#intersect(Rectangle2D, Rectangle2D, + * Rectangle2D) + * @param area + * the area. + */ + public void intersect(Area area) { + Rectangle2D src1 = extractRectangle(); + Rectangle2D src2 = area.extractRectangle(); + if (src1 != null && src2 != null) { + Rectangle2D.intersect(src1, src2, (Rectangle2D)s); + } + } + + /** + * Subtract the specified area from this area. + * + * @param area + * the area to subtract. + * @throws NotImplementedException + * if this method is not implemented. + */ + public void subtract(Area area) throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Checks if this Area is empty. + * + * @return true, if this Area is empty. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean isEmpty() throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Checks if this Area is polygonal. + * + * @return true, if this Area is polygonal. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean isPolygonal() throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Checks if this Area is rectangular. + * + * @return true, if this Area is rectangular. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean isRectangular() throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Checks if this Area is singular. + * + * @return true, if this Area is singular. + * @throws NotImplementedException + * if this method is not implemented. + */ + public boolean isSingular() throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Resets the data of this Area. + * + * @throws NotImplementedException + * if this method is not implemented. + */ + public void reset() throws org.apache.harmony.luni.util.NotImplementedException { + throw new RuntimeException("Not implemented"); //$NON-NLS-1$ + } + + /** + * Transforms the data of this Area according to the specified + * AffineTransform. + * + * @param t + * the transform to use to transform the data. + */ + public void transform(AffineTransform t) { + s = t.createTransformedShape(s); + } + + /** + * Creates a new Area that is the result of transforming the data of this + * Area according to the specified AffineTransform. + * + * @param t + * the transform to use to transform the data. + * @return the new Area that is the result of transforming the data of this + * Area according to the specified AffineTransform. + */ + public Area createTransformedArea(AffineTransform t) { + return s == null ? new Area() : new Area(t.createTransformedShape(s)); + } + + @Override + public Object clone() { + return new Area(this); + } + +} diff --git a/app/src/main/java/java/awt/geom/CubicCurve2D.java b/app/src/main/java/java/awt/geom/CubicCurve2D.java new file mode 100644 index 000000000..1ddedf39a --- /dev/null +++ b/app/src/main/java/java/awt/geom/CubicCurve2D.java @@ -0,0 +1,1047 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.gl.Crossing; +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class CubicCurve2D is a Shape that represents a segment of a quadratic + * (Bezier) curve. The curved segment is determined by four points: a start + * point, an end point, and two control points. The control points give + * information about the tangent and next derivative at the endpoints according + * to the standard theory of Bezier curves. For more information on Bezier + * curves, see this + * article. + * + * @since Android 1.0 + */ +public abstract class CubicCurve2D implements Shape, Cloneable { + + /** + * The Class Float is the subclass of CubicCurve2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends CubicCurve2D { + + /** + * The x coordinate of the starting point. + */ + public float x1; + + /** + * The y coordinate of the starting point. + */ + public float y1; + + /** + * The x coordinate of the first control point. + */ + public float ctrlx1; + + /** + * The y coordinate of the first control point. + */ + public float ctrly1; + + /** + * The x coordinate of the second control point. + */ + public float ctrlx2; + + /** + * The y coordinate of the second control point. + */ + public float ctrly2; + + /** + * The x coordinate of the end point. + */ + public float x2; + + /** + * The y coordinate of the end point. + */ + public float y2; + + /** + * Instantiates a new float-valued CubicCurve2D with all coordinate + * values set to zero. + */ + public Float() { + } + + /** + * Instantiates a new float-valued CubicCurve2D with the specified + * coordinate values. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, + float x2, float y2) { + setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getCtrlX1() { + return ctrlx1; + } + + @Override + public double getCtrlY1() { + return ctrly1; + } + + @Override + public double getCtrlX2() { + return ctrlx2; + } + + @Override + public double getCtrlY2() { + return ctrly2; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Float(x1, y1); + } + + @Override + public Point2D getCtrlP1() { + return new Point2D.Float(ctrlx1, ctrly1); + } + + @Override + public Point2D getCtrlP2() { + return new Point2D.Float(ctrlx2, ctrly2); + } + + @Override + public Point2D getP2() { + return new Point2D.Float(x2, y2); + } + + @Override + public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { + this.x1 = (float)x1; + this.y1 = (float)y1; + this.ctrlx1 = (float)ctrlx1; + this.ctrly1 = (float)ctrly1; + this.ctrlx2 = (float)ctrlx2; + this.ctrly2 = (float)ctrly2; + this.x2 = (float)x2; + this.y2 = (float)y2; + } + + /** + * Sets the data values of the curve. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public void setCurve(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, + float ctrly2, float x2, float y2) { + this.x1 = x1; + this.y1 = y1; + this.ctrlx1 = ctrlx1; + this.ctrly1 = ctrly1; + this.ctrlx2 = ctrlx2; + this.ctrly2 = ctrly2; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + float rx1 = Math.min(Math.min(x1, x2), Math.min(ctrlx1, ctrlx2)); + float ry1 = Math.min(Math.min(y1, y2), Math.min(ctrly1, ctrly2)); + float rx2 = Math.max(Math.max(x1, x2), Math.max(ctrlx1, ctrlx2)); + float ry2 = Math.max(Math.max(y1, y2), Math.max(ctrly1, ctrly2)); + return new Rectangle2D.Float(rx1, ry1, rx2 - rx1, ry2 - ry1); + } + } + + /** + * The Class Double is the subclass of CubicCurve2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends CubicCurve2D { + + /** + * The x coordinate of the starting point. + */ + public double x1; + + /** + * The y coordinate of the starting point. + */ + public double y1; + + /** + * The x coordinate of the first control point. + */ + public double ctrlx1; + + /** + * The y coordinate of the first control point. + */ + public double ctrly1; + + /** + * The x coordinate of the second control point. + */ + public double ctrlx2; + + /** + * The y coordinate of the second control point. + */ + public double ctrly2; + + /** + * The x coordinate of the end point. + */ + public double x2; + + /** + * The y coordinate of the end point. + */ + public double y2; + + /** + * Instantiates a new double-valued CubicCurve2D with all coordinate + * values set to zero. + */ + public Double() { + } + + /** + * Instantiates a new double-valued CubicCurve2D with the specified + * coordinate values. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public Double(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { + setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getCtrlX1() { + return ctrlx1; + } + + @Override + public double getCtrlY1() { + return ctrly1; + } + + @Override + public double getCtrlX2() { + return ctrlx2; + } + + @Override + public double getCtrlY2() { + return ctrly2; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Double(x1, y1); + } + + @Override + public Point2D getCtrlP1() { + return new Point2D.Double(ctrlx1, ctrly1); + } + + @Override + public Point2D getCtrlP2() { + return new Point2D.Double(ctrlx2, ctrly2); + } + + @Override + public Point2D getP2() { + return new Point2D.Double(x2, y2); + } + + @Override + public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, + double ctrly2, double x2, double y2) { + this.x1 = x1; + this.y1 = y1; + this.ctrlx1 = ctrlx1; + this.ctrly1 = ctrly1; + this.ctrlx2 = ctrlx2; + this.ctrly2 = ctrly2; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + double rx1 = Math.min(Math.min(x1, x2), Math.min(ctrlx1, ctrlx2)); + double ry1 = Math.min(Math.min(y1, y2), Math.min(ctrly1, ctrly2)); + double rx2 = Math.max(Math.max(x1, x2), Math.max(ctrlx1, ctrlx2)); + double ry2 = Math.max(Math.max(y1, y2), Math.max(ctrly1, ctrly2)); + return new Rectangle2D.Double(rx1, ry1, rx2 - rx1, ry2 - ry1); + } + } + + /* + * CubicCurve2D path iterator + */ + /** + * The Iterator class for the Shape CubicCurve2D. + */ + class Iterator implements PathIterator { + + /** + * The source CubicCurve2D object. + */ + CubicCurve2D c; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new CubicCurve2D.Iterator for given line and + * transformation + * + * @param c + * the source CubicCurve2D object. + * @param t + * the affine transformation object. + */ + Iterator(CubicCurve2D c, AffineTransform t) { + this.c = c; + this.t = t; + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > 1; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = c.getX1(); + coords[1] = c.getY1(); + count = 1; + } else { + type = SEG_CUBICTO; + coords[0] = c.getCtrlX1(); + coords[1] = c.getCtrlY1(); + coords[2] = c.getCtrlX2(); + coords[3] = c.getCtrlY2(); + coords[4] = c.getX2(); + coords[5] = c.getY2(); + count = 3; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = (float)c.getX1(); + coords[1] = (float)c.getY1(); + count = 1; + } else { + type = SEG_CUBICTO; + coords[0] = (float)c.getCtrlX1(); + coords[1] = (float)c.getCtrlY1(); + coords[2] = (float)c.getCtrlX2(); + coords[3] = (float)c.getCtrlY2(); + coords[4] = (float)c.getX2(); + coords[5] = (float)c.getY2(); + count = 3; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + } + + /** + * Instantiates a new 2-D cubic curve. + */ + protected CubicCurve2D() { + } + + /** + * Gets the x coordinate of the starting point. + * + * @return the x coordinate of the starting point. + */ + public abstract double getX1(); + + /** + * Gets the y coordinate of the starting point. + * + * @return the y coordinate of the starting point. + */ + public abstract double getY1(); + + /** + * Gets the starting point. + * + * @return the starting point. + */ + public abstract Point2D getP1(); + + /** + * Gets the x coordinate of the first control point. + * + * @return the x coordinate of the first control point. + */ + public abstract double getCtrlX1(); + + /** + * Gets the y coordinate of the first control point. + * + * @return the y coordinate of the first control point. + */ + public abstract double getCtrlY1(); + + /** + * Gets the second control point. + * + * @return the second control point. + */ + public abstract Point2D getCtrlP1(); + + /** + * Gets the x coordinate of the second control point. + * + * @return the x coordinate of the second control point + */ + public abstract double getCtrlX2(); + + /** + * Gets the y coordinate of the second control point. + * + * @return the y coordinate of the second control point + */ + public abstract double getCtrlY2(); + + /** + * Gets the second control point. + * + * @return the second control point. + */ + public abstract Point2D getCtrlP2(); + + /** + * Gets the x coordinate of the end point. + * + * @return the x coordinate of the end point. + */ + public abstract double getX2(); + + /** + * Gets the y coordinate of the end point. + * + * @return the y coordinate of the end point. + */ + public abstract double getY2(); + + /** + * Gets the end point. + * + * @return the end point. + */ + public abstract Point2D getP2(); + + /** + * Sets the data of the curve. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, + double ctrlx2, double ctrly2, double x2, double y2); + + /** + * Sets the data of the curve as point objects. + * + * @param p1 + * the starting point. + * @param cp1 + * the first control point. + * @param cp2 + * the second control point. + * @param p2 + * the end point. + * @throws NullPointerException + * if any of the points is null. + */ + public void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2) { + setCurve(p1.getX(), p1.getY(), cp1.getX(), cp1.getY(), cp2.getX(), cp2.getY(), p2.getX(), + p2.getY()); + } + + /** + * Sets the data of the curve by reading the data from an array of values. + * The values are read in the same order as the arguments of the method + * {@link CubicCurve2D#setCurve(double, double, double, double, double, double, double, double)} + * . + * + * @param coords + * the array of values containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 8. + * @throws NullPointerException + * if the coordinate array is null. + */ + public void setCurve(double[] coords, int offset) { + setCurve(coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], + coords[offset + 4], coords[offset + 5], coords[offset + 6], coords[offset + 7]); + } + + /** + * Sets the data of the curve by reading the data from an array of points. + * The values are read in the same order as the arguments of the method + * {@link CubicCurve2D#setCurve(Point2D, Point2D, Point2D, Point2D)} + * + * @param points + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code points.length} < offset + . + * @throws NullPointerException + * if the point array is null. + */ + public void setCurve(Point2D[] points, int offset) { + setCurve(points[offset + 0].getX(), points[offset + 0].getY(), points[offset + 1].getX(), + points[offset + 1].getY(), points[offset + 2].getX(), points[offset + 2].getY(), + points[offset + 3].getX(), points[offset + 3].getY()); + } + + /** + * Sets the data of the curve by copying it from another CubicCurve2D. + * + * @param curve + * the curve to copy the data points from. + * @throws NullPointerException + * if the curve is null. + */ + public void setCurve(CubicCurve2D curve) { + setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX1(), curve.getCtrlY1(), curve + .getCtrlX2(), curve.getCtrlY2(), curve.getX2(), curve.getY2()); + } + + /** + * Gets the square of the flatness of this curve, where the flatness is the + * maximum distance from the curves control points to the line segment + * connecting the two points. + * + * @return the square of the flatness. + */ + public double getFlatnessSq() { + return getFlatnessSq(getX1(), getY1(), getCtrlX1(), getCtrlY1(), getCtrlX2(), getCtrlY2(), + getX2(), getY2()); + } + + /** + * Gets the square of the flatness of the cubic curve segment defined by the + * specified values. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + * @return the square of the flatness. + */ + public static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, + double ctrlx2, double ctrly2, double x2, double y2) { + return Math.max(Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx1, ctrly1), Line2D.ptSegDistSq(x1, + y1, x2, y2, ctrlx2, ctrly2)); + } + + /** + * Gets the square of the flatness of the cubic curve segment defined by the + * specified values. The values are read in the same order as the arguments + * of the method + * {@link CubicCurve2D#getFlatnessSq(double, double, double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @return the square of the flatness. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + . + * @throws NullPointerException + * if the point array is null. + */ + public static double getFlatnessSq(double coords[], int offset) { + return getFlatnessSq(coords[offset + 0], coords[offset + 1], coords[offset + 2], + coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], + coords[offset + 7]); + } + + /** + * Gets the flatness of this curve, where the flatness is the maximum + * distance from the curves control points to the line segment connecting + * the two points. + * + * @return the flatness of this curve. + */ + public double getFlatness() { + return getFlatness(getX1(), getY1(), getCtrlX1(), getCtrlY1(), getCtrlX2(), getCtrlY2(), + getX2(), getY2()); + } + + /** + * Gets the flatness of the cubic curve segment defined by the specified + * values. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param ctrlx1 + * the x coordinate of the first control point. + * @param ctrly1 + * the y coordinate of the first control point. + * @param ctrlx2 + * the x coordinate of the second control point. + * @param ctrly2 + * the y coordinate of the second control point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + * @return the flatness. + */ + public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, + double ctrlx2, double ctrly2, double x2, double y2) { + return Math.sqrt(getFlatnessSq(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2)); + } + + /** + * Gets the flatness of the cubic curve segment defined by the specified + * values. The values are read in the same order as the arguments of the + * method + * {@link CubicCurve2D#getFlatness(double, double, double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @return the flatness. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + . + * @throws NullPointerException + * if the point array is null. + */ + public static double getFlatness(double coords[], int offset) { + return getFlatness(coords[offset + 0], coords[offset + 1], coords[offset + 2], + coords[offset + 3], coords[offset + 4], coords[offset + 5], coords[offset + 6], + coords[offset + 7]); + } + + /** + * Creates the data for two cubic curves by dividing this curve in two. The + * division point is the point on the curve that is closest to the average + * of curve's two control points. The two new control points (nearest the + * new endpoint) are computed by averaging the original control points with + * the new endpoint. The data of this curve is left unchanged. + * + * @param left + * the CubicCurve2D where the left (start) segment's data is + * written. + * @param right + * the CubicCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. + */ + public void subdivide(CubicCurve2D left, CubicCurve2D right) { + subdivide(this, left, right); + } + + /** + * Creates the data for two cubic curves by dividing the specified curve in + * two. The division point is the point on the curve that is closest to the + * average of curve's two control points. The two new control points + * (nearest the new endpoint) are computed by averaging the original control + * points with the new endpoint. The data of the source curve is left + * unchanged. + * + * @param src + * the original curve to be divided in two. + * @param left + * the CubicCurve2D where the left (start) segment's data is + * written. + * @param right + * the CubicCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. + */ + public static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right) { + double x1 = src.getX1(); + double y1 = src.getY1(); + double cx1 = src.getCtrlX1(); + double cy1 = src.getCtrlY1(); + double cx2 = src.getCtrlX2(); + double cy2 = src.getCtrlY2(); + double x2 = src.getX2(); + double y2 = src.getY2(); + double cx = (cx1 + cx2) / 2.0; + double cy = (cy1 + cy2) / 2.0; + cx1 = (x1 + cx1) / 2.0; + cy1 = (y1 + cy1) / 2.0; + cx2 = (x2 + cx2) / 2.0; + cy2 = (y2 + cy2) / 2.0; + double ax = (cx1 + cx) / 2.0; + double ay = (cy1 + cy) / 2.0; + double bx = (cx2 + cx) / 2.0; + double by = (cy2 + cy) / 2.0; + cx = (ax + bx) / 2.0; + cy = (ay + by) / 2.0; + if (left != null) { + left.setCurve(x1, y1, cx1, cy1, ax, ay, cx, cy); + } + if (right != null) { + right.setCurve(cx, cy, bx, by, cx2, cy2, x2, y2); + } + } + + /** + * Creates the data for two cubic curves by dividing the specified curve in + * two. The division point is the point on the curve that is closest to the + * average of curve's two control points. The two new control points + * (nearest the new endpoint) are computed by averaging the original control + * points with the new endpoint. The data of the source curve is left + * unchanged. The data for the three curves is read/written in the usual + * order: { x1, y1, ctrlx1, ctrly1, ctrlx2, crtry2, x2, y3 } + * + * @param src + * the array that gives the data values for the source curve. + * @param srcOff + * the offset in the src array to read the values from. + * @param left + * the array where the coordinates of the start curve should be + * written. + * @param leftOff + * the offset in the left array to start writing the values. + * @param right + * the array where the coordinates of the end curve should be + * written. + * @param rightOff + * the offset in the right array to start writing the values. + * @throws ArrayIndexOutOfBoundsException + * if src.length < srcoff + 8 or if left.length < leftOff + 8 or + * if right.length < rightOff + 8. + * @throws NullPointerException + * if one of the arrays is null. + */ + public static void subdivide(double src[], int srcOff, double left[], int leftOff, + double right[], int rightOff) { + double x1 = src[srcOff + 0]; + double y1 = src[srcOff + 1]; + double cx1 = src[srcOff + 2]; + double cy1 = src[srcOff + 3]; + double cx2 = src[srcOff + 4]; + double cy2 = src[srcOff + 5]; + double x2 = src[srcOff + 6]; + double y2 = src[srcOff + 7]; + double cx = (cx1 + cx2) / 2.0; + double cy = (cy1 + cy2) / 2.0; + cx1 = (x1 + cx1) / 2.0; + cy1 = (y1 + cy1) / 2.0; + cx2 = (x2 + cx2) / 2.0; + cy2 = (y2 + cy2) / 2.0; + double ax = (cx1 + cx) / 2.0; + double ay = (cy1 + cy) / 2.0; + double bx = (cx2 + cx) / 2.0; + double by = (cy2 + cy) / 2.0; + cx = (ax + bx) / 2.0; + cy = (ay + by) / 2.0; + if (left != null) { + left[leftOff + 0] = x1; + left[leftOff + 1] = y1; + left[leftOff + 2] = cx1; + left[leftOff + 3] = cy1; + left[leftOff + 4] = ax; + left[leftOff + 5] = ay; + left[leftOff + 6] = cx; + left[leftOff + 7] = cy; + } + if (right != null) { + right[rightOff + 0] = cx; + right[rightOff + 1] = cy; + right[rightOff + 2] = bx; + right[rightOff + 3] = by; + right[rightOff + 4] = cx2; + right[rightOff + 5] = cy2; + right[rightOff + 6] = x2; + right[rightOff + 7] = y2; + } + } + + /** + * Finds the roots of the cubic polynomial. This is accomplished by finding + * the (real) values of x that solve the following equation: eqn[3]*x*x*x + + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written back into + * the array eqn starting from the index 0 in the array. The return value + * tells how many array elements have been changed by this method call. + * + * @param eqn + * an array containing the coefficients of the cubic polynomial + * to solve. + * @return the number of roots of the cubic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if eqn.length < 4. + * @throws NullPointerException + * if the array is null. + */ + public static int solveCubic(double eqn[]) { + return solveCubic(eqn, eqn); + } + + /** + * Finds the roots of the cubic polynomial. This is accomplished by finding + * the (real) values of x that solve the following equation: eqn[3]*x*x*x + + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written into the + * array res starting from the index 0 in the array. The return value tells + * how many array elements have been changed by this method call. + * + * @param eqn + * an array containing the coefficients of the cubic polynomial + * to solve. + * @param res + * the array that this method writes the results into. + * @return the number of roots of the cubic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if eqn.length < 4 or if res.length is less than the number of + * roots. + * @throws NullPointerException + * if either array is null. + */ + public static int solveCubic(double eqn[], double res[]) { + return Crossing.solveCubic(eqn, res); + } + + public boolean contains(double px, double py) { + return Crossing.isInsideEvenOdd(Crossing.crossShape(this, px, py)); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross != Crossing.CROSSING && Crossing.isInsideEvenOdd(cross); + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross == Crossing.CROSSING || Crossing.isInsideEvenOdd(cross); + } + + public boolean contains(Point2D p) { + return contains(p.getX(), p.getY()); + } + + public boolean intersects(Rectangle2D r) { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public boolean contains(Rectangle2D r) { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public Rectangle getBounds() { + return getBounds2D().getBounds(); + } + + public PathIterator getPathIterator(AffineTransform t) { + return new Iterator(this, t); + } + + public PathIterator getPathIterator(AffineTransform at, double flatness) { + return new FlatteningPathIterator(getPathIterator(at), flatness); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/java/awt/geom/Dimension2D.java b/app/src/main/java/java/awt/geom/Dimension2D.java new file mode 100644 index 000000000..ea081c517 --- /dev/null +++ b/app/src/main/java/java/awt/geom/Dimension2D.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +/** + * The Class Dimension2D represents a size (width and height) of a geometric + * object. It stores double-valued data in order to be compatible with + * high-precision geometric operations. + * + * @since Android 1.0 + */ +public abstract class Dimension2D implements Cloneable { + + /** + * Instantiates a new dimension 2d with no data. + */ + protected Dimension2D() { + } + + /** + * Gets the width. + * + * @return the width. + */ + public abstract double getWidth(); + + /** + * Gets the height. + * + * @return the height. + */ + public abstract double getHeight(); + + /** + * Sets the width and height. + * + * @param width + * the width. + * @param height + * the height. + */ + public abstract void setSize(double width, double height); + + /** + * Sets the width and height based on the data of another Dimension2D + * object. + * + * @param d + * the Dimension2D object providing the data to copy into this + * Dimension2D object. + */ + public void setSize(Dimension2D d) { + setSize(d.getWidth(), d.getHeight()); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } +} diff --git a/app/src/main/java/java/awt/geom/Ellipse2D.java b/app/src/main/java/java/awt/geom/Ellipse2D.java new file mode 100644 index 000000000..89fd0d066 --- /dev/null +++ b/app/src/main/java/java/awt/geom/Ellipse2D.java @@ -0,0 +1,458 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class Ellipse2D describes an ellipse defined by a rectangular area in + * which it is inscribed. + * + * @since Android 1.0 + */ +public abstract class Ellipse2D extends RectangularShape { + + /** + * The Class Float is the subclass of Ellipse2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends Ellipse2D { + + /** + * The x coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ + public float x; + + /** + * The y coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ + public float y; + + /** + * The width of the ellipse's bounding rectangle. + */ + public float width; + + /** + * The height of the ellipse's bounding rectangle. + */ + public float height; + + /** + * Instantiates a new float-valued Ellipse2D. + */ + public Float() { + } + + /** + * Instantiates a new float-valued Ellipse2D with the specified data. + * + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. + */ + public Float(float x, float y, float width, float height) { + setFrame(x, y, width, height); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public boolean isEmpty() { + return width <= 0.0 || height <= 0.0; + } + + /** + * Sets the data of the ellipse's bounding rectangle. + * + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. + */ + public void setFrame(float x, float y, float width, float height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + + @Override + public void setFrame(double x, double y, double width, double height) { + this.x = (float)x; + this.y = (float)y; + this.width = (float)width; + this.height = (float)height; + } + + public Rectangle2D getBounds2D() { + return new Rectangle2D.Float(x, y, width, height); + } + } + + /** + * The Class Double is the subclass of Ellipse2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends Ellipse2D { + + /** + * The x coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ + public double x; + + /** + * The y coordinate of the upper left corner of the ellipse's bounding + * rectangle. + */ + public double y; + + /** + * The width of the ellipse's bounding rectangle. + */ + public double width; + + /** + * The height of the ellipse's bounding rectangle. + */ + public double height; + + /** + * Instantiates a new double-valued Ellipse2D. + */ + public Double() { + } + + /** + * Instantiates a new double-valued Ellipse2D with the specified data. + * + * @param x + * the x coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param y + * the y coordinate of the upper left corner of the ellipse's + * bounding rectangle. + * @param width + * the width of the ellipse's bounding rectangle. + * @param height + * the height of the ellipse's bounding rectangle. + */ + public Double(double x, double y, double width, double height) { + setFrame(x, y, width, height); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public boolean isEmpty() { + return width <= 0.0 || height <= 0.0; + } + + @Override + public void setFrame(double x, double y, double width, double height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + + public Rectangle2D getBounds2D() { + return new Rectangle2D.Double(x, y, width, height); + } + } + + /* + * Ellipse2D path iterator + */ + /** + * The subclass of PathIterator to traverse an Ellipse2D. + */ + class Iterator implements PathIterator { + + /* + * Ellipse is subdivided into four quarters by x and y axis. Each part + * approximated by cubic Bezier curve. Arc in first quarter is started + * in (a, 0) and finished in (0, b) points. Control points for cubic + * curve wiil be (a, 0), (a, m), (n, b) and (0, b) where n and m are + * calculated based on requirement Bezier curve in point 0.5 should lay + * on the arc. + */ + + /** + * The coefficient to calculate control points of Bezier curves. + */ + final double u = 2.0 / 3.0 * (Math.sqrt(2.0) - 1.0); + + /** + * The points coordinates calculation table. + */ + final double points[][] = { + { + 1.0, 0.5 + u, 0.5 + u, 1.0, 0.5, 1.0 + }, { + 0.5 - u, 1.0, 0.0, 0.5 + u, 0.0, 0.5 + }, { + 0.0, 0.5 - u, 0.5 - u, 0.0, 0.5, 0.0 + }, { + 0.5 + u, 0.0, 1.0, 0.5 - u, 1.0, 0.5 + } + }; + + /** + * The x coordinate of left-upper corner of the ellipse bounds. + */ + double x; + + /** + * The y coordinate of left-upper corner of the ellipse bounds. + */ + double y; + + /** + * The width of the ellipse bounds. + */ + double width; + + /** + * The height of the ellipse bounds. + */ + double height; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new Ellipse2D.Iterator for given ellipse and + * transformation + * + * @param e + * the source Ellipse2D object. + * @param t + * the affine transformation object. + */ + Iterator(Ellipse2D e, AffineTransform t) { + this.x = e.getX(); + this.y = e.getY(); + this.width = e.getWidth(); + this.height = e.getHeight(); + this.t = t; + if (width < 0.0 || height < 0.0) { + index = 6; + } + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > 5; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == 5) { + return SEG_CLOSE; + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + count = 1; + double p[] = points[3]; + coords[0] = x + p[4] * width; + coords[1] = y + p[5] * height; + } else { + type = SEG_CUBICTO; + count = 3; + double p[] = points[index - 1]; + int j = 0; + for (int i = 0; i < 3; i++) { + coords[j] = x + p[j++] * width; + coords[j] = y + p[j++] * height; + } + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == 5) { + return SEG_CLOSE; + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + count = 1; + double p[] = points[3]; + coords[0] = (float)(x + p[4] * width); + coords[1] = (float)(y + p[5] * height); + } else { + type = SEG_CUBICTO; + count = 3; + int j = 0; + double p[] = points[index - 1]; + for (int i = 0; i < 3; i++) { + coords[j] = (float)(x + p[j++] * width); + coords[j] = (float)(y + p[j++] * height); + } + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + } + + /** + * Instantiates a new Ellipse2D. + */ + protected Ellipse2D() { + } + + public boolean contains(double px, double py) { + if (isEmpty()) { + return false; + } + + double a = (px - getX()) / getWidth() - 0.5; + double b = (py - getY()) / getHeight() - 0.5; + + return a * a + b * b < 0.25; + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + if (isEmpty() || rw <= 0.0 || rh <= 0.0) { + return false; + } + + double cx = getX() + getWidth() / 2.0; + double cy = getY() + getHeight() / 2.0; + + double rx1 = rx; + double ry1 = ry; + double rx2 = rx + rw; + double ry2 = ry + rh; + + double nx = cx < rx1 ? rx1 : (cx > rx2 ? rx2 : cx); + double ny = cy < ry1 ? ry1 : (cy > ry2 ? ry2 : cy); + + return contains(nx, ny); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + if (isEmpty() || rw <= 0.0 || rh <= 0.0) { + return false; + } + + double rx1 = rx; + double ry1 = ry; + double rx2 = rx + rw; + double ry2 = ry + rh; + + return contains(rx1, ry1) && contains(rx2, ry1) && contains(rx2, ry2) && contains(rx1, ry2); + } + + public PathIterator getPathIterator(AffineTransform at) { + return new Iterator(this, at); + } +} diff --git a/app/src/main/java/java/awt/geom/FlatteningPathIterator.java b/app/src/main/java/java/awt/geom/FlatteningPathIterator.java new file mode 100644 index 000000000..8208f3963 --- /dev/null +++ b/app/src/main/java/java/awt/geom/FlatteningPathIterator.java @@ -0,0 +1,358 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class FlatteningPathIterator takes a PathIterator for traversing a curved + * shape and flattens it by estimating the curve as a series of line segments. + * The flattening factor indicates how far the estimating line segments are + * allowed to be from the actual curve: the FlatteningPathIterator will keep + * dividing each curved segment into smaller and smaller flat segments until + * either the segments are within the flattening factor of the curve or until + * the buffer limit is reached. + * + * @since Android 1.0 + */ +public class FlatteningPathIterator implements PathIterator { + + /** + * The default points buffer size. + */ + private static final int BUFFER_SIZE = 16; + + /** + * The default curve subdivision limit. + */ + private static final int BUFFER_LIMIT = 16; + + /** + * The points buffer capacity. + */ + private static final int BUFFER_CAPACITY = 16; + + /** + * The type of current segment to be flat. + */ + int bufType; + + /** + * The curve subdivision limit. + */ + int bufLimit; + + /** + * The current points buffer size. + */ + int bufSize; + + /** + * The inner cursor position in points buffer. + */ + int bufIndex; + + /** + * The current subdivision count. + */ + int bufSubdiv; + + /** + * The points buffer. + */ + double buf[]; + + /** + * The indicator of empty points buffer. + */ + boolean bufEmpty = true; + + /** + * The source PathIterator. + */ + PathIterator p; + + /** + * The flatness of new path. + */ + double flatness; + + /** + * The square of flatness. + */ + double flatness2; + + /** + * The x coordinate of previous path segment. + */ + double px; + + /** + * The y coordinate of previous path segment. + */ + double py; + + /** + * The temporary buffer for getting points from PathIterator. + */ + double coords[] = new double[6]; + + /** + * Instantiates a new flattening path iterator given the path iterator for a + * (possibly) curved path and a flattening factor which indicates how close + * together the points on the curve should be chosen. The buffer limit + * defaults to 16 which means that each curve will be divided into no more + * than 16 segments regardless of the flattening factor. + * + * @param path + * the path iterator of the original curve. + * @param flatness + * the flattening factor that indicates how far the flat path is + * allowed to be from the actual curve in order to decide when to + * stop dividing the path into smaller and smaller segments. + * @throws IllegalArgumentException + * if the flatness is less than zero. + * @throws NullPointerException + * if the path is null. + */ + public FlatteningPathIterator(PathIterator path, double flatness) { + this(path, flatness, BUFFER_LIMIT); + } + + /** + * Instantiates a new flattening path iterator given the path iterator for a + * (possibly) curved path and a flattening factor and a buffer limit. The + * FlatteningPathIterator will keep dividing each curved segment into + * smaller and smaller flat segments until either the segments are within + * the flattening factor of the curve or until the buffer limit is reached. + * + * @param path + * the path iterator of the original curve. + * @param flatness + * the flattening factor that indicates how far the flat path is + * allowed to be from the actual curve in order to decide when to + * stop dividing the path into smaller and smaller segments. + * @param limit + * the maximum number of flat segments to divide each curve into. + * @throws IllegalArgumentException + * if the flatness or limit is less than zero. + * @throws NullPointerException + * if the path is null. + */ + public FlatteningPathIterator(PathIterator path, double flatness, int limit) { + if (flatness < 0.0) { + // awt.206=Flatness is less then zero + throw new IllegalArgumentException(Messages.getString("awt.206")); //$NON-NLS-1$ + } + if (limit < 0) { + // awt.207=Limit is less then zero + throw new IllegalArgumentException(Messages.getString("awt.207")); //$NON-NLS-1$ + } + if (path == null) { + // awt.208=Path is null + throw new NullPointerException(Messages.getString("awt.208")); //$NON-NLS-1$ + } + this.p = path; + this.flatness = flatness; + this.flatness2 = flatness * flatness; + this.bufLimit = limit; + this.bufSize = Math.min(bufLimit, BUFFER_SIZE); + this.buf = new double[bufSize]; + this.bufIndex = bufSize; + } + + /** + * Gets the flattening factor. + * + * @return the flattening factor. + */ + public double getFlatness() { + return flatness; + } + + /** + * Gets the maximum number of subdivisions per curved segment. + * + * @return the maximum number of subdivisions per curved segment. + */ + public int getRecursionLimit() { + return bufLimit; + } + + public int getWindingRule() { + return p.getWindingRule(); + } + + public boolean isDone() { + return bufEmpty && p.isDone(); + } + + /** + * Calculates flat path points for current segment of the source shape. Line + * segment is flat by itself. Flatness of quad and cubic curves evaluated by + * getFlatnessSq() method. Curves subdivided until current flatness is + * bigger than user defined and subdivision limit isn't exhausted. Single + * source segment translated to series of buffer points. The less flatness + * the bigger series. Every currentSegment() call extract one point from the + * buffer. When series completed evaluate() takes next source shape segment. + */ + void evaluate() { + if (bufEmpty) { + bufType = p.currentSegment(coords); + } + + switch (bufType) { + case SEG_MOVETO: + case SEG_LINETO: + px = coords[0]; + py = coords[1]; + break; + case SEG_QUADTO: + if (bufEmpty) { + bufIndex -= 6; + buf[bufIndex + 0] = px; + buf[bufIndex + 1] = py; + System.arraycopy(coords, 0, buf, bufIndex + 2, 4); + bufSubdiv = 0; + } + + while (bufSubdiv < bufLimit) { + if (QuadCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { + break; + } + + // Realloc buffer + if (bufIndex <= 4) { + double tmp[] = new double[bufSize + BUFFER_CAPACITY]; + System.arraycopy(buf, bufIndex, tmp, bufIndex + BUFFER_CAPACITY, bufSize + - bufIndex); + buf = tmp; + bufSize += BUFFER_CAPACITY; + bufIndex += BUFFER_CAPACITY; + } + + QuadCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 4, buf, bufIndex); + + bufIndex -= 4; + bufSubdiv++; + } + + bufIndex += 4; + px = buf[bufIndex]; + py = buf[bufIndex + 1]; + + bufEmpty = (bufIndex == bufSize - 2); + if (bufEmpty) { + bufIndex = bufSize; + bufType = SEG_LINETO; + } else { + bufSubdiv--; + } + break; + case SEG_CUBICTO: + if (bufEmpty) { + bufIndex -= 8; + buf[bufIndex + 0] = px; + buf[bufIndex + 1] = py; + System.arraycopy(coords, 0, buf, bufIndex + 2, 6); + bufSubdiv = 0; + } + + while (bufSubdiv < bufLimit) { + if (CubicCurve2D.getFlatnessSq(buf, bufIndex) < flatness2) { + break; + } + + // Realloc buffer + if (bufIndex <= 6) { + double tmp[] = new double[bufSize + BUFFER_CAPACITY]; + System.arraycopy(buf, bufIndex, tmp, bufIndex + BUFFER_CAPACITY, bufSize + - bufIndex); + buf = tmp; + bufSize += BUFFER_CAPACITY; + bufIndex += BUFFER_CAPACITY; + } + + CubicCurve2D.subdivide(buf, bufIndex, buf, bufIndex - 6, buf, bufIndex); + + bufIndex -= 6; + bufSubdiv++; + } + + bufIndex += 6; + px = buf[bufIndex]; + py = buf[bufIndex + 1]; + + bufEmpty = (bufIndex == bufSize - 2); + if (bufEmpty) { + bufIndex = bufSize; + bufType = SEG_LINETO; + } else { + bufSubdiv--; + } + break; + } + + } + + public void next() { + if (bufEmpty) { + p.next(); + } + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4Bx")); //$NON-NLS-1$ + } + evaluate(); + int type = bufType; + if (type != SEG_CLOSE) { + coords[0] = (float)px; + coords[1] = (float)py; + if (type != SEG_MOVETO) { + type = SEG_LINETO; + } + } + return type; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + evaluate(); + int type = bufType; + if (type != SEG_CLOSE) { + coords[0] = px; + coords[1] = py; + if (type != SEG_MOVETO) { + type = SEG_LINETO; + } + } + return type; + } +} diff --git a/app/src/main/java/java/awt/geom/GeneralPath.java b/app/src/main/java/java/awt/geom/GeneralPath.java new file mode 100644 index 000000000..0669bc77b --- /dev/null +++ b/app/src/main/java/java/awt/geom/GeneralPath.java @@ -0,0 +1,624 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.gl.Crossing; +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The class GeneralPath represents a shape whose outline is given by different + * types of curved and straight segments. + * + * @since Android 1.0 + */ +public final class GeneralPath implements Shape, Cloneable { + + /** + * The Constant WIND_EVEN_ODD see {@link PathIterator#WIND_EVEN_ODD}. + */ + public static final int WIND_EVEN_ODD = PathIterator.WIND_EVEN_ODD; + + /** + * The Constant WIND_NON_ZERO see {@link PathIterator#WIND_NON_ZERO}. + */ + public static final int WIND_NON_ZERO = PathIterator.WIND_NON_ZERO; + + /** + * The buffers size. + */ + private static final int BUFFER_SIZE = 10; + + /** + * The buffers capacity. + */ + private static final int BUFFER_CAPACITY = 10; + + /** + * The point's types buffer. + */ + byte[] types; + + /** + * The points buffer. + */ + float[] points; + + /** + * The point's type buffer size. + */ + int typeSize; + + /** + * The points buffer size. + */ + int pointSize; + + /** + * The path rule. + */ + int rule; + + /** + * The space amount in points buffer for different segmenet's types. + */ + static int pointShift[] = { + 2, // MOVETO + 2, // LINETO + 4, // QUADTO + 6, // CUBICTO + 0 + }; // CLOSE + + /* + * GeneralPath path iterator + */ + /** + * The Class Iterator is the subclass of Iterator for traversing the outline + * of a GeneralPath. + */ + class Iterator implements PathIterator { + + /** + * The current cursor position in types buffer. + */ + int typeIndex; + + /** + * The current cursor position in points buffer. + */ + int pointIndex; + + /** + * The source GeneralPath object. + */ + GeneralPath p; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * Constructs a new GeneralPath.Iterator for given general path. + * + * @param path + * the source GeneralPath object. + */ + Iterator(GeneralPath path) { + this(path, null); + } + + /** + * Constructs a new GeneralPath.Iterator for given general path and + * transformation. + * + * @param path + * the source GeneralPath object. + * @param at + * the AffineTransform object to apply rectangle path. + */ + Iterator(GeneralPath path, AffineTransform at) { + this.p = path; + this.t = at; + } + + public int getWindingRule() { + return p.getWindingRule(); + } + + public boolean isDone() { + return typeIndex >= p.typeSize; + } + + public void next() { + typeIndex++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type = p.types[typeIndex]; + int count = GeneralPath.pointShift[type]; + for (int i = 0; i < count; i++) { + coords[i] = p.points[pointIndex + i]; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count / 2); + } + pointIndex += count; + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type = p.types[typeIndex]; + int count = GeneralPath.pointShift[type]; + System.arraycopy(p.points, pointIndex, coords, 0, count); + if (t != null) { + t.transform(coords, 0, coords, 0, count / 2); + } + pointIndex += count; + return type; + } + + } + + /** + * Instantiates a new general path with the winding rule set to + * {@link PathIterator#WIND_NON_ZERO} and the initial capacity (number of + * segments) set to the default value 10. + */ + public GeneralPath() { + this(WIND_NON_ZERO, BUFFER_SIZE); + } + + /** + * Instantiates a new general path with the given winding rule and the + * initial capacity (number of segments) set to the default value 10. + * + * @param rule + * the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. + */ + public GeneralPath(int rule) { + this(rule, BUFFER_SIZE); + } + + /** + * Instantiates a new general path with the given winding rule and initial + * capacity (number of segments). + * + * @param rule + * the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. + * @param initialCapacity + * the number of segments the path is set to hold. + */ + public GeneralPath(int rule, int initialCapacity) { + setWindingRule(rule); + types = new byte[initialCapacity]; + points = new float[initialCapacity * 2]; + } + + /** + * Creates a new GeneralPath from the outline of the given shape. + * + * @param shape + * the shape. + */ + public GeneralPath(Shape shape) { + this(WIND_NON_ZERO, BUFFER_SIZE); + PathIterator p = shape.getPathIterator(null); + setWindingRule(p.getWindingRule()); + append(p, false); + } + + /** + * Sets the winding rule, which determines how to decide whether a point + * that isn't on the path itself is inside or outside of the shape. + * + * @param rule + * the new winding rule. + * @throws IllegalArgumentException + * if the winding rule is neither + * {@link PathIterator#WIND_EVEN_ODD} nor + * {@link PathIterator#WIND_NON_ZERO}. + */ + public void setWindingRule(int rule) { + if (rule != WIND_EVEN_ODD && rule != WIND_NON_ZERO) { + // awt.209=Invalid winding rule value + throw new java.lang.IllegalArgumentException(Messages.getString("awt.209")); //$NON-NLS-1$ + } + this.rule = rule; + } + + /** + * Gets the winding rule. + * + * @return the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. + */ + public int getWindingRule() { + return rule; + } + + /** + * Checks the point data buffer sizes to see whether pointCount additional + * point-data elements can fit. (Note that the number of point data elements + * to add is more than one per point -- it depends on the type of point + * being added.) Reallocates the buffers to enlarge the size if necessary. + * + * @param pointCount + * the number of point data elements to be added. + * @param checkMove + * whether to check for existing points. + * @throws IllegalPathStateException + * checkMove is true and the path is currently empty. + */ + void checkBuf(int pointCount, boolean checkMove) { + if (checkMove && typeSize == 0) { + // awt.20A=First segment should be SEG_MOVETO type + throw new IllegalPathStateException(Messages.getString("awt.20A")); //$NON-NLS-1$ + } + if (typeSize == types.length) { + byte tmp[] = new byte[typeSize + BUFFER_CAPACITY]; + System.arraycopy(types, 0, tmp, 0, typeSize); + types = tmp; + } + if (pointSize + pointCount > points.length) { + float tmp[] = new float[pointSize + Math.max(BUFFER_CAPACITY * 2, pointCount)]; + System.arraycopy(points, 0, tmp, 0, pointSize); + points = tmp; + } + } + + /** + * Appends a new point to the end of this general path, disconnected from + * the existing path. + * + * @param x + * the x coordinate of the next point to append. + * @param y + * the y coordinate of the next point to append. + */ + public void moveTo(float x, float y) { + if (typeSize > 0 && types[typeSize - 1] == PathIterator.SEG_MOVETO) { + points[pointSize - 2] = x; + points[pointSize - 1] = y; + } else { + checkBuf(2, false); + types[typeSize++] = PathIterator.SEG_MOVETO; + points[pointSize++] = x; + points[pointSize++] = y; + } + } + + /** + * Appends a new segment to the end of this general path by making a + * straight line segment from the current endpoint to the given new point. + * + * @param x + * the x coordinate of the next point to append. + * @param y + * the y coordinate of the next point to append. + */ + public void lineTo(float x, float y) { + checkBuf(2, true); + types[typeSize++] = PathIterator.SEG_LINETO; + points[pointSize++] = x; + points[pointSize++] = y; + } + + /** + * Appends a new segment to the end of this general path by making a + * quadratic curve from the current endpoint to the point (x2, y2) using the + * point (x1, y1) as the quadratic curve's control point. + * + * @param x1 + * the x coordinate of the quadratic curve's control point. + * @param y1 + * the y coordinate of the quadratic curve's control point. + * @param x2 + * the x coordinate of the quadratic curve's end point. + * @param y2 + * the y coordinate of the quadratic curve's end point. + */ + public void quadTo(float x1, float y1, float x2, float y2) { + checkBuf(4, true); + types[typeSize++] = PathIterator.SEG_QUADTO; + points[pointSize++] = x1; + points[pointSize++] = y1; + points[pointSize++] = x2; + points[pointSize++] = y2; + } + + /** + * Appends a new segment to the end of this general path by making a cubic + * curve from the current endpoint to the point (x3, y3) using (x1, y1) and + * (x2, y2) as control points. + * + * @see java.awt.geom.CubicCurve2D + * @param x1 + * the x coordinate of the new cubic segment's first control + * point. + * @param y1 + * the y coordinate of the new cubic segment's first control + * point. + * @param x2 + * the x coordinate of the new cubic segment's second control + * point. + * @param y2 + * the y coordinate of the new cubic segment's second control + * point. + * @param x3 + * the x coordinate of the new cubic segment's end point. + * @param y3 + * the y coordinate of the new cubic segment's end point. + */ + public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3) { + checkBuf(6, true); + types[typeSize++] = PathIterator.SEG_CUBICTO; + points[pointSize++] = x1; + points[pointSize++] = y1; + points[pointSize++] = x2; + points[pointSize++] = y2; + points[pointSize++] = x3; + points[pointSize++] = y3; + } + + /** + * Appends the type information to declare that the current endpoint closes + * the curve. + */ + public void closePath() { + if (typeSize == 0 || types[typeSize - 1] != PathIterator.SEG_CLOSE) { + checkBuf(0, true); + types[typeSize++] = PathIterator.SEG_CLOSE; + } + } + + /** + * Appends the outline of the specified shape onto the end of this + * GeneralPath. + * + * @param shape + * the shape whose outline is to be appended. + * @param connect + * true to connect this path's current endpoint to the first + * point of the shape's outline or false to append the shape's + * outline without connecting it. + * @throws NullPointerException + * if the shape parameter is null. + */ + public void append(Shape shape, boolean connect) { + PathIterator p = shape.getPathIterator(null); + append(p, connect); + } + + /** + * Appends the path defined by the specified PathIterator onto the end of + * this GeneralPath. + * + * @param path + * the PathIterator that defines the new path to append. + * @param connect + * true to connect this path's current endpoint to the first + * point of the shape's outline or false to append the shape's + * outline without connecting it. + */ + public void append(PathIterator path, boolean connect) { + while (!path.isDone()) { + float coords[] = new float[6]; + switch (path.currentSegment(coords)) { + case PathIterator.SEG_MOVETO: + if (!connect || typeSize == 0) { + moveTo(coords[0], coords[1]); + break; + } + if (types[typeSize - 1] != PathIterator.SEG_CLOSE + && points[pointSize - 2] == coords[0] + && points[pointSize - 1] == coords[1]) { + break; + } + // NO BREAK; + case PathIterator.SEG_LINETO: + lineTo(coords[0], coords[1]); + break; + case PathIterator.SEG_QUADTO: + quadTo(coords[0], coords[1], coords[2], coords[3]); + break; + case PathIterator.SEG_CUBICTO: + curveTo(coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]); + break; + case PathIterator.SEG_CLOSE: + closePath(); + break; + } + path.next(); + connect = false; + } + } + + /** + * Gets the current end point of the path. + * + * @return the current end point of the path. + */ + public Point2D getCurrentPoint() { + if (typeSize == 0) { + return null; + } + int j = pointSize - 2; + if (types[typeSize - 1] == PathIterator.SEG_CLOSE) { + + for (int i = typeSize - 2; i > 0; i--) { + int type = types[i]; + if (type == PathIterator.SEG_MOVETO) { + break; + } + j -= pointShift[type]; + } + } + return new Point2D.Float(points[j], points[j + 1]); + } + + /** + * Resets the GeneralPath to being an empty path. The underlying point and + * segment data is not deleted but rather the end indices of the data arrays + * are set to zero. + */ + public void reset() { + typeSize = 0; + pointSize = 0; + } + + /** + * Transform all of the coordinates of this path according to the specified + * AffineTransform. + * + * @param t + * the AffineTransform. + */ + public void transform(AffineTransform t) { + t.transform(points, 0, points, 0, pointSize / 2); + } + + /** + * Creates a new GeneralPath whose data is given by this path's data + * transformed according to the specified AffineTransform. + * + * @param t + * the AffineTransform. + * @return the new GeneralPath whose data is given by this path's data + * transformed according to the specified AffineTransform. + */ + public Shape createTransformedShape(AffineTransform t) { + GeneralPath p = (GeneralPath)clone(); + if (t != null) { + p.transform(t); + } + return p; + } + + public Rectangle2D getBounds2D() { + float rx1, ry1, rx2, ry2; + if (pointSize == 0) { + rx1 = ry1 = rx2 = ry2 = 0.0f; + } else { + int i = pointSize - 1; + ry1 = ry2 = points[i--]; + rx1 = rx2 = points[i--]; + while (i > 0) { + float y = points[i--]; + float x = points[i--]; + if (x < rx1) { + rx1 = x; + } else if (x > rx2) { + rx2 = x; + } + if (y < ry1) { + ry1 = y; + } else if (y > ry2) { + ry2 = y; + } + } + } + return new Rectangle2D.Float(rx1, ry1, rx2 - rx1, ry2 - ry1); + } + + public Rectangle getBounds() { + return getBounds2D().getBounds(); + } + + /** + * Checks the cross count (number of times a ray from the point crosses the + * shape's boundary) to determine whether the number of crossings + * corresponds to a point inside the shape or not (according to the shape's + * path rule). + * + * @param cross + * the point's cross count. + * @return true if the point is inside the path, or false otherwise. + */ + boolean isInside(int cross) { + if (rule == WIND_NON_ZERO) { + return Crossing.isInsideNonZero(cross); + } + return Crossing.isInsideEvenOdd(cross); + } + + public boolean contains(double px, double py) { + return isInside(Crossing.crossShape(this, px, py)); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross != Crossing.CROSSING && isInside(cross); + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross == Crossing.CROSSING || isInside(cross); + } + + public boolean contains(Point2D p) { + return contains(p.getX(), p.getY()); + } + + public boolean contains(Rectangle2D r) { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public boolean intersects(Rectangle2D r) { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public PathIterator getPathIterator(AffineTransform t) { + return new Iterator(this, t); + } + + public PathIterator getPathIterator(AffineTransform t, double flatness) { + return new FlatteningPathIterator(getPathIterator(t), flatness); + } + + @Override + public Object clone() { + try { + GeneralPath p = (GeneralPath)super.clone(); + p.types = types.clone(); + p.points = points.clone(); + return p; + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + +} diff --git a/app/src/main/java/java/awt/geom/IllegalPathStateException.java b/app/src/main/java/java/awt/geom/IllegalPathStateException.java new file mode 100644 index 000000000..750ba29fe --- /dev/null +++ b/app/src/main/java/java/awt/geom/IllegalPathStateException.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +/** + * The Class IllegalPathStateException indicates errors where the current state + * of a path object is incompatible with the desired action, such as performing + * non-trivial actions on an empty path. + * + * @since Android 1.0 + */ +public class IllegalPathStateException extends RuntimeException { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -5158084205220481094L; + + /** + * Instantiates a new illegal path state exception. + */ + public IllegalPathStateException() { + } + + /** + * Instantiates a new illegal path state exception with the specified detail + * message. + * + * @param s + * the details of the error. + */ + public IllegalPathStateException(String s) { + super(s); + } + +} diff --git a/app/src/main/java/java/awt/geom/Line2D.java b/app/src/main/java/java/awt/geom/Line2D.java new file mode 100644 index 000000000..fcd51b6dd --- /dev/null +++ b/app/src/main/java/java/awt/geom/Line2D.java @@ -0,0 +1,948 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class Line2D represents a line whose data is given in high-precision + * values appropriate for graphical operations. + * + * @since Android 1.0 + */ +public abstract class Line2D implements Shape, Cloneable { + + /** + * The Class Float is the subclass of Line2D that has all of its data values + * stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends Line2D { + + /** + * The x coordinate of the starting point. + */ + public float x1; + + /** + * The y coordinate of the starting point. + */ + public float y1; + + /** + * The x coordinate of the end point. + */ + public float x2; + + /** + * The y coordinate of the end point. + */ + public float y2; + + /** + * Instantiates a new float-valued Line2D with its data values set to + * zero. + */ + public Float() { + } + + /** + * Instantiates a new float-valued Line2D with the specified endpoints. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public Float(float x1, float y1, float x2, float y2) { + setLine(x1, y1, x2, y2); + } + + /** + * Instantiates a new float-valued Line2D with the specified endpoints. + * + * @param p1 + * the starting point. + * @param p2 + * the end point. + */ + public Float(Point2D p1, Point2D p2) { + setLine(p1, p2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Float(x1, y1); + } + + @Override + public Point2D getP2() { + return new Point2D.Float(x2, y2); + } + + @Override + public void setLine(double x1, double y1, double x2, double y2) { + this.x1 = (float)x1; + this.y1 = (float)y1; + this.x2 = (float)x2; + this.y2 = (float)y2; + } + + /** + * Sets the data values that define the line. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public void setLine(float x1, float y1, float x2, float y2) { + this.x1 = x1; + this.y1 = y1; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + float rx, ry, rw, rh; + if (x1 < x2) { + rx = x1; + rw = x2 - x1; + } else { + rx = x2; + rw = x1 - x2; + } + if (y1 < y2) { + ry = y1; + rh = y2 - y1; + } else { + ry = y2; + rh = y1 - y2; + } + return new Rectangle2D.Float(rx, ry, rw, rh); + } + } + + /** + * The Class Double is the subclass of Line2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends Line2D { + + /** + * The x coordinate of the starting point. + */ + public double x1; + + /** + * The y coordinate of the starting point. + */ + public double y1; + + /** + * The x coordinate of the end point. + */ + public double x2; + + /** + * The y coordinate of the end point. + */ + public double y2; + + /** + * Instantiates a new double-valued Line2D with its data values set to + * zero. + */ + public Double() { + } + + /** + * Instantiates a new double-valued Line2D with the specified endpoints. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public Double(double x1, double y1, double x2, double y2) { + setLine(x1, y1, x2, y2); + } + + /** + * Instantiates a new double-valued Line2D with the specified endpoints. + * + * @param p1 + * the starting point. + * @param p2 + * the end point. + */ + public Double(Point2D p1, Point2D p2) { + setLine(p1, p2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Double(x1, y1); + } + + @Override + public Point2D getP2() { + return new Point2D.Double(x2, y2); + } + + @Override + public void setLine(double x1, double y1, double x2, double y2) { + this.x1 = x1; + this.y1 = y1; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + double rx, ry, rw, rh; + if (x1 < x2) { + rx = x1; + rw = x2 - x1; + } else { + rx = x2; + rw = x1 - x2; + } + if (y1 < y2) { + ry = y1; + rh = y2 - y1; + } else { + ry = y2; + rh = y1 - y2; + } + return new Rectangle2D.Double(rx, ry, rw, rh); + } + } + + /* + * Line2D path iterator + */ + /** + * The subclass of PathIterator to traverse a Line2D. + */ + class Iterator implements PathIterator { + + /** + * The x coordinate of the start line point. + */ + double x1; + + /** + * The y coordinate of the start line point. + */ + double y1; + + /** + * The x coordinate of the end line point. + */ + double x2; + + /** + * The y coordinate of the end line point. + */ + double y2; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new Line2D.Iterator for given line and transformation. + * + * @param l + * the source Line2D object. + * @param at + * the AffineTransform object to apply rectangle path. + */ + Iterator(Line2D l, AffineTransform at) { + this.x1 = l.getX1(); + this.y1 = l.getY1(); + this.x2 = l.getX2(); + this.y2 = l.getY2(); + this.t = at; + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > 1; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = x1; + coords[1] = y1; + } else { + type = SEG_LINETO; + coords[0] = x2; + coords[1] = y2; + } + if (t != null) { + t.transform(coords, 0, coords, 0, 1); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = (float)x1; + coords[1] = (float)y1; + } else { + type = SEG_LINETO; + coords[0] = (float)x2; + coords[1] = (float)y2; + } + if (t != null) { + t.transform(coords, 0, coords, 0, 1); + } + return type; + } + + } + + /** + * Instantiates a new Line2D. + */ + protected Line2D() { + } + + /** + * Gets the x coordinate of the starting point. + * + * @return the x coordinate of the starting point. + */ + public abstract double getX1(); + + /** + * Gets the y coordinate of the starting point. + * + * @return the y coordinate of the starting point. + */ + public abstract double getY1(); + + /** + * Gets the x coordinate of the end point. + * + * @return the x2. + */ + public abstract double getX2(); + + /** + * Gets the y coordinate of the end point. + * + * @return the y coordinate of the end point. + */ + public abstract double getY2(); + + /** + * Gets the p the starting point. + * + * @return the p the starting point. + */ + public abstract Point2D getP1(); + + /** + * Gets the p end point. + * + * @return the p end point. + */ + public abstract Point2D getP2(); + + /** + * Sets the line's endpoints. + * + * @param x1 + * the x coordinate of the starting point. + * @param y1 + * the y coordinate of the starting point. + * @param x2 + * the x coordinate of the end point. + * @param y2 + * the y coordinate of the end point. + */ + public abstract void setLine(double x1, double y1, double x2, double y2); + + /** + * Sets the line's endpoints. + * + * @param p1 + * the starting point. + * @param p2 + * the end point. + */ + public void setLine(Point2D p1, Point2D p2) { + setLine(p1.getX(), p1.getY(), p2.getX(), p2.getY()); + } + + /** + * Sets the line's endpoints by copying the data from another Line2D. + * + * @param line + * the Line2D to copy the endpoint data from. + */ + public void setLine(Line2D line) { + setLine(line.getX1(), line.getY1(), line.getX2(), line.getY2()); + } + + public Rectangle getBounds() { + return getBounds2D().getBounds(); + } + + /** + * Tells where the point is with respect to the line segment, given the + * orientation of the line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the p coordinate of the test point. + * @return the value that describes where the point is with respect to the + * line segment, given the orientation of the line segment. + */ + public static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py) { + /* + * A = (x2-x1, y2-y1) P = (px-x1, py-y1) + */ + x2 -= x1; + y2 -= y1; + px -= x1; + py -= y1; + double t = px * y2 - py * x2; // PxA + if (t == 0.0) { + t = px * x2 + py * y2; // P*A + if (t > 0.0) { + px -= x2; // B-A + py -= y2; + t = px * x2 + py * y2; // (P-A)*A + if (t < 0.0) { + t = 0.0; + } + } + } + + return t < 0.0 ? -1 : (t > 0.0 ? 1 : 0); + } + + /** + * Tells where the point is with respect to this line segment, given the + * orientation of this line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param px + * the x coordinate of the test point. + * @param py + * the p coordinate of the test point. + * @return the value that describes where the point is with respect to this + * line segment, given the orientation of this line segment. + */ + public int relativeCCW(double px, double py) { + return relativeCCW(getX1(), getY1(), getX2(), getY2(), px, py); + } + + /** + * Tells where the point is with respect to this line segment, given the + * orientation of this line segment. If the ray found by extending the line + * segment from its starting point is rotated, this method tells whether the + * ray should rotate in a clockwise direction or a counter-clockwise + * direction to hit the point first. The return value is 0 if the point is + * on the line segment, it's 1 if the point is on the ray or if the ray + * should rotate in a counter-clockwise direction to get to the point, and + * it's -1 if the ray should rotate in a clockwise direction to get to the + * point or if the point is on the line determined by the line segment but + * not on the ray from the segment's starting point and through its end + * point. + * + * @param p + * the test point. + * @return the value that describes where the point is with respect to this + * line segment, given the orientation of this line segment. + */ + public int relativeCCW(Point2D p) { + return relativeCCW(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); + } + + /** + * Tells whether the two line segments cross. + * + * @param x1 + * the x coordinate of the starting point of the first segment. + * @param y1 + * the y coordinate of the starting point of the first segment. + * @param x2 + * the x coordinate of the end point of the first segment. + * @param y2 + * the y coordinate of the end point of the first segment. + * @param x3 + * the x coordinate of the starting point of the second segment. + * @param y3 + * the y coordinate of the starting point of the second segment. + * @param x4 + * the x coordinate of the end point of the second segment. + * @param y4 + * the y coordinate of the end point of the second segment. + * @return true, if the two line segments cross. + */ + public static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, + double y3, double x4, double y4) { + /* + * A = (x2-x1, y2-y1) B = (x3-x1, y3-y1) C = (x4-x1, y4-y1) D = (x4-x3, + * y4-y3) = C-B E = (x1-x3, y1-y3) = -B F = (x2-x3, y2-y3) = A-B Result + * is ((AxB) (AxC) <=0) and ((DxE) (DxF) <= 0) DxE = (C-B)x(-B) = + * BxB-CxB = BxC DxF = (C-B)x(A-B) = CxA-CxB-BxA+BxB = AxB+BxC-AxC + */ + + x2 -= x1; // A + y2 -= y1; + x3 -= x1; // B + y3 -= y1; + x4 -= x1; // C + y4 -= y1; + + double AvB = x2 * y3 - x3 * y2; + double AvC = x2 * y4 - x4 * y2; + + // Online + if (AvB == 0.0 && AvC == 0.0) { + if (x2 != 0.0) { + return (x4 * x3 <= 0.0) + || ((x3 * x2 >= 0.0) && (x2 > 0.0 ? x3 <= x2 || x4 <= x2 : x3 >= x2 + || x4 >= x2)); + } + if (y2 != 0.0) { + return (y4 * y3 <= 0.0) + || ((y3 * y2 >= 0.0) && (y2 > 0.0 ? y3 <= y2 || y4 <= y2 : y3 >= y2 + || y4 >= y2)); + } + return false; + } + + double BvC = x3 * y4 - x4 * y3; + + return (AvB * AvC <= 0.0) && (BvC * (AvB + BvC - AvC) <= 0.0); + } + + /** + * Tells whether the specified line segments crosses this line segment. + * + * @param x1 + * the x coordinate of the starting point of the test segment. + * @param y1 + * the y coordinate of the starting point of the test segment. + * @param x2 + * the x coordinate of the end point of the test segment. + * @param y2 + * the y coordinate of the end point of the test segment. + * @return true, if the specified line segments crosses this line segment. + */ + public boolean intersectsLine(double x1, double y1, double x2, double y2) { + return linesIntersect(x1, y1, x2, y2, getX1(), getY1(), getX2(), getY2()); + } + + /** + * Tells whether the specified line segments crosses this line segment. + * + * @param l + * the test segment. + * @return true, if the specified line segments crosses this line segment. + * @throws NullPointerException + * if l is null. + */ + public boolean intersectsLine(Line2D l) { + return linesIntersect(l.getX1(), l.getY1(), l.getX2(), l.getY2(), getX1(), getY1(), + getX2(), getY2()); + } + + /** + * Gives the square of the distance between the point and the line segment. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the square of the distance between the point and the line + * segment. + */ + public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, + double py) { + /* + * A = (x2 - x1, y2 - y1) P = (px - x1, py - y1) + */ + x2 -= x1; // A = (x2, y2) + y2 -= y1; + px -= x1; // P = (px, py) + py -= y1; + double dist; + if (px * x2 + py * y2 <= 0.0) { // P*A + dist = px * px + py * py; + } else { + px = x2 - px; // P = A - P = (x2 - px, y2 - py) + py = y2 - py; + if (px * x2 + py * y2 <= 0.0) { // P*A + dist = px * px + py * py; + } else { + dist = px * y2 - py * x2; + dist = dist * dist / (x2 * x2 + y2 * y2); // pxA/|A| + } + } + if (dist < 0) { + dist = 0; + } + return dist; + } + + /** + * Gives the distance between the point and the line segment. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the distance between the point and the line segment. + */ + public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py) { + return Math.sqrt(ptSegDistSq(x1, y1, x2, y2, px, py)); + } + + /** + * Gives the square of the distance between the point and this line segment. + * + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the the square of the distance between the point and this line + * segment. + */ + public double ptSegDistSq(double px, double py) { + return ptSegDistSq(getX1(), getY1(), getX2(), getY2(), px, py); + } + + /** + * Gives the square of the distance between the point and this line segment. + * + * @param p + * the test point. + * @return the square of the distance between the point and this line + * segment. + */ + public double ptSegDistSq(Point2D p) { + return ptSegDistSq(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); + } + + /** + * Gives the distance between the point and this line segment. + * + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the distance between the point and this line segment. + */ + public double ptSegDist(double px, double py) { + return ptSegDist(getX1(), getY1(), getX2(), getY2(), px, py); + } + + /** + * Gives the distance between the point and this line segment. + * + * @param p + * the test point. + * @return the distance between the point and this line segment. + */ + public double ptSegDist(Point2D p) { + return ptSegDist(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); + } + + /** + * Gives the square of the distance between the point and the line. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line. + */ + public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, + double py) { + x2 -= x1; + y2 -= y1; + px -= x1; + py -= y1; + double s = px * y2 - py * x2; + return s * s / (x2 * x2 + y2 * y2); + } + + /** + * Gives the square of the distance between the point and the line. + * + * @param x1 + * the x coordinate of the starting point of the line segment. + * @param y1 + * the y coordinate of the starting point of the line segment. + * @param x2 + * the x coordinate of the end point of the line segment. + * @param y2 + * the y coordinate of the end point of the line segment. + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line. + */ + public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py) { + return Math.sqrt(ptLineDistSq(x1, y1, x2, y2, px, py)); + } + + /** + * Gives the square of the distance between the point and the line + * determined by this Line2D. + * + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the square of the distance between the point and the line + * determined by this Line2D. + */ + public double ptLineDistSq(double px, double py) { + return ptLineDistSq(getX1(), getY1(), getX2(), getY2(), px, py); + } + + /** + * Gives the square of the distance between the point and the line + * determined by this Line2D. + * + * @param p + * the test point. + * @return the square of the distance between the point and the line + * determined by this Line2D. + */ + public double ptLineDistSq(Point2D p) { + return ptLineDistSq(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); + } + + /** + * Gives the distance between the point and the line determined by this + * Line2D. + * + * @param px + * the x coordinate of the test point. + * @param py + * the y coordinate of the test point. + * @return the distance between the point and the line determined by this + * Line2D. + */ + public double ptLineDist(double px, double py) { + return ptLineDist(getX1(), getY1(), getX2(), getY2(), px, py); + } + + /** + * Gives the distance between the point and the line determined by this + * Line2D. + * + * @param p + * the test point. + * @return the distance between the point and the line determined by this + * Line2D. + */ + public double ptLineDist(Point2D p) { + return ptLineDist(getX1(), getY1(), getX2(), getY2(), p.getX(), p.getY()); + } + + public boolean contains(double px, double py) { + return false; + } + + public boolean contains(Point2D p) { + return false; + } + + public boolean contains(Rectangle2D r) { + return false; + } + + public boolean contains(double rx, double ry, double rw, double rh) { + return false; + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + return intersects(new Rectangle2D.Double(rx, ry, rw, rh)); + } + + public boolean intersects(Rectangle2D r) { + return r.intersectsLine(getX1(), getY1(), getX2(), getY2()); + } + + public PathIterator getPathIterator(AffineTransform at) { + return new Iterator(this, at); + } + + public PathIterator getPathIterator(AffineTransform at, double flatness) { + return new Iterator(this, at); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + +} diff --git a/app/src/main/java/java/awt/geom/NoninvertibleTransformException.java b/app/src/main/java/java/awt/geom/NoninvertibleTransformException.java new file mode 100644 index 000000000..a4e6f0f85 --- /dev/null +++ b/app/src/main/java/java/awt/geom/NoninvertibleTransformException.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +/** + * The Class NoninvertibleTransformException is the exception that is thrown + * when an action requires inverting an {@link AffineTransform} that is not + * invertible (has determinant 0). + * + * @since Android 1.0 + */ +public class NoninvertibleTransformException extends java.lang.Exception { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = 6137225240503990466L; + + /** + * Instantiates a new non-invertible transform exception. + * + * @param s + * the error message. + */ + public NoninvertibleTransformException(String s) { + super(s); + } + +} diff --git a/app/src/main/java/java/awt/geom/PathIterator.java b/app/src/main/java/java/awt/geom/PathIterator.java new file mode 100644 index 000000000..2d1c0ffa6 --- /dev/null +++ b/app/src/main/java/java/awt/geom/PathIterator.java @@ -0,0 +1,146 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +/** + * The Interface PathIterator represents an iterator object that can be used to + * traverse the outline of a {@link java.awt.Shape}. It returns points along the + * boundary of the Shape which may be actual vertices (in the case of a shape + * made of line segments) or may be points on a curved segment with the distance + * between the points determined by a chosen flattening factor. + *

+ * If the shape is closed, the outline is traversed in the counter-clockwise + * direction. That means that moving forward along the boundary is to travel in + * such a way that the interior of the shape is to the left of the outline path + * and the exterior of the shape is to the right of the outline path. The + * interior and exterior of the shape are determined by a winding rule. + *

+ * + * @since Android 1.0 + */ +public interface PathIterator { + + /** + * The Constant WIND_EVEN_ODD indicates the winding rule that says that a + * point is outside the shape if any infinite ray from the point crosses the + * outline of the shape an even number of times, otherwise it is inside. + */ + public static final int WIND_EVEN_ODD = 0; + + /** + * The Constant WIND_NON_ZERO indicates the winding rule that says that a + * point is inside the shape if every infinite ray starting from that point + * crosses the outline of the shape a non-zero number of times. + */ + public static final int WIND_NON_ZERO = 1; + + /** + * The Constant SEG_MOVETO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should be placed directly on the current point. + */ + public static final int SEG_MOVETO = 0; + + /** + * The Constant SEG_LINETO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should follow a straight line. + */ + public static final int SEG_LINETO = 1; + + /** + * The Constant SEG_QUADTO indicates that to follow the shape's outline from + * the previous point to the current point, the cursor (traversal point) + * should follow a quadratic curve. + */ + public static final int SEG_QUADTO = 2; + + /** + * The Constant SEG_CUBICTO indicates that to follow the shape's outline + * from the previous point to the current point, the cursor (traversal + * point) should follow a cubic curve. + */ + public static final int SEG_CUBICTO = 3; + + /** + * The Constant SEG_CLOSE indicates that the previous point was the end of + * the shape's outline. + */ + public static final int SEG_CLOSE = 4; + + /** + * Gets the winding rule, either {@link PathIterator#WIND_EVEN_ODD} or + * {@link PathIterator#WIND_NON_ZERO}. + * + * @return the winding rule. + */ + public int getWindingRule(); + + /** + * Checks if this PathIterator has been completely traversed. + * + * @return true, if this PathIterator has been completely traversed. + */ + public boolean isDone(); + + /** + * Tells this PathIterator to skip to the next segment. + */ + public void next(); + + /** + * Gets the coordinates of the next vertex point along the shape's outline + * and a flag that indicates what kind of segment to use in order to connect + * the previous vertex point to the current vertex point to form the current + * segment. + * + * @param coords + * the array that the coordinates of the end point of the current + * segment are written into. + * @return the flag that indicates how to follow the shape's outline from + * the previous point to the current one, chosen from the following + * constants: {@link PathIterator#SEG_MOVETO}, + * {@link PathIterator#SEG_LINETO}, {@link PathIterator#SEG_QUADTO}, + * {@link PathIterator#SEG_CUBICTO}, or + * {@link PathIterator#SEG_CLOSE}. + */ + public int currentSegment(float[] coords); + + /** + * Gets the coordinates of the next vertex point along the shape's outline + * and a flag that indicates what kind of segment to use in order to connect + * the previous vertex point to the current vertex point to form the current + * segment. + * + * @param coords + * the array that the coordinates of the end point of the current + * segment are written into. + * @return the flag that indicates how to follow the shape's outline from + * the previous point to the current one, chosen from the following + * constants: {@link PathIterator#SEG_MOVETO}, + * {@link PathIterator#SEG_LINETO}, {@link PathIterator#SEG_QUADTO}, + * {@link PathIterator#SEG_CUBICTO}, or + * {@link PathIterator#SEG_CLOSE}. + */ + public int currentSegment(double[] coords); + +} diff --git a/app/src/main/java/java/awt/geom/Point2D.java b/app/src/main/java/java/awt/geom/Point2D.java new file mode 100644 index 000000000..f7026c8c6 --- /dev/null +++ b/app/src/main/java/java/awt/geom/Point2D.java @@ -0,0 +1,323 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import org.apache.harmony.misc.HashCode; + +/** + * The Class Point2D represents a point whose data is given in high-precision + * values appropriate for graphical operations. + * + * @since Android 1.0 + */ +public abstract class Point2D implements Cloneable { + + /** + * The Class Float is the subclass of Point2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends Point2D { + + /** + * The x coordinate. + */ + public float x; + + /** + * The y coordinate. + */ + public float y; + + /** + * Instantiates a new float-valued Point2D with its data set to zero. + */ + public Float() { + } + + /** + * Instantiates a new float-valued Point2D with the specified + * coordinates. + * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + */ + public Float(float x, float y) { + this.x = x; + this.y = y; + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + /** + * Sets the point's coordinates. + * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + */ + public void setLocation(float x, float y) { + this.x = x; + this.y = y; + } + + @Override + public void setLocation(double x, double y) { + this.x = (float)x; + this.y = (float)y; + } + + @Override + public String toString() { + return getClass().getName() + "[x=" + x + ",y=" + y + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } + + /** + * The Class Double is the subclass of Point2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends Point2D { + + /** + * The x coordinate. + */ + public double x; + + /** + * The y coordinate. + */ + public double y; + + /** + * Instantiates a new double-valued Point2D with its data set to zero. + */ + public Double() { + } + + /** + * Instantiates a new double-valued Point2D with the specified + * coordinates. + * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + */ + public Double(double x, double y) { + this.x = x; + this.y = y; + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public void setLocation(double x, double y) { + this.x = x; + this.y = y; + } + + @Override + public String toString() { + return getClass().getName() + "[x=" + x + ",y=" + y + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } + + /** + * Instantiates a new Point2D. + */ + protected Point2D() { + } + + /** + * Gets the x coordinate. + * + * @return the x coordinate. + */ + public abstract double getX(); + + /** + * Gets the y coordinate. + * + * @return the y coordinate. + */ + public abstract double getY(); + + /** + * Sets the point's coordinates. + * + * @param x + * the x coordinate. + * @param y + * the y coordinate. + */ + public abstract void setLocation(double x, double y); + + /** + * Sets the point's coordinates by copying them from another point. + * + * @param p + * the point to copy the data from. + */ + public void setLocation(Point2D p) { + setLocation(p.getX(), p.getY()); + } + + /** + * Finds the square of the distance between the two specified points. + * + * @param x1 + * the x coordinate of the first point. + * @param y1 + * the y coordinate of the first point. + * @param x2 + * the x coordinate of the second point. + * @param y2 + * the y coordinate of the second point. + * @return the square of the distance between the two specified points. + */ + public static double distanceSq(double x1, double y1, double x2, double y2) { + x2 -= x1; + y2 -= y1; + return x2 * x2 + y2 * y2; + } + + /** + * Finds the square of the distance between this point and the specified + * point. + * + * @param px + * the x coordinate of the point. + * @param py + * the y coordinate of the point. + * @return the square of the distance between this point and the specified + * point. + */ + public double distanceSq(double px, double py) { + return Point2D.distanceSq(getX(), getY(), px, py); + } + + /** + * Finds the square of the distance between this point and the specified + * point. + * + * @param p + * the other point. + * @return the square of the distance between this point and the specified + * point. + */ + public double distanceSq(Point2D p) { + return Point2D.distanceSq(getX(), getY(), p.getX(), p.getY()); + } + + /** + * Finds the distance between the two specified points. + * + * @param x1 + * the x coordinate of the first point. + * @param y1 + * the y coordinate of the first point. + * @param x2 + * the x coordinate of the second point. + * @param y2 + * the y coordinate of the second point. + * @return the distance between the two specified points. + */ + public static double distance(double x1, double y1, double x2, double y2) { + return Math.sqrt(distanceSq(x1, y1, x2, y2)); + } + + /** + * Finds the distance between this point and the specified point. + * + * @param px + * the x coordinate of the point. + * @param py + * the y coordinate of the point. + * @return the distance between this point and the specified point. + */ + public double distance(double px, double py) { + return Math.sqrt(distanceSq(px, py)); + } + + /** + * Finds the distance between this point and the specified point. + * + * @param p + * the other point. + * @return the distance between this point and the specified point. + */ + public double distance(Point2D p) { + return Math.sqrt(distanceSq(p)); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + + @Override + public int hashCode() { + HashCode hash = new HashCode(); + hash.append(getX()); + hash.append(getY()); + return hash.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Point2D) { + Point2D p = (Point2D)obj; + return getX() == p.getX() && getY() == p.getY(); + } + return false; + } +} diff --git a/app/src/main/java/java/awt/geom/QuadCurve2D.java b/app/src/main/java/java/awt/geom/QuadCurve2D.java new file mode 100644 index 000000000..7a86a4840 --- /dev/null +++ b/app/src/main/java/java/awt/geom/QuadCurve2D.java @@ -0,0 +1,918 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.gl.Crossing; +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class QuadCurve2D is a Shape that represents a segment of a quadratic + * (Bezier) curve. The curved segment is determined by three points: a start + * point, an end point, and a control point. The line from the control point to + * the starting point gives the tangent to the curve at the starting point, and + * the line from the control point to the end point gives the tangent to the + * curve at the end point. + * + * @since Android 1.0 + */ +public abstract class QuadCurve2D implements Shape, Cloneable { + + /** + * The Class Float is the subclass of QuadCurve2D that has all of its data + * values stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends QuadCurve2D { + + /** + * The x coordinate of the starting point of the curved segment. + */ + public float x1; + + /** + * The y coordinate of the starting point of the curved segment. + */ + public float y1; + + /** + * The x coordinate of the control point. + */ + public float ctrlx; + + /** + * The y coordinate of the control point. + */ + public float ctrly; + + /** + * The x coordinate of the end point of the curved segment. + */ + public float x2; + + /** + * The y coordinate of the end point of the curved segment. + */ + public float y2; + + /** + * Instantiates a new float-valued QuadCurve2D with all coordinate + * values set to zero. + */ + public Float() { + } + + /** + * Instantiates a new float-valued QuadCurve2D with the specified + * coordinate values. + * + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + */ + public Float(float x1, float y1, float ctrlx, float ctrly, float x2, float y2) { + setCurve(x1, y1, ctrlx, ctrly, x2, y2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getCtrlX() { + return ctrlx; + } + + @Override + public double getCtrlY() { + return ctrly; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Float(x1, y1); + } + + @Override + public Point2D getCtrlPt() { + return new Point2D.Float(ctrlx, ctrly); + } + + @Override + public Point2D getP2() { + return new Point2D.Float(x2, y2); + } + + @Override + public void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) { + this.x1 = (float)x1; + this.y1 = (float)y1; + this.ctrlx = (float)ctrlx; + this.ctrly = (float)ctrly; + this.x2 = (float)x2; + this.y2 = (float)y2; + } + + /** + * Sets the data values of the curve. + * + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + */ + public void setCurve(float x1, float y1, float ctrlx, float ctrly, float x2, float y2) { + this.x1 = x1; + this.y1 = y1; + this.ctrlx = ctrlx; + this.ctrly = ctrly; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + float rx0 = Math.min(Math.min(x1, x2), ctrlx); + float ry0 = Math.min(Math.min(y1, y2), ctrly); + float rx1 = Math.max(Math.max(x1, x2), ctrlx); + float ry1 = Math.max(Math.max(y1, y2), ctrly); + return new Rectangle2D.Float(rx0, ry0, rx1 - rx0, ry1 - ry0); + } + } + + /** + * The Class Double is the subclass of QuadCurve2D that has all of its data + * values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends QuadCurve2D { + + /** + * The x coordinate of the starting point of the curved segment. + */ + public double x1; + + /** + * The y coordinate of the starting point of the curved segment. + */ + public double y1; + + /** + * The x coordinate of the control point. + */ + public double ctrlx; + + /** + * The y coordinate of the control point. + */ + public double ctrly; + + /** + * The x coordinate of the end point of the curved segment. + */ + public double x2; + + /** + * The y coordinate of the end point of the curved segment. + */ + public double y2; + + /** + * Instantiates a new double-valued QuadCurve2D with all coordinate + * values set to zero. + */ + public Double() { + } + + /** + * Instantiates a new double-valued QuadCurve2D with the specified + * coordinate values. + * + * @param x1 + * the x coordinate of the starting point of the curved + * segment. + * @param y1 + * the y coordinate of the starting point of the curved + * segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + */ + public Double(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) { + setCurve(x1, y1, ctrlx, ctrly, x2, y2); + } + + @Override + public double getX1() { + return x1; + } + + @Override + public double getY1() { + return y1; + } + + @Override + public double getCtrlX() { + return ctrlx; + } + + @Override + public double getCtrlY() { + return ctrly; + } + + @Override + public double getX2() { + return x2; + } + + @Override + public double getY2() { + return y2; + } + + @Override + public Point2D getP1() { + return new Point2D.Double(x1, y1); + } + + @Override + public Point2D getCtrlPt() { + return new Point2D.Double(ctrlx, ctrly); + } + + @Override + public Point2D getP2() { + return new Point2D.Double(x2, y2); + } + + @Override + public void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) { + this.x1 = x1; + this.y1 = y1; + this.ctrlx = ctrlx; + this.ctrly = ctrly; + this.x2 = x2; + this.y2 = y2; + } + + public Rectangle2D getBounds2D() { + double rx0 = Math.min(Math.min(x1, x2), ctrlx); + double ry0 = Math.min(Math.min(y1, y2), ctrly); + double rx1 = Math.max(Math.max(x1, x2), ctrlx); + double ry1 = Math.max(Math.max(y1, y2), ctrly); + return new Rectangle2D.Double(rx0, ry0, rx1 - rx0, ry1 - ry0); + } + } + + /* + * QuadCurve2D path iterator + */ + /** + * The PathIterator for a Quad2D curve. + */ + class Iterator implements PathIterator { + + /** + * The source QuadCurve2D object. + */ + QuadCurve2D c; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new QuadCurve2D.Iterator for given curve and + * transformation + * + * @param q + * the source QuadCurve2D object. + * @param t + * the AffineTransform that acts on the coordinates before + * returning them (or null). + */ + Iterator(QuadCurve2D q, AffineTransform t) { + this.c = q; + this.t = t; + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return (index > 1); + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = c.getX1(); + coords[1] = c.getY1(); + count = 1; + } else { + type = SEG_QUADTO; + coords[0] = c.getCtrlX(); + coords[1] = c.getCtrlY(); + coords[2] = c.getX2(); + coords[3] = c.getY2(); + count = 2; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + int type; + int count; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = (float)c.getX1(); + coords[1] = (float)c.getY1(); + count = 1; + } else { + type = SEG_QUADTO; + coords[0] = (float)c.getCtrlX(); + coords[1] = (float)c.getCtrlY(); + coords[2] = (float)c.getX2(); + coords[3] = (float)c.getY2(); + count = 2; + } + if (t != null) { + t.transform(coords, 0, coords, 0, count); + } + return type; + } + + } + + /** + * Instantiates a new quadratic curve. + */ + protected QuadCurve2D() { + } + + /** + * Gets the x coordinate of the starting point. + * + * @return the x coordinate of the starting point. + */ + public abstract double getX1(); + + /** + * Gets the y coordinate of the starting point. + * + * @return the y coordinate of the starting point. + */ + public abstract double getY1(); + + /** + * Gets the starting point. + * + * @return the starting point. + */ + public abstract Point2D getP1(); + + /** + * Gets the x coordinate of the control point. + * + * @return the x coordinate of the control point. + */ + public abstract double getCtrlX(); + + /** + * Gets the y coordinate of the control point. + * + * @return y coordinate of the control point. + */ + public abstract double getCtrlY(); + + /** + * Gets the control point. + * + * @return the control point. + */ + public abstract Point2D getCtrlPt(); + + /** + * Gets the x coordinate of the end point. + * + * @return the x coordinate of the end point. + */ + public abstract double getX2(); + + /** + * Gets the y coordinate of the end point. + * + * @return the y coordinate of the end point. + */ + public abstract double getY2(); + + /** + * Gets the end point. + * + * @return the end point. + */ + public abstract Point2D getP2(); + + /** + * Sets the data of the curve. + * + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + */ + public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2); + + /** + * Sets the data of the curve. + * + * @param p1 + * the starting point of the curved segment. + * @param cp + * the control point. + * @param p2 + * the end point of the curved segment. + * @throws NullPointerException + * if any of the three points is null. + */ + public void setCurve(Point2D p1, Point2D cp, Point2D p2) { + setCurve(p1.getX(), p1.getY(), cp.getX(), cp.getY(), p2.getX(), p2.getY()); + } + + /** + * Sets the data of the curve by reading the data from an array of values. + * The values are read in the same order as the arguments of the method + * {@link QuadCurve2D#setCurve(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of values containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. + */ + public void setCurve(double[] coords, int offset) { + setCurve(coords[offset + 0], coords[offset + 1], coords[offset + 2], coords[offset + 3], + coords[offset + 4], coords[offset + 5]); + } + + /** + * Sets the data of the curve by reading the data from an array of points. + * The values are read in the same order as the arguments of the method + * {@link QuadCurve2D#setCurve(Point2D, Point2D, Point2D)}. + * + * @param points + * the array of points containing the new coordinates. + * @param offset + * the offset of the data to read within the array. + * @throws ArrayIndexOutOfBoundsException + * if points.length < offset + 3. + * @throws NullPointerException + * if the point array is null. + */ + public void setCurve(Point2D[] points, int offset) { + setCurve(points[offset + 0].getX(), points[offset + 0].getY(), points[offset + 1].getX(), + points[offset + 1].getY(), points[offset + 2].getX(), points[offset + 2].getY()); + } + + /** + * Sets the data of the curve by copying it from another QuadCurve2D. + * + * @param curve + * the curve to copy the data points from. + * @throws NullPointerException + * if the curve is null. + */ + public void setCurve(QuadCurve2D curve) { + setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX(), curve.getCtrlY(), curve.getX2(), + curve.getY2()); + } + + /** + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point for this curve. + * + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + */ + public double getFlatnessSq() { + return Line2D.ptSegDistSq(getX1(), getY1(), getX2(), getY2(), getCtrlX(), getCtrlY()); + } + + /** + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + * + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + */ + public static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2) { + return Line2D.ptSegDistSq(x1, y1, x2, y2, ctrlx, ctrly); + } + + /** + * Gets the square of the distance from the control point to the straight + * line segment connecting the start point and the end point by reading the + * coordinates of the points from an array of values. The values are read in + * the same order as the arguments of the method + * {@link QuadCurve2D#getFlatnessSq(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the coordinates to use for the + * calculation + * @param offset + * the offset of the data to read within the array + * @return the square of the distance from the control point to the straight + * line segment connecting the start point and the end point. + * @throws ArrayIndexOutOfBoundsException + * if {@code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. + */ + public static double getFlatnessSq(double coords[], int offset) { + return Line2D.ptSegDistSq(coords[offset + 0], coords[offset + 1], coords[offset + 4], + coords[offset + 5], coords[offset + 2], coords[offset + 3]); + } + + /** + * Gets the distance from the control point to the straight line segment + * connecting the start point and the end point of this QuadCurve2D. + * + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point of this + * QuadCurve2D. + */ + public double getFlatness() { + return Line2D.ptSegDist(getX1(), getY1(), getX2(), getY2(), getCtrlX(), getCtrlY()); + } + + /** + * Gets the distance from the control point to the straight line segment + * connecting the start point and the end point. + * + * @param x1 + * the x coordinate of the starting point of the curved segment. + * @param y1 + * the y coordinate of the starting point of the curved segment. + * @param ctrlx + * the x coordinate of the control point. + * @param ctrly + * the y coordinate of the control point. + * @param x2 + * the x coordinate of the end point of the curved segment. + * @param y2 + * the y coordinate of the end point of the curved segment. + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point. + */ + public static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, + double y2) { + return Line2D.ptSegDist(x1, y1, x2, y2, ctrlx, ctrly); + } + + /** + * Gets the the distance from the control point to the straight line segment + * connecting the start point and the end point. The values are read in the + * same order as the arguments of the method + * {@link QuadCurve2D#getFlatness(double, double, double, double, double, double)} + * . + * + * @param coords + * the array of points containing the coordinates to use for the + * calculation. + * @param offset + * the offset of the data to read within the array. + * @return the the distance from the control point to the straight line + * segment connecting the start point and the end point. + * @throws ArrayIndexOutOfBoundsException + * if {code coords.length} < offset + 6. + * @throws NullPointerException + * if the coordinate array is null. + */ + public static double getFlatness(double coords[], int offset) { + return Line2D.ptSegDist(coords[offset + 0], coords[offset + 1], coords[offset + 4], + coords[offset + 5], coords[offset + 2], coords[offset + 3]); + } + + /** + * Creates the data for two quadratic curves by dividing this curve in two. + * The division point is the point on the curve that is closest to this + * curve's control point. The data of this curve is left unchanged. + * + * @param left + * the QuadCurve2D where the left (start) segment's data is + * written. + * @param right + * the QuadCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if either curve is null. + */ + public void subdivide(QuadCurve2D left, QuadCurve2D right) { + subdivide(this, left, right); + } + + /** + * Creates the data for two quadratic curves by dividing a source curve in + * two. The division point is the point on the curve that is closest to the + * source curve's control point. The data of the source curve is left + * unchanged. + * + * @param src + * the curve that provides the initial data. + * @param left + * the QuadCurve2D where the left (start) segment's data is + * written. + * @param right + * the QuadCurve2D where the right (end) segment's data is + * written. + * @throws NullPointerException + * if one of the curves is null. + */ + public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) { + double x1 = src.getX1(); + double y1 = src.getY1(); + double cx = src.getCtrlX(); + double cy = src.getCtrlY(); + double x2 = src.getX2(); + double y2 = src.getY2(); + double cx1 = (x1 + cx) / 2.0; + double cy1 = (y1 + cy) / 2.0; + double cx2 = (x2 + cx) / 2.0; + double cy2 = (y2 + cy) / 2.0; + cx = (cx1 + cx2) / 2.0; + cy = (cy1 + cy2) / 2.0; + if (left != null) { + left.setCurve(x1, y1, cx1, cy1, cx, cy); + } + if (right != null) { + right.setCurve(cx, cy, cx2, cy2, x2, y2); + } + } + + /** + * Creates the data for two quadratic curves by dividing a source curve in + * two. The division point is the point on the curve that is closest to the + * source curve's control point. The data for the three curves is read and + * written from arrays of values in the usual order: x1, y1, cx, cy, x2, y2. + * + * @param src + * the array that gives the data values for the source curve. + * @param srcoff + * the offset in the src array to read the values from. + * @param left + * the array where the coordinates of the start curve should be + * written. + * @param leftOff + * the offset in the left array to start writing the values. + * @param right + * the array where the coordinates of the end curve should be + * written. + * @param rightOff + * the offset in the right array to start writing the values. + * @throws ArrayIndexOutOfBoundsException + * if {@code src.length} < srcoff + 6 or if {@code left.length} + * < leftOff + 6 or if {@code right.length} < rightOff + 6. + * @throws NullPointerException + * if one of the arrays is null. + */ + public static void subdivide(double src[], int srcoff, double left[], int leftOff, + double right[], int rightOff) { + double x1 = src[srcoff + 0]; + double y1 = src[srcoff + 1]; + double cx = src[srcoff + 2]; + double cy = src[srcoff + 3]; + double x2 = src[srcoff + 4]; + double y2 = src[srcoff + 5]; + double cx1 = (x1 + cx) / 2.0; + double cy1 = (y1 + cy) / 2.0; + double cx2 = (x2 + cx) / 2.0; + double cy2 = (y2 + cy) / 2.0; + cx = (cx1 + cx2) / 2.0; + cy = (cy1 + cy2) / 2.0; + if (left != null) { + left[leftOff + 0] = x1; + left[leftOff + 1] = y1; + left[leftOff + 2] = cx1; + left[leftOff + 3] = cy1; + left[leftOff + 4] = cx; + left[leftOff + 5] = cy; + } + if (right != null) { + right[rightOff + 0] = cx; + right[rightOff + 1] = cy; + right[rightOff + 2] = cx2; + right[rightOff + 3] = cy2; + right[rightOff + 4] = x2; + right[rightOff + 5] = y2; + } + } + + /** + * Finds the roots of the quadratic polynomial. This is accomplished by + * finding the (real) values of x that solve the following equation: + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written back into + * the array eqn starting from the index 0 in the array. The return value + * tells how many array elements have been changed by this method call. + * + * @param eqn + * an array containing the coefficients of the quadratic + * polynomial to solve. + * @return the number of roots of the quadratic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if {@code eqn.length} < 3. + * @throws NullPointerException + * if the array is null. + */ + public static int solveQuadratic(double eqn[]) { + return solveQuadratic(eqn, eqn); + } + + /** + * Finds the roots of the quadratic polynomial. This is accomplished by + * finding the (real) values of x that solve the following equation: + * eqn[2]*x*x + eqn[1]*x + eqn[0] = 0. The solutions are written into the + * array res starting from the index 0 in the array. The return value tells + * how many array elements have been written by this method call. + * + * @param eqn + * an array containing the coefficients of the quadratic + * polynomial to solve. + * @param res + * the array that this method writes the results into. + * @return the number of roots of the quadratic polynomial. + * @throws ArrayIndexOutOfBoundsException + * if {@code eqn.length} < 3 or if {@code res.length} is less + * than the number of roots. + * @throws NullPointerException + * if either array is null. + */ + public static int solveQuadratic(double eqn[], double res[]) { + return Crossing.solveQuad(eqn, res); + } + + public boolean contains(double px, double py) { + return Crossing.isInsideEvenOdd(Crossing.crossShape(this, px, py)); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross != Crossing.CROSSING && Crossing.isInsideEvenOdd(cross); + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + int cross = Crossing.intersectShape(this, rx, ry, rw, rh); + return cross == Crossing.CROSSING || Crossing.isInsideEvenOdd(cross); + } + + public boolean contains(Point2D p) { + return contains(p.getX(), p.getY()); + } + + public boolean intersects(Rectangle2D r) { + return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public boolean contains(Rectangle2D r) { + return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + public Rectangle getBounds() { + return getBounds2D().getBounds(); + } + + public PathIterator getPathIterator(AffineTransform t) { + return new Iterator(this, t); + } + + public PathIterator getPathIterator(AffineTransform t, double flatness) { + return new FlatteningPathIterator(getPathIterator(t), flatness); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + +} diff --git a/app/src/main/java/java/awt/geom/Rectangle2D.java b/app/src/main/java/java/awt/geom/Rectangle2D.java new file mode 100644 index 000000000..8166134af --- /dev/null +++ b/app/src/main/java/java/awt/geom/Rectangle2D.java @@ -0,0 +1,824 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; +import org.apache.harmony.misc.HashCode; + +/** + * The Class Rectangle2D represents a rectangle whose coordinates are given with + * the correct precision to be used with the Graphics2D classes. + * + * @since Android 1.0 + */ +public abstract class Rectangle2D extends RectangularShape { + + /** + * The Constant OUT_LEFT is a mask that is used to indicate that a given + * point is outside the rectangle and to its left. + */ + public static final int OUT_LEFT = 1; + + /** + * The Constant OUT_TOP is a mask that is used to indicate that a given + * point is outside the rectangle and above it. + */ + public static final int OUT_TOP = 2; + + /** + * The Constant OUT_RIGHT is a mask that is used to indicate that a given + * point is outside the rectangle and to its right. + */ + public static final int OUT_RIGHT = 4; + + /** + * The Constant OUT_BOTTOM is a mask that is used to indicate that a given + * point is outside the rectangle and above it. + */ + public static final int OUT_BOTTOM = 8; + + /** + * The Class Float is the subclass of Rectangle2D that represents a + * rectangle whose data values are given as floats (with float-level + * precision). + * + * @since Android 1.0 + */ + public static class Float extends Rectangle2D { + + /** + * The x coordinate of the rectangle's upper left corner. + */ + public float x; + + /** + * The y coordinate of the rectangle's upper left corner. + */ + public float y; + + /** + * The width of the rectangle. + */ + public float width; + + /** + * The height of the rectangle. + */ + public float height; + + /** + * Instantiates a new empty rectangle with float-precision data fields. + */ + public Float() { + } + + /** + * Instantiates a new rectangle with the specified float-precision data. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + */ + public Float(float x, float y, float width, float height) { + setRect(x, y, width, height); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public boolean isEmpty() { + return width <= 0.0f || height <= 0.0f; + } + + /** + * Sets the rectangle's data to the given values. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + */ + public void setRect(float x, float y, float width, float height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + + @Override + public void setRect(double x, double y, double width, double height) { + this.x = (float)x; + this.y = (float)y; + this.width = (float)width; + this.height = (float)height; + } + + @Override + public void setRect(Rectangle2D r) { + this.x = (float)r.getX(); + this.y = (float)r.getY(); + this.width = (float)r.getWidth(); + this.height = (float)r.getHeight(); + } + + @Override + public int outcode(double px, double py) { + int code = 0; + + if (width <= 0.0f) { + code |= OUT_LEFT | OUT_RIGHT; + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } + + if (height <= 0.0f) { + code |= OUT_TOP | OUT_BOTTOM; + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } + + return code; + } + + @Override + public Rectangle2D getBounds2D() { + return new Float(x, y, width, height); + } + + @Override + public Rectangle2D createIntersection(Rectangle2D r) { + Rectangle2D dst; + if (r instanceof Double) { + dst = new Rectangle2D.Double(); + } else { + dst = new Rectangle2D.Float(); + } + Rectangle2D.intersect(this, r, dst); + return dst; + } + + @Override + public Rectangle2D createUnion(Rectangle2D r) { + Rectangle2D dst; + if (r instanceof Double) { + dst = new Rectangle2D.Double(); + } else { + dst = new Rectangle2D.Float(); + } + Rectangle2D.union(this, r, dst); + return dst; + } + + @Override + public String toString() { + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way + // System.out.println(new Rectangle2D.Float().toString()) + return getClass().getName() + + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + } + } + + /** + * The Class Double is the subclass of Rectangle2D that represents a + * rectangle whose data values are given as doubles (with + * double-precision-level precision). + * + * @since Android 1.0 + */ + public static class Double extends Rectangle2D { + + /** + * The x coordinate of the rectangle's upper left corner. + */ + public double x; + + /** + * The y coordinate of the rectangle's upper left corner. + */ + public double y; + + /** + * The width of the rectangle. + */ + public double width; + + /** + * The height of the rectangle. + */ + public double height; + + /** + * Instantiates a new empty rectangle with double-precision data fields. + */ + public Double() { + } + + /** + * Instantiates a new rectangle with the given double values. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + */ + public Double(double x, double y, double width, double height) { + setRect(x, y, width, height); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public boolean isEmpty() { + return width <= 0.0 || height <= 0.0; + } + + @Override + public void setRect(double x, double y, double width, double height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + + @Override + public void setRect(Rectangle2D r) { + this.x = r.getX(); + this.y = r.getY(); + this.width = r.getWidth(); + this.height = r.getHeight(); + } + + @Override + public int outcode(double px, double py) { + int code = 0; + + if (width <= 0.0) { + code |= OUT_LEFT | OUT_RIGHT; + } else if (px < x) { + code |= OUT_LEFT; + } else if (px > x + width) { + code |= OUT_RIGHT; + } + + if (height <= 0.0) { + code |= OUT_TOP | OUT_BOTTOM; + } else if (py < y) { + code |= OUT_TOP; + } else if (py > y + height) { + code |= OUT_BOTTOM; + } + + return code; + } + + @Override + public Rectangle2D getBounds2D() { + return new Double(x, y, width, height); + } + + @Override + public Rectangle2D createIntersection(Rectangle2D r) { + Rectangle2D dst = new Rectangle2D.Double(); + Rectangle2D.intersect(this, r, dst); + return dst; + } + + @Override + public Rectangle2D createUnion(Rectangle2D r) { + Rectangle2D dest = new Rectangle2D.Double(); + Rectangle2D.union(this, r, dest); + return dest; + } + + @Override + public String toString() { + // The output format based on 1.5 release behaviour. It could be + // obtained in the following way + // System.out.println(new Rectangle2D.Double().toString()) + return getClass().getName() + + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + } + } + + /** + * The Class Iterator provides access to the coordinates of the + * Rectangle2D's boundary modified by an AffineTransform. + */ + class Iterator implements PathIterator { + + /** + * The x coordinate of the rectangle's upper left corner. + */ + double x; + + /** + * The y coordinate of the rectangle's upper left corner. + */ + double y; + + /** + * The width of the rectangle. + */ + double width; + + /** + * The height of the rectangle. + */ + double height; + + /** + * The AffineTransform that is used to modify the coordinates that are + * returned by the path iterator. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new Rectangle2D.Iterator for given rectangle and + * transformation. + * + * @param r + * the source Rectangle2D object. + * @param at + * the AffineTransform object to apply to the coordinates + * before returning them. + */ + Iterator(Rectangle2D r, AffineTransform at) { + this.x = r.getX(); + this.y = r.getY(); + this.width = r.getWidth(); + this.height = r.getHeight(); + this.t = at; + if (width < 0.0 || height < 0.0) { + index = 6; + } + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > 5; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == 5) { + return SEG_CLOSE; + } + int type; + if (index == 0) { + type = SEG_MOVETO; + coords[0] = x; + coords[1] = y; + } else { + type = SEG_LINETO; + switch (index) { + case 1: + coords[0] = x + width; + coords[1] = y; + break; + case 2: + coords[0] = x + width; + coords[1] = y + height; + break; + case 3: + coords[0] = x; + coords[1] = y + height; + break; + case 4: + coords[0] = x; + coords[1] = y; + break; + } + } + if (t != null) { + t.transform(coords, 0, coords, 0, 1); + } + return type; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == 5) { + return SEG_CLOSE; + } + int type; + if (index == 0) { + coords[0] = (float)x; + coords[1] = (float)y; + type = SEG_MOVETO; + } else { + type = SEG_LINETO; + switch (index) { + case 1: + coords[0] = (float)(x + width); + coords[1] = (float)y; + break; + case 2: + coords[0] = (float)(x + width); + coords[1] = (float)(y + height); + break; + case 3: + coords[0] = (float)x; + coords[1] = (float)(y + height); + break; + case 4: + coords[0] = (float)x; + coords[1] = (float)y; + break; + } + } + if (t != null) { + t.transform(coords, 0, coords, 0, 1); + } + return type; + } + + } + + /** + * Instantiates a new Rectangle2D. + */ + protected Rectangle2D() { + } + + /** + * Sets the rectangle's location and dimension. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + */ + public abstract void setRect(double x, double y, double width, double height); + + /** + * Gets the location of the point with respect to the rectangle and packs + * the information into a single integer using the bitmasks + * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, + * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. If the + * rectangle has zero or negative width, then every point is regarded as + * being both to the left and to the right of the rectangle. Similarly, if + * the height is zero or negative then all points are considered to be both + * both above and below it. + * + * @param x + * the x coordinate of the point to check. + * @param y + * the y coordinate of the point to check. + * @return the point's location with respect to the rectangle. + */ + public abstract int outcode(double x, double y); + + /** + * Creates an new rectangle that is the intersection of this rectangle with + * the given rectangle. The resulting rectangle may be empty. The data of + * this rectangle is left unchanged. + * + * @param r + * the rectangle to intersect with this rectangle. + * @return the new rectangle given by intersection. + */ + public abstract Rectangle2D createIntersection(Rectangle2D r); + + /** + * Creates an new rectangle that is the union of this rectangle with the + * given rectangle. The new rectangle is the smallest rectangle which + * contains both this rectangle and the rectangle specified as a parameter. + * The data of this rectangle is left unchanged. + * + * @param r + * the rectangle to combine with this rectangle. + * @return the new rectangle given by union. + */ + public abstract Rectangle2D createUnion(Rectangle2D r); + + /** + * Sets the data of this rectangle to match the data of the given rectangle. + * + * @param r + * the rectangle whose data is to be copied into this rectangle's + * fields. + */ + public void setRect(Rectangle2D r) { + setRect(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + @Override + public void setFrame(double x, double y, double width, double height) { + setRect(x, y, width, height); + } + + public Rectangle2D getBounds2D() { + return (Rectangle2D)clone(); + } + + /** + * Determines whether any part of the line segment between (and including) + * the two given points touches any part of the rectangle, including its + * boundary. + * + * @param x1 + * the x coordinate of one of the points that determines the line + * segment to test. + * @param y1 + * the y coordinate of one of the points that determines the line + * segment to test. + * @param x2 + * the x coordinate of one of the points that determines the line + * segment to test. + * @param y2 + * the y coordinate of one of the points that determines the line + * segment to test. + * @return true, if at least one point of the line segment between the two + * points matches any point of the interior of the rectangle or the + * rectangle's boundary. + */ + public boolean intersectsLine(double x1, double y1, double x2, double y2) { + double rx1 = getX(); + double ry1 = getY(); + double rx2 = rx1 + getWidth(); + double ry2 = ry1 + getHeight(); + return (rx1 <= x1 && x1 <= rx2 && ry1 <= y1 && y1 <= ry2) + || (rx1 <= x2 && x2 <= rx2 && ry1 <= y2 && y2 <= ry2) + || Line2D.linesIntersect(rx1, ry1, rx2, ry2, x1, y1, x2, y2) + || Line2D.linesIntersect(rx2, ry1, rx1, ry2, x1, y1, x2, y2); + } + + /** + * Determines whether any part of the specified line segment touches any + * part of the rectangle, including its boundary. + * + * @param l + * the line segment to test. + * @return true, if at least one point of the given line segment matches any + * point of the interior of the rectangle or the rectangle's + * boundary. + */ + public boolean intersectsLine(Line2D l) { + return intersectsLine(l.getX1(), l.getY1(), l.getX2(), l.getY2()); + } + + /** + * Gets the location of the point with respect to the rectangle and packs + * the information into a single integer using the bitmasks + * {@link Rectangle2D#OUT_LEFT}, {@link Rectangle2D#OUT_RIGHT}, + * {@link Rectangle2D#OUT_TOP}, and {@link Rectangle2D#OUT_BOTTOM}. If the + * rectangle has zero or negative width, then every point is regarded as + * being both to the left and to the right of the rectangle. Similarly, if + * the height is zero or negative then all points are considered to be both + * both above and below it. + * + * @param p + * the point to check. + * @return the point's location with respect to the rectangle. + */ + public int outcode(Point2D p) { + return outcode(p.getX(), p.getY()); + } + + public boolean contains(double x, double y) { + if (isEmpty()) { + return false; + } + + double x1 = getX(); + double y1 = getY(); + double x2 = x1 + getWidth(); + double y2 = y1 + getHeight(); + + return x1 <= x && x < x2 && y1 <= y && y < y2; + } + + public boolean intersects(double x, double y, double width, double height) { + if (isEmpty() || width <= 0.0 || height <= 0.0) { + return false; + } + + double x1 = getX(); + double y1 = getY(); + double x2 = x1 + getWidth(); + double y2 = y1 + getHeight(); + + return x + width > x1 && x < x2 && y + height > y1 && y < y2; + } + + public boolean contains(double x, double y, double width, double height) { + if (isEmpty() || width <= 0.0 || height <= 0.0) { + return false; + } + + double x1 = getX(); + double y1 = getY(); + double x2 = x1 + getWidth(); + double y2 = y1 + getHeight(); + + return x1 <= x && x + width <= x2 && y1 <= y && y + height <= y2; + } + + /** + * Changes the data values of the destination rectangle to match the + * intersection of the two source rectangles, leaving the two source + * rectangles unchanged. The resulting rectangle may be empty. + * + * @param src1 + * one of the two source rectangles giving the data to intersect. + * @param src2 + * one of the two source rectangles giving the data to intersect. + * @param dst + * the destination object where the data of the intersection is + * written. + */ + public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dst) { + double x1 = Math.max(src1.getMinX(), src2.getMinX()); + double y1 = Math.max(src1.getMinY(), src2.getMinY()); + double x2 = Math.min(src1.getMaxX(), src2.getMaxX()); + double y2 = Math.min(src1.getMaxY(), src2.getMaxY()); + dst.setFrame(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Changes the data values of the destination rectangle to match the union + * of the two source rectangles, leaving the two source rectangles + * unchanged. The union is the smallest rectangle that completely covers the + * two source rectangles. + * + * @param src1 + * one of the two source rectangles giving the data. + * @param src2 + * one of the two source rectangles giving the data. + * @param dst + * the destination object where the data of the union is written. + */ + public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dst) { + double x1 = Math.min(src1.getMinX(), src2.getMinX()); + double y1 = Math.min(src1.getMinY(), src2.getMinY()); + double x2 = Math.max(src1.getMaxX(), src2.getMaxX()); + double y2 = Math.max(src1.getMaxY(), src2.getMaxY()); + dst.setFrame(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Enlarges the rectangle so that it includes the given point. + * + * @param x + * the x coordinate of the new point to be covered by the + * rectangle. + * @param y + * the y coordinate of the new point to be covered by the + * rectangle. + */ + public void add(double x, double y) { + double x1 = Math.min(getMinX(), x); + double y1 = Math.min(getMinY(), y); + double x2 = Math.max(getMaxX(), x); + double y2 = Math.max(getMaxY(), y); + setRect(x1, y1, x2 - x1, y2 - y1); + } + + /** + * Enlarges the rectangle so that it includes the given point. + * + * @param p + * the new point to be covered by the rectangle. + */ + public void add(Point2D p) { + add(p.getX(), p.getY()); + } + + /** + * Enlarges the rectangle so that it covers the given rectangle. + * + * @param r + * the new rectangle to be covered by this rectangle. + */ + public void add(Rectangle2D r) { + union(this, r, this); + } + + public PathIterator getPathIterator(AffineTransform t) { + return new Iterator(this, t); + } + + @Override + public PathIterator getPathIterator(AffineTransform t, double flatness) { + return new Iterator(this, t); + } + + @Override + public int hashCode() { + HashCode hash = new HashCode(); + hash.append(getX()); + hash.append(getY()); + hash.append(getWidth()); + hash.append(getHeight()); + return hash.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Rectangle2D) { + Rectangle2D r = (Rectangle2D)obj; + return getX() == r.getX() && getY() == r.getY() && getWidth() == r.getWidth() + && getHeight() == r.getHeight(); + } + return false; + } + +} diff --git a/app/src/main/java/java/awt/geom/RectangularShape.java b/app/src/main/java/java/awt/geom/RectangularShape.java new file mode 100644 index 000000000..0b0d05cad --- /dev/null +++ b/app/src/main/java/java/awt/geom/RectangularShape.java @@ -0,0 +1,297 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.awt.Rectangle; +import java.awt.Shape; + +/** + * The Class RectangularShape represents a Shape whose data is (at least + * partially) described by a rectangular frame. This includes shapes which are + * obviously rectangular (such as Rectangle2D) as well as shapes like Arc2D + * which are largely determined by the rectangle they fit inside. + * + * @since Android 1.0 + */ +public abstract class RectangularShape implements Shape, Cloneable { + + /** + * Instantiates a new rectangular shape. + */ + protected RectangularShape() { + } + + /** + * Gets the x coordinate of the upper left corner of the rectangle. + * + * @return the x coordinate of the upper left corner of the rectangle. + */ + public abstract double getX(); + + /** + * Gets the y coordinate of the upper left corner of the rectangle. + * + * @return the y coordinate of the upper left corner of the rectangle. + */ + public abstract double getY(); + + /** + * Gets the width of the rectangle. + * + * @return the width of the rectangle. + */ + public abstract double getWidth(); + + /** + * Gets the height of the rectangle. + * + * @return the height of the rectangle. + */ + public abstract double getHeight(); + + /** + * Checks if this is an empty rectangle: one with zero as its width or + * height. + * + * @return true, if the width or height is empty. + */ + public abstract boolean isEmpty(); + + /** + * Sets the data for the bounding rectangle in terms of double values. + * + * @param x + * the x coordinate of the upper left corner of the rectangle. + * @param y + * the y coordinate of the upper left corner of the rectangle. + * @param w + * the width of the rectangle. + * @param h + * the height of the rectangle. + */ + public abstract void setFrame(double x, double y, double w, double h); + + /** + * Gets the minimum x value of the bounding rectangle (the x coordinate of + * the upper left corner of the rectangle). + * + * @return the minimum x value of the bounding rectangle. + */ + public double getMinX() { + return getX(); + } + + /** + * Gets the minimum y value of the bounding rectangle (the y coordinate of + * the upper left corner of the rectangle). + * + * @return the minimum y value of the bounding rectangle. + */ + public double getMinY() { + return getY(); + } + + /** + * Gets the maximum x value of the bounding rectangle (the x coordinate of + * the upper left corner of the rectangle plus the rectangle's width). + * + * @return the maximum x value of the bounding rectangle. + */ + public double getMaxX() { + return getX() + getWidth(); + } + + /** + * Gets the maximum y value of the bounding rectangle (the y coordinate of + * the upper left corner of the rectangle plus the rectangle's height). + * + * @return the maximum y value of the bounding rectangle. + */ + public double getMaxY() { + return getY() + getHeight(); + } + + /** + * Gets the x coordinate of the center of the rectangle. + * + * @return the x coordinate of the center of the rectangle. + */ + public double getCenterX() { + return getX() + getWidth() / 2.0; + } + + /** + * Gets the y coordinate of the center of the rectangle. + * + * @return the y coordinate of the center of the rectangle. + */ + public double getCenterY() { + return getY() + getHeight() / 2.0; + } + + /** + * Places the rectangle's size and location data in a new Rectangle2D object + * and returns it. + * + * @return the bounding rectangle as a new Rectangle2D object. + */ + public Rectangle2D getFrame() { + return new Rectangle2D.Double(getX(), getY(), getWidth(), getHeight()); + } + + /** + * Sets the bounding rectangle in terms of a Point2D which gives its upper + * left corner and a Dimension2D object giving its width and height. + * + * @param loc + * the new upper left corner coordinate. + * @param size + * the new size dimensions. + */ + public void setFrame(Point2D loc, Dimension2D size) { + setFrame(loc.getX(), loc.getY(), size.getWidth(), size.getHeight()); + } + + /** + * Sets the bounding rectangle to match the data contained in the specified + * Rectangle2D. + * + * @param r + * the rectangle that gives the new frame data. + */ + public void setFrame(Rectangle2D r) { + setFrame(r.getX(), r.getY(), r.getWidth(), r.getHeight()); + } + + /** + * Sets the framing rectangle given two opposite corners. Any two corners + * may be used in any order as long as they are diagonally opposite one + * another. + * + * @param x1 + * the x coordinate of one of the corner points. + * @param y1 + * the y coordinate of one of the corner points. + * @param x2 + * the x coordinate of the other corner point. + * @param y2 + * the y coordinate of the other corner point. + */ + public void setFrameFromDiagonal(double x1, double y1, double x2, double y2) { + double rx, ry, rw, rh; + if (x1 < x2) { + rx = x1; + rw = x2 - x1; + } else { + rx = x2; + rw = x1 - x2; + } + if (y1 < y2) { + ry = y1; + rh = y2 - y1; + } else { + ry = y2; + rh = y1 - y2; + } + setFrame(rx, ry, rw, rh); + } + + /** + * Sets the framing rectangle given two opposite corners. Any two corners + * may be used in any order as long as they are diagonally opposite one + * another. + * + * @param p1 + * one of the corner points. + * @param p2 + * the other corner point. + */ + public void setFrameFromDiagonal(Point2D p1, Point2D p2) { + setFrameFromDiagonal(p1.getX(), p1.getY(), p2.getX(), p2.getY()); + } + + /** + * Sets the framing rectangle given the center point and one corner. Any + * corner may be used. + * + * @param centerX + * the x coordinate of the center point. + * @param centerY + * the y coordinate of the center point. + * @param cornerX + * the x coordinate of one of the corner points. + * @param cornerY + * the y coordinate of one of the corner points. + */ + public void setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY) { + double width = Math.abs(cornerX - centerX); + double height = Math.abs(cornerY - centerY); + setFrame(centerX - width, centerY - height, width * 2.0, height * 2.0); + } + + /** + * Sets the framing rectangle given the center point and one corner. Any + * corner may be used. + * + * @param center + * the center point. + * @param corner + * a corner point. + */ + public void setFrameFromCenter(Point2D center, Point2D corner) { + setFrameFromCenter(center.getX(), center.getY(), corner.getX(), corner.getY()); + } + + public boolean contains(Point2D point) { + return contains(point.getX(), point.getY()); + } + + public boolean intersects(Rectangle2D rect) { + return intersects(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight()); + } + + public boolean contains(Rectangle2D rect) { + return contains(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight()); + } + + public Rectangle getBounds() { + int x1 = (int)Math.floor(getMinX()); + int y1 = (int)Math.floor(getMinY()); + int x2 = (int)Math.ceil(getMaxX()); + int y2 = (int)Math.ceil(getMaxY()); + return new Rectangle(x1, y1, x2 - x1, y2 - y1); + } + + public PathIterator getPathIterator(AffineTransform t, double flatness) { + return new FlatteningPathIterator(getPathIterator(t), flatness); + } + + @Override + public Object clone() { + try { + return super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + } + +} diff --git a/app/src/main/java/java/awt/geom/RoundRectangle2D.java b/app/src/main/java/java/awt/geom/RoundRectangle2D.java new file mode 100644 index 000000000..8fbddd64d --- /dev/null +++ b/app/src/main/java/java/awt/geom/RoundRectangle2D.java @@ -0,0 +1,635 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ + +package java.awt.geom; + +import java.util.NoSuchElementException; + +import org.apache.harmony.awt.internal.nls.Messages; + +/** + * The Class RoundRectangle2D describes a rectangle with rounded corners with + * high-precision data that is appropriate for geometric operations. + * + * @since Android 1.0 + */ +public abstract class RoundRectangle2D extends RectangularShape { + + /** + * The Class Float is the subclass of RoundRectangle2D that has all of its + * data values stored with float-level precision. + * + * @since Android 1.0 + */ + public static class Float extends RoundRectangle2D { + + /** + * The x coordinate of the rectangle's upper left corner. + */ + public float x; + + /** + * The y coordinate of the rectangle's upper left corner. + */ + public float y; + + /** + * The width of the rectangle. + */ + public float width; + + /** + * The height of the rectangle. + */ + public float height; + + /** + * The arc width of the rounded corners. + */ + public float arcwidth; + + /** + * The arc height of the rounded corners. + */ + public float archeight; + + /** + * Instantiates a new float-valued RoundRectangle2D with its data-values + * set to zero. + */ + public Float() { + } + + /** + * Instantiates a new float-valued RoundRectangle2D with the specified + * data values. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. + */ + public Float(float x, float y, float width, float height, float arcwidth, float archeight) { + setRoundRect(x, y, width, height, arcwidth, archeight); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public double getArcWidth() { + return arcwidth; + } + + @Override + public double getArcHeight() { + return archeight; + } + + @Override + public boolean isEmpty() { + return width <= 0.0f || height <= 0.0f; + } + + /** + * Sets the data of the round rectangle. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. + */ + public void setRoundRect(float x, float y, float width, float height, float arcwidth, + float archeight) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.arcwidth = arcwidth; + this.archeight = archeight; + } + + @Override + public void setRoundRect(double x, double y, double width, double height, double arcwidth, + double archeight) { + this.x = (float)x; + this.y = (float)y; + this.width = (float)width; + this.height = (float)height; + this.arcwidth = (float)arcwidth; + this.archeight = (float)archeight; + } + + @Override + public void setRoundRect(RoundRectangle2D rr) { + this.x = (float)rr.getX(); + this.y = (float)rr.getY(); + this.width = (float)rr.getWidth(); + this.height = (float)rr.getHeight(); + this.arcwidth = (float)rr.getArcWidth(); + this.archeight = (float)rr.getArcHeight(); + } + + public Rectangle2D getBounds2D() { + return new Rectangle2D.Float(x, y, width, height); + } + } + + /** + * The Class Double is the subclass of RoundRectangle2D that has all of its + * data values stored with double-level precision. + * + * @since Android 1.0 + */ + public static class Double extends RoundRectangle2D { + + /** + * The x coordinate of the rectangle's upper left corner. + */ + public double x; + + /** + * The y coordinate of the rectangle's upper left corner. + */ + public double y; + + /** + * The width of the rectangle. + */ + public double width; + + /** + * The height of the rectangle. + */ + public double height; + + /** + * The arc width of the rounded corners. + */ + public double arcwidth; + + /** + * The arc height of the rounded corners. + */ + public double archeight; + + /** + * Instantiates a new double-valued RoundRectangle2D with its + * data-values set to zero. + */ + public Double() { + } + + /** + * Instantiates a new double-valued RoundRectangle2D with the specified + * data values. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcwidth + * the arc width of the rounded corners. + * @param archeight + * the arc height of the rounded corners. + */ + public Double(double x, double y, double width, double height, double arcwidth, + double archeight) { + setRoundRect(x, y, width, height, arcwidth, archeight); + } + + @Override + public double getX() { + return x; + } + + @Override + public double getY() { + return y; + } + + @Override + public double getWidth() { + return width; + } + + @Override + public double getHeight() { + return height; + } + + @Override + public double getArcWidth() { + return arcwidth; + } + + @Override + public double getArcHeight() { + return archeight; + } + + @Override + public boolean isEmpty() { + return width <= 0.0 || height <= 0.0; + } + + @Override + public void setRoundRect(double x, double y, double width, double height, double arcwidth, + double archeight) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.arcwidth = arcwidth; + this.archeight = archeight; + } + + @Override + public void setRoundRect(RoundRectangle2D rr) { + this.x = rr.getX(); + this.y = rr.getY(); + this.width = rr.getWidth(); + this.height = rr.getHeight(); + this.arcwidth = rr.getArcWidth(); + this.archeight = rr.getArcHeight(); + } + + public Rectangle2D getBounds2D() { + return new Rectangle2D.Double(x, y, width, height); + } + } + + /* + * RoundRectangle2D path iterator + */ + /** + * The subclass of PathIterator to traverse a RoundRectangle2D. + */ + class Iterator implements PathIterator { + + /* + * Path for round corners generated the same way as Ellipse2D + */ + + /** + * The coefficient to calculate control points of Bezier curves. + */ + double u = 0.5 - 2.0 / 3.0 * (Math.sqrt(2.0) - 1.0); + + /** + * The points coordinates calculation table. + */ + double points[][] = { + { + 0.0, 0.5, 0.0, 0.0 + }, // MOVETO + { + 1.0, -0.5, 0.0, 0.0 + }, // LINETO + { + 1.0, -u, 0.0, 0.0, // CUBICTO + 1.0, 0.0, 0.0, u, 1.0, 0.0, 0.0, 0.5 + }, { + 1.0, 0.0, 1.0, -0.5 + }, // LINETO + { + 1.0, 0.0, 1.0, -u, // CUBICTO + 1.0, -u, 1.0, 0.0, 1.0, -0.5, 1.0, 0.0 + }, { + 0.0, 0.5, 1.0, 0.0 + }, // LINETO + { + 0.0, u, 1.0, 0.0, // CUBICTO + 0.0, 0.0, 1.0, -u, 0.0, 0.0, 1.0, -0.5 + }, { + 0.0, 0.0, 0.0, 0.5 + }, // LINETO + { + 0.0, 0.0, 0.0, u, // CUBICTO + 0.0, u, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0 + } + }; + + /** + * The segment types correspond to points array. + */ + int types[] = { + SEG_MOVETO, SEG_LINETO, SEG_CUBICTO, SEG_LINETO, SEG_CUBICTO, SEG_LINETO, + SEG_CUBICTO, SEG_LINETO, SEG_CUBICTO + }; + + /** + * The x coordinate of left-upper corner of the round rectangle bounds. + */ + double x; + + /** + * The y coordinate of left-upper corner of the round rectangle bounds. + */ + double y; + + /** + * The width of the round rectangle bounds. + */ + double width; + + /** + * The height of the round rectangle bounds. + */ + double height; + + /** + * The width of arc corners of the round rectangle. + */ + double aw; + + /** + * The height of arc corners of the round rectangle. + */ + double ah; + + /** + * The path iterator transformation. + */ + AffineTransform t; + + /** + * The current segment index. + */ + int index; + + /** + * Constructs a new RoundRectangle2D.Iterator for given round rectangle + * and transformation. + * + * @param rr + * - the source RoundRectangle2D object + * @param at + * - the AffineTransform object to apply rectangle path + */ + Iterator(RoundRectangle2D rr, AffineTransform at) { + this.x = rr.getX(); + this.y = rr.getY(); + this.width = rr.getWidth(); + this.height = rr.getHeight(); + this.aw = Math.min(width, rr.getArcWidth()); + this.ah = Math.min(height, rr.getArcHeight()); + this.t = at; + if (width < 0.0 || height < 0.0 || aw < 0.0 || ah < 0.0) { + index = points.length; + } + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return index > points.length; + } + + public void next() { + index++; + } + + public int currentSegment(double[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == points.length) { + return SEG_CLOSE; + } + int j = 0; + double p[] = points[index]; + for (int i = 0; i < p.length; i += 4) { + coords[j++] = x + p[i + 0] * width + p[i + 1] * aw; + coords[j++] = y + p[i + 2] * height + p[i + 3] * ah; + } + if (t != null) { + t.transform(coords, 0, coords, 0, j / 2); + } + return types[index]; + } + + public int currentSegment(float[] coords) { + if (isDone()) { + // awt.4B=Iterator out of bounds + throw new NoSuchElementException(Messages.getString("awt.4B")); //$NON-NLS-1$ + } + if (index == points.length) { + return SEG_CLOSE; + } + int j = 0; + double p[] = points[index]; + for (int i = 0; i < p.length; i += 4) { + coords[j++] = (float)(x + p[i + 0] * width + p[i + 1] * aw); + coords[j++] = (float)(y + p[i + 2] * height + p[i + 3] * ah); + } + if (t != null) { + t.transform(coords, 0, coords, 0, j / 2); + } + return types[index]; + } + + } + + /** + * Instantiates a new RoundRectangle2D. + */ + protected RoundRectangle2D() { + } + + /** + * Gets the arc width. + * + * @return the arc width. + */ + public abstract double getArcWidth(); + + /** + * Gets the arc height. + * + * @return the arc height. + */ + public abstract double getArcHeight(); + + /** + * Sets the data of the RoundRectangle2D. + * + * @param x + * the x coordinate of the rectangle's upper left corner. + * @param y + * the y coordinate of the rectangle's upper left corner. + * @param width + * the width of the rectangle. + * @param height + * the height of the rectangle. + * @param arcWidth + * the arc width of the rounded corners. + * @param arcHeight + * the arc height of the rounded corners. + */ + public abstract void setRoundRect(double x, double y, double width, double height, + double arcWidth, double arcHeight); + + /** + * Sets the data of the RoundRectangle2D by copying the values from an + * existing RoundRectangle2D. + * + * @param rr + * the round rectangle to copy the data from. + * @throws NullPointerException + * if rr is null. + */ + public void setRoundRect(RoundRectangle2D rr) { + setRoundRect(rr.getX(), rr.getY(), rr.getWidth(), rr.getHeight(), rr.getArcWidth(), rr + .getArcHeight()); + } + + @Override + public void setFrame(double x, double y, double width, double height) { + setRoundRect(x, y, width, height, getArcWidth(), getArcHeight()); + } + + public boolean contains(double px, double py) { + if (isEmpty()) { + return false; + } + + double rx1 = getX(); + double ry1 = getY(); + double rx2 = rx1 + getWidth(); + double ry2 = ry1 + getHeight(); + + if (px < rx1 || px >= rx2 || py < ry1 || py >= ry2) { + return false; + } + + double aw = getArcWidth() / 2.0; + double ah = getArcHeight() / 2.0; + + double cx, cy; + + if (px < rx1 + aw) { + cx = rx1 + aw; + } else if (px > rx2 - aw) { + cx = rx2 - aw; + } else { + return true; + } + + if (py < ry1 + ah) { + cy = ry1 + ah; + } else if (py > ry2 - ah) { + cy = ry2 - ah; + } else { + return true; + } + + px = (px - cx) / aw; + py = (py - cy) / ah; + return px * px + py * py <= 1.0; + } + + public boolean intersects(double rx, double ry, double rw, double rh) { + if (isEmpty() || rw <= 0.0 || rh <= 0.0) { + return false; + } + + double x1 = getX(); + double y1 = getY(); + double x2 = x1 + getWidth(); + double y2 = y1 + getHeight(); + + double rx1 = rx; + double ry1 = ry; + double rx2 = rx + rw; + double ry2 = ry + rh; + + if (rx2 < x1 || x2 < rx1 || ry2 < y1 || y2 < ry1) { + return false; + } + + double cx = (x1 + x2) / 2.0; + double cy = (y1 + y2) / 2.0; + + double nx = cx < rx1 ? rx1 : (cx > rx2 ? rx2 : cx); + double ny = cy < ry1 ? ry1 : (cy > ry2 ? ry2 : cy); + + return contains(nx, ny); + } + + public boolean contains(double rx, double ry, double rw, double rh) { + if (isEmpty() || rw <= 0.0 || rh <= 0.0) { + return false; + } + + double rx1 = rx; + double ry1 = ry; + double rx2 = rx + rw; + double ry2 = ry + rh; + + return contains(rx1, ry1) && contains(rx2, ry1) && contains(rx2, ry2) && contains(rx1, ry2); + } + + public PathIterator getPathIterator(AffineTransform at) { + return new Iterator(this, at); + } + +} diff --git a/app/src/main/java/java/awt/geom/package.html b/app/src/main/java/java/awt/geom/package.html new file mode 100644 index 000000000..e3a236ee3 --- /dev/null +++ b/app/src/main/java/java/awt/geom/package.html @@ -0,0 +1,8 @@ + + +

+ This package contains classes and interfaces related to Java2D shapes and geometry. +

+ @since Android 1.0 + + diff --git a/app/src/main/java/java/awt/image/BufferedImage.java b/app/src/main/java/java/awt/image/BufferedImage.java new file mode 100644 index 000000000..e5d2a3fa5 --- /dev/null +++ b/app/src/main/java/java/awt/image/BufferedImage.java @@ -0,0 +1,88 @@ +package java.awt.image; + +import android.graphics.Bitmap; +import android.graphics.Bitmap.Config; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; + +public class BufferedImage extends Image implements RenderedImage { + public static final int TYPE_INT_ARGB = 2; + private Bitmap bitmap; + private WritableRaster raster; + + private Bitmap mkBitmap(int width, int height, Config mode) { + return Bitmap.createBitmap(width, height, mode); + } + public BufferedImage(Bitmap bitmap) { + if (bitmap != null) { + this.bitmap = bitmap; + } else { + mkBitmap(1, 1, Config.ARGB_8888); + } + init(); + } + + public BufferedImage(int width, int height, int imageType) { + this.bitmap = mkBitmap(width, height, Config.ARGB_8888); + /* + if (imageType == TYPE_INT_ARGB) { + this.bitmap = mkBitmap(width, height, Config.ARGB_8888); + } else { + this.bitmap = mkBitmap(width, height, Config.HARDWARE); + } + */ + init(); + } + + public void init() { + raster = new WritableRaster(this); + } + + public int getWidth() { + return this.bitmap.getWidth(); + } + + public int getHeight() { + return this.bitmap.getHeight(); + } + + public int[] getRGB(int x, int y, int w, int h, int[] rgbArray, int offset, int scansize) { + if (rgbArray == null) { + rgbArray = new int[((scansize * h) + offset)]; + } + this.bitmap.getPixels(rgbArray, offset, scansize, x, y, w, h); + return rgbArray; + } + + public Graphics getGraphics() { + return new Graphics2D(this); + } + + public Graphics2D createGraphics() { + return new Graphics2D(this); + } + + public void setRGB(int x, int y, int w, int h, int[] rgbArray, int offset, int scansize) { + System.out.println("Setting RGB stub"); + + if (rgbArray == null) { + int size = (h - 1) * scansize + w; + rgbArray = new int[size]; + } + bitmap.setPixels(rgbArray, offset, scansize, x, y, w, h); + } + + public WritableRaster getRaster() { + return raster; + } + + public Bitmap getAndroidBitmap() { + return this.bitmap; + } + + public int getType() { + return TYPE_INT_ARGB; + } +} + diff --git a/app/src/main/java/java/awt/image/DataBuffer.java b/app/src/main/java/java/awt/image/DataBuffer.java new file mode 100644 index 000000000..b0884c95a --- /dev/null +++ b/app/src/main/java/java/awt/image/DataBuffer.java @@ -0,0 +1,12 @@ +package java.awt.image; + +public class DataBuffer { + public static final int TYPE_BYTE = 0; + public static final int TYPE_DOUBLE = 5; + public static final int TYPE_FLOAT = 4; + public static final int TYPE_INT = 3; + public static final int TYPE_SHORT = 2; + public static final int TYPE_UNDEFINED = 32; + public static final int TYPE_USHORT = 1; +} + diff --git a/app/src/main/java/java/awt/image/DataBufferInt.java b/app/src/main/java/java/awt/image/DataBufferInt.java new file mode 100644 index 000000000..aa5fb73bd --- /dev/null +++ b/app/src/main/java/java/awt/image/DataBufferInt.java @@ -0,0 +1,14 @@ +package java.awt.image; + +public class DataBufferInt extends DataBuffer { + private int[] array; + + public DataBufferInt(int[] array, int size) { + this.array = array; + } + + public int[] getData() { + return this.array; + } +} + diff --git a/app/src/main/java/java/awt/image/ImageObserver.java b/app/src/main/java/java/awt/image/ImageObserver.java new file mode 100644 index 000000000..556003b52 --- /dev/null +++ b/app/src/main/java/java/awt/image/ImageObserver.java @@ -0,0 +1,5 @@ +package java.awt.image; + +public class ImageObserver +{ +} \ No newline at end of file diff --git a/app/src/main/java/java/awt/image/RenderedImage.java b/app/src/main/java/java/awt/image/RenderedImage.java new file mode 100644 index 000000000..7a4ab6aa3 --- /dev/null +++ b/app/src/main/java/java/awt/image/RenderedImage.java @@ -0,0 +1,5 @@ +package java.awt.image; + +public interface RenderedImage +{ +} diff --git a/app/src/main/java/java/awt/image/WritableRaster.java b/app/src/main/java/java/awt/image/WritableRaster.java new file mode 100644 index 000000000..a962b73f5 --- /dev/null +++ b/app/src/main/java/java/awt/image/WritableRaster.java @@ -0,0 +1,16 @@ +package java.awt.image; + +public class WritableRaster { + private BufferedImage image; + + public WritableRaster(BufferedImage image) { + this.image = image; + } + + public DataBuffer getDataBuffer() { + int[] theBuf = new int[(this.image.getWidth() * this.image.getHeight())]; + this.image.getRGB(0, 0, this.image.getWidth(), this.image.getHeight(), theBuf, 0, this.image.getWidth()); + return new DataBufferInt(theBuf, theBuf.length); + } +} + diff --git a/app/src/main/java/java/awt/mod/ModdingKit.java b/app/src/main/java/java/awt/mod/ModdingKit.java new file mode 100644 index 000000000..8ef5edfd8 --- /dev/null +++ b/app/src/main/java/java/awt/mod/ModdingKit.java @@ -0,0 +1,53 @@ +package java.awt.mod; + +import android.graphics.*; +import android.util.*; +import java.awt.image.*; +import java.lang.reflect.*; +import java.util.*; +import net.kdt.pojavlaunch.*; + +public class ModdingKit +{ + public static MainActivity getCurrentActivity() + { + try { + Class activityThreadClass = Class.forName("android.app.ActivityThread"); + Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(null); + Field activitiesField = activityThreadClass.getDeclaredField("mActivities"); + activitiesField.setAccessible(true); + + Map activities = (Map) activitiesField.get(activityThread); + if (activities == null) return null; + + for (Object activityRecord : activities.values()) { + Class activityRecordClass = activityRecord.getClass(); + Field pausedField = activityRecordClass.getDeclaredField("paused"); + pausedField.setAccessible(true); + if (!pausedField.getBoolean(activityRecord)) { + Field activityField = activityRecordClass.getDeclaredField("activity"); + activityField.setAccessible(true); + MainActivity activity = (MainActivity) activityField.get(activityRecord); + return activity; + } + } + return null; + } catch (Throwable th) { + return null; + } + } + + public static Bitmap bufferToBitmap(BufferedImage bufferedImage) { + BufferedImage bufferedImage2 = bufferedImage; + return pixelsToBitmap(((DataBufferInt) bufferedImage2.getRaster().getDataBuffer()).getData(), bufferedImage2.getWidth(), bufferedImage2.getHeight()); + } + + public static Bitmap pixelsToBitmap(int[] iArr, int i, int i2) { + int[] iArr2 = iArr; + int i3 = i; + int i4 = i2; + Bitmap createBitmap = Bitmap.createBitmap(i3, i4, Bitmap.Config.RGB_565); + createBitmap.setPixels(iArr2, 0, i3, 0, 0, i3, i4); + return createBitmap; + } +} diff --git a/app/src/main/java/java/awt/peer/DesktopPeer.java b/app/src/main/java/java/awt/peer/DesktopPeer.java new file mode 100644 index 000000000..251444fd3 --- /dev/null +++ b/app/src/main/java/java/awt/peer/DesktopPeer.java @@ -0,0 +1,5 @@ +package java.awt.peer; + +public interface DesktopPeer +{ +} diff --git a/app/src/main/java/java/awt/peer/FontPeer.java b/app/src/main/java/java/awt/peer/FontPeer.java new file mode 100644 index 000000000..31a089d7b --- /dev/null +++ b/app/src/main/java/java/awt/peer/FontPeer.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1996, 1998, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.awt.peer; + +/** + * The peer interface for fonts. This is only a marker interface and not + * used by AWT itself. + * + * The peer interfaces are intended only for use in porting + * the AWT. They are not intended for use by application + * developers, and developers should not implement peers + * nor invoke any of the peer methods directly on the peer + * instances. + */ +public interface FontPeer { +} diff --git a/app/src/main/java/java/lang/management/ManagementFactory.java b/app/src/main/java/java/lang/management/ManagementFactory.java new file mode 100644 index 000000000..0f046f4c6 --- /dev/null +++ b/app/src/main/java/java/lang/management/ManagementFactory.java @@ -0,0 +1,22 @@ +package java.lang.management; + +import java.util.Collections; +import java.util.List; + +public class ManagementFactory { + private static RuntimeMXBean runtimeMXBeanInstance = new RuntimeMXBeanImpl(); + + private static class RuntimeMXBeanImpl implements RuntimeMXBean { + private RuntimeMXBeanImpl() { + } + + public List getInputArguments() { + return Collections.emptyList(); + } + } + + public static RuntimeMXBean getRuntimeMXBean() { + return runtimeMXBeanInstance; + } +} + diff --git a/app/src/main/java/java/lang/management/RuntimeMXBean.java b/app/src/main/java/java/lang/management/RuntimeMXBean.java new file mode 100644 index 000000000..e0939d224 --- /dev/null +++ b/app/src/main/java/java/lang/management/RuntimeMXBean.java @@ -0,0 +1,8 @@ +package java.lang.management; + +import java.util.List; + +public interface RuntimeMXBean { + List getInputArguments(); +} + diff --git a/app/src/main/java/java/util/regex/ASCII.java b/app/src/main/java/java/util/regex/ASCII.java new file mode 100644 index 000000000..c4a4cff1e --- /dev/null +++ b/app/src/main/java/java/util/regex/ASCII.java @@ -0,0 +1,274 @@ +/* + * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.util.regex; + + +/** + * Utility class that implements the standard C ctype functionality. + * + * @author Hong Zhang + */ + +final class ASCII { + + static final int UPPER = 0x00000100; + + static final int LOWER = 0x00000200; + + static final int DIGIT = 0x00000400; + + static final int SPACE = 0x00000800; + + static final int PUNCT = 0x00001000; + + static final int CNTRL = 0x00002000; + + static final int BLANK = 0x00004000; + + static final int HEX = 0x00008000; + + static final int UNDER = 0x00010000; + + static final int ASCII = 0x0000FF00; + + static final int ALPHA = (UPPER|LOWER); + + static final int ALNUM = (UPPER|LOWER|DIGIT); + + static final int GRAPH = (PUNCT|UPPER|LOWER|DIGIT); + + static final int WORD = (UPPER|LOWER|UNDER|DIGIT); + + static final int XDIGIT = (HEX); + + private static final int[] ctype = new int[] { + CNTRL, /* 00 (NUL) */ + CNTRL, /* 01 (SOH) */ + CNTRL, /* 02 (STX) */ + CNTRL, /* 03 (ETX) */ + CNTRL, /* 04 (EOT) */ + CNTRL, /* 05 (ENQ) */ + CNTRL, /* 06 (ACK) */ + CNTRL, /* 07 (BEL) */ + CNTRL, /* 08 (BS) */ + SPACE+CNTRL+BLANK, /* 09 (HT) */ + SPACE+CNTRL, /* 0A (LF) */ + SPACE+CNTRL, /* 0B (VT) */ + SPACE+CNTRL, /* 0C (FF) */ + SPACE+CNTRL, /* 0D (CR) */ + CNTRL, /* 0E (SI) */ + CNTRL, /* 0F (SO) */ + CNTRL, /* 10 (DLE) */ + CNTRL, /* 11 (DC1) */ + CNTRL, /* 12 (DC2) */ + CNTRL, /* 13 (DC3) */ + CNTRL, /* 14 (DC4) */ + CNTRL, /* 15 (NAK) */ + CNTRL, /* 16 (SYN) */ + CNTRL, /* 17 (ETB) */ + CNTRL, /* 18 (CAN) */ + CNTRL, /* 19 (EM) */ + CNTRL, /* 1A (SUB) */ + CNTRL, /* 1B (ESC) */ + CNTRL, /* 1C (FS) */ + CNTRL, /* 1D (GS) */ + CNTRL, /* 1E (RS) */ + CNTRL, /* 1F (US) */ + SPACE+BLANK, /* 20 SPACE */ + PUNCT, /* 21 ! */ + PUNCT, /* 22 " */ + PUNCT, /* 23 # */ + PUNCT, /* 24 $ */ + PUNCT, /* 25 % */ + PUNCT, /* 26 & */ + PUNCT, /* 27 ' */ + PUNCT, /* 28 ( */ + PUNCT, /* 29 ) */ + PUNCT, /* 2A * */ + PUNCT, /* 2B + */ + PUNCT, /* 2C , */ + PUNCT, /* 2D - */ + PUNCT, /* 2E . */ + PUNCT, /* 2F / */ + DIGIT+HEX+0, /* 30 0 */ + DIGIT+HEX+1, /* 31 1 */ + DIGIT+HEX+2, /* 32 2 */ + DIGIT+HEX+3, /* 33 3 */ + DIGIT+HEX+4, /* 34 4 */ + DIGIT+HEX+5, /* 35 5 */ + DIGIT+HEX+6, /* 36 6 */ + DIGIT+HEX+7, /* 37 7 */ + DIGIT+HEX+8, /* 38 8 */ + DIGIT+HEX+9, /* 39 9 */ + PUNCT, /* 3A : */ + PUNCT, /* 3B ; */ + PUNCT, /* 3C < */ + PUNCT, /* 3D = */ + PUNCT, /* 3E > */ + PUNCT, /* 3F ? */ + PUNCT, /* 40 @ */ + UPPER+HEX+10, /* 41 A */ + UPPER+HEX+11, /* 42 B */ + UPPER+HEX+12, /* 43 C */ + UPPER+HEX+13, /* 44 D */ + UPPER+HEX+14, /* 45 E */ + UPPER+HEX+15, /* 46 F */ + UPPER+16, /* 47 G */ + UPPER+17, /* 48 H */ + UPPER+18, /* 49 I */ + UPPER+19, /* 4A J */ + UPPER+20, /* 4B K */ + UPPER+21, /* 4C L */ + UPPER+22, /* 4D M */ + UPPER+23, /* 4E N */ + UPPER+24, /* 4F O */ + UPPER+25, /* 50 P */ + UPPER+26, /* 51 Q */ + UPPER+27, /* 52 R */ + UPPER+28, /* 53 S */ + UPPER+29, /* 54 T */ + UPPER+30, /* 55 U */ + UPPER+31, /* 56 V */ + UPPER+32, /* 57 W */ + UPPER+33, /* 58 X */ + UPPER+34, /* 59 Y */ + UPPER+35, /* 5A Z */ + PUNCT, /* 5B [ */ + PUNCT, /* 5C \ */ + PUNCT, /* 5D ] */ + PUNCT, /* 5E ^ */ + PUNCT|UNDER, /* 5F _ */ + PUNCT, /* 60 ` */ + LOWER+HEX+10, /* 61 a */ + LOWER+HEX+11, /* 62 b */ + LOWER+HEX+12, /* 63 c */ + LOWER+HEX+13, /* 64 d */ + LOWER+HEX+14, /* 65 e */ + LOWER+HEX+15, /* 66 f */ + LOWER+16, /* 67 g */ + LOWER+17, /* 68 h */ + LOWER+18, /* 69 i */ + LOWER+19, /* 6A j */ + LOWER+20, /* 6B k */ + LOWER+21, /* 6C l */ + LOWER+22, /* 6D m */ + LOWER+23, /* 6E n */ + LOWER+24, /* 6F o */ + LOWER+25, /* 70 p */ + LOWER+26, /* 71 q */ + LOWER+27, /* 72 r */ + LOWER+28, /* 73 s */ + LOWER+29, /* 74 t */ + LOWER+30, /* 75 u */ + LOWER+31, /* 76 v */ + LOWER+32, /* 77 w */ + LOWER+33, /* 78 x */ + LOWER+34, /* 79 y */ + LOWER+35, /* 7A z */ + PUNCT, /* 7B { */ + PUNCT, /* 7C | */ + PUNCT, /* 7D } */ + PUNCT, /* 7E ~ */ + CNTRL, /* 7F (DEL) */ + }; + + static int getType(int ch) { + return ((ch & 0xFFFFFF80) == 0 ? ctype[ch] : 0); + } + + static boolean isType(int ch, int type) { + return (getType(ch) & type) != 0; + } + + static boolean isAscii(int ch) { + return ((ch & 0xFFFFFF80) == 0); + } + + static boolean isAlpha(int ch) { + return isType(ch, ALPHA); + } + + static boolean isDigit(int ch) { + return ((ch-'0')|('9'-ch)) >= 0; + } + + static boolean isAlnum(int ch) { + return isType(ch, ALNUM); + } + + static boolean isGraph(int ch) { + return isType(ch, GRAPH); + } + + static boolean isPrint(int ch) { + return ((ch-0x20)|(0x7E-ch)) >= 0; + } + + static boolean isPunct(int ch) { + return isType(ch, PUNCT); + } + + static boolean isSpace(int ch) { + return isType(ch, SPACE); + } + + static boolean isHexDigit(int ch) { + return isType(ch, HEX); + } + + static boolean isOctDigit(int ch) { + return ((ch-'0')|('7'-ch)) >= 0; + } + + static boolean isCntrl(int ch) { + return isType(ch, CNTRL); + } + + static boolean isLower(int ch) { + return ((ch-'a')|('z'-ch)) >= 0; + } + + static boolean isUpper(int ch) { + return ((ch-'A')|('Z'-ch)) >= 0; + } + + static boolean isWord(int ch) { + return isType(ch, WORD); + } + + static int toDigit(int ch) { + return (ctype[ch & 0x7F] & 0x3F); + } + + static int toLower(int ch) { + return isUpper(ch) ? (ch + 0x20) : ch; + } + + static int toUpper(int ch) { + return isLower(ch) ? (ch - 0x20) : ch; + } + +} diff --git a/app/src/main/java/java/util/regex/MatchResult.java b/app/src/main/java/java/util/regex/MatchResult.java new file mode 100644 index 000000000..097c9b6e9 --- /dev/null +++ b/app/src/main/java/java/util/regex/MatchResult.java @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.util.regex; + +/** + * The result of a match operation. + * + *

This interface contains query methods used to determine the + * results of a match against a regular expression. The match boundaries, + * groups and group boundaries can be seen but not modified through + * a MatchResult. + * + * @author Michael McCloskey + * @see Matcher + * @since 1.5 + */ +public interface MatchResult { + + /** + * Returns the start index of the match. + * + * @return The index of the first character matched + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public int start(); + + /** + * Returns the start index of the subsequence captured by the given group + * during this match. + * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.start(0) is equivalent to + * m.start().

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The index of the first character captured by the group, + * or -1 if the match was successful but the group + * itself did not match anything + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public int start(int group); + + /** + * Returns the offset after the last character matched.

+ * + * @return @return The offset after the last character matched + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public int end(); + + /** + * Returns the offset after the last character of the subsequence + * captured by the given group during this match. + * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.end(0) is equivalent to + * m.end().

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The offset after the last character captured by the group, + * or -1 if the match was successful + * but the group itself did not match anything + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public int end(int group); + + /** + * Returns the input subsequence matched by the previous match. + * + *

For a matcher m with input sequence s, + * the expressions m.group() and + * s.substring(m.start(), m.end()) + * are equivalent.

+ * + *

Note that some patterns, for example a*, match the empty + * string. This method will return the empty string when the pattern + * successfully matches the empty string in the input.

+ * + * @return The (possibly empty) subsequence matched by the previous match, + * in string form + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public String group(); + + /** + * Returns the input subsequence captured by the given group during the + * previous match operation. + * + *

For a matcher m, input sequence s, and group index + * g, the expressions m.group(g) and + * s.substring(m.start(g), m.end(g)) + * are equivalent.

+ * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.group(0) is equivalent to m.group(). + *

+ * + *

If the match was successful but the group specified failed to match + * any part of the input sequence, then null is returned. Note + * that some groups, for example (a*), match the empty string. + * This method will return the empty string when such a group successfully + * matches the empty string in the input.

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The (possibly empty) subsequence captured by the group + * during the previous match, or null if the group + * failed to match part of the input + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public String group(int group); + + /** + * Returns the number of capturing groups in this match result's pattern. + * + *

Group zero denotes the entire pattern by convention. It is not + * included in this count. + * + *

Any non-negative integer smaller than or equal to the value + * returned by this method is guaranteed to be a valid group index for + * this matcher.

+ * + * @return The number of capturing groups in this matcher's pattern + */ + public int groupCount(); + +} diff --git a/app/src/main/java/java/util/regex/Matcher.java b/app/src/main/java/java/util/regex/Matcher.java new file mode 100644 index 000000000..bfb92c5c1 --- /dev/null +++ b/app/src/main/java/java/util/regex/Matcher.java @@ -0,0 +1,1257 @@ +/* + * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.util.regex; + + +/** + * An engine that performs match operations on a {@link java.lang.CharSequence + * character sequence} by interpreting a {@link Pattern}. + * + *

A matcher is created from a pattern by invoking the pattern's {@link + * Pattern#matcher matcher} method. Once created, a matcher can be used to + * perform three different kinds of match operations: + * + *

    + * + *
  • The {@link #matches matches} method attempts to match the entire + * input sequence against the pattern.

  • + * + *
  • The {@link #lookingAt lookingAt} method attempts to match the + * input sequence, starting at the beginning, against the pattern.

  • + * + *
  • The {@link #find find} method scans the input sequence looking for + * the next subsequence that matches the pattern.

  • + * + *
+ * + *

Each of these methods returns a boolean indicating success or failure. + * More information about a successful match can be obtained by querying the + * state of the matcher. + * + *

A matcher finds matches in a subset of its input called the + * region. By default, the region contains all of the matcher's input. + * The region can be modified via the{@link #region region} method and queried + * via the {@link #regionStart regionStart} and {@link #regionEnd regionEnd} + * methods. The way that the region boundaries interact with some pattern + * constructs can be changed. See {@link #useAnchoringBounds + * useAnchoringBounds} and {@link #useTransparentBounds useTransparentBounds} + * for more details. + * + *

This class also defines methods for replacing matched subsequences with + * new strings whose contents can, if desired, be computed from the match + * result. The {@link #appendReplacement appendReplacement} and {@link + * #appendTail appendTail} methods can be used in tandem in order to collect + * the result into an existing string buffer, or the more convenient {@link + * #replaceAll replaceAll} method can be used to create a string in which every + * matching subsequence in the input sequence is replaced. + * + *

The explicit state of a matcher includes the start and end indices of + * the most recent successful match. It also includes the start and end + * indices of the input subsequence captured by each capturing group in the pattern as well as a total + * count of such subsequences. As a convenience, methods are also provided for + * returning these captured subsequences in string form. + * + *

The explicit state of a matcher is initially undefined; attempting to + * query any part of it before a successful match will cause an {@link + * IllegalStateException} to be thrown. The explicit state of a matcher is + * recomputed by every match operation. + * + *

The implicit state of a matcher includes the input character sequence as + * well as the append position, which is initially zero and is updated + * by the {@link #appendReplacement appendReplacement} method. + * + *

A matcher may be reset explicitly by invoking its {@link #reset()} + * method or, if a new input sequence is desired, its {@link + * #reset(java.lang.CharSequence) reset(CharSequence)} method. Resetting a + * matcher discards its explicit state information and sets the append position + * to zero. + * + *

Instances of this class are not safe for use by multiple concurrent + * threads.

+ * + * + * @author Mike McCloskey + * @author Mark Reinhold + * @author JSR-51 Expert Group + * @since 1.4 + * @spec JSR-51 + */ + +public final class Matcher implements MatchResult { + + /** + * The Pattern object that created this Matcher. + */ + Pattern parentPattern; + + /** + * The storage used by groups. They may contain invalid values if + * a group was skipped during the matching. + */ + int[] groups; + + /** + * The range within the sequence that is to be matched. Anchors + * will match at these "hard" boundaries. Changing the region + * changes these values. + */ + int from, to; + + /** + * Lookbehind uses this value to ensure that the subexpression + * match ends at the point where the lookbehind was encountered. + */ + int lookbehindTo; + + /** + * The original string being matched. + */ + CharSequence text; + + /** + * Matcher state used by the last node. NOANCHOR is used when a + * match does not have to consume all of the input. ENDANCHOR is + * the mode used for matching all the input. + */ + static final int ENDANCHOR = 1; + static final int NOANCHOR = 0; + int acceptMode = NOANCHOR; + + /** + * The range of string that last matched the pattern. If the last + * match failed then first is -1; last initially holds 0 then it + * holds the index of the end of the last match (which is where the + * next search starts). + */ + int first = -1, last = 0; + + /** + * The end index of what matched in the last match operation. + */ + int oldLast = -1; + + /** + * The index of the last position appended in a substitution. + */ + int lastAppendPosition = 0; + + /** + * Storage used by nodes to tell what repetition they are on in + * a pattern, and where groups begin. The nodes themselves are stateless, + * so they rely on this field to hold state during a match. + */ + int[] locals; + + /** + * Boolean indicating whether or not more input could change + * the results of the last match. + * + * If hitEnd is true, and a match was found, then more input + * might cause a different match to be found. + * If hitEnd is true and a match was not found, then more + * input could cause a match to be found. + * If hitEnd is false and a match was found, then more input + * will not change the match. + * If hitEnd is false and a match was not found, then more + * input will not cause a match to be found. + */ + boolean hitEnd; + + /** + * Boolean indicating whether or not more input could change + * a positive match into a negative one. + * + * If requireEnd is true, and a match was found, then more + * input could cause the match to be lost. + * If requireEnd is false and a match was found, then more + * input might change the match but the match won't be lost. + * If a match was not found, then requireEnd has no meaning. + */ + boolean requireEnd; + + /** + * If transparentBounds is true then the boundaries of this + * matcher's region are transparent to lookahead, lookbehind, + * and boundary matching constructs that try to see beyond them. + */ + boolean transparentBounds = false; + + /** + * If anchoringBounds is true then the boundaries of this + * matcher's region match anchors such as ^ and $. + */ + boolean anchoringBounds = true; + + /** + * No default constructor. + */ + Matcher() { + } + + /** + * All matchers have the state used by Pattern during a match. + */ + Matcher(Pattern parent, CharSequence text) { + this.parentPattern = parent; + this.text = text; + + // Allocate state storage + int parentGroupCount = Math.max(parent.capturingGroupCount, 10); + groups = new int[parentGroupCount * 2]; + locals = new int[parent.localCount]; + + // Put fields into initial states + reset(); + } + + /** + * Returns the pattern that is interpreted by this matcher. + * + * @return The pattern for which this matcher was created + */ + public Pattern pattern() { + return parentPattern; + } + + /** + * Returns the match state of this matcher as a {@link MatchResult}. + * The result is unaffected by subsequent operations performed upon this + * matcher. + * + * @return a MatchResult with the state of this matcher + * @since 1.5 + */ + public MatchResult toMatchResult() { + Matcher result = new Matcher(this.parentPattern, text.toString()); + result.first = this.first; + result.last = this.last; + result.groups = this.groups.clone(); + return result; + } + + /** + * Changes the Pattern that this Matcher uses to + * find matches with. + * + *

This method causes this matcher to lose information + * about the groups of the last match that occurred. The + * matcher's position in the input is maintained and its + * last append position is unaffected.

+ * + * @param newPattern + * The new pattern used by this matcher + * @return This matcher + * @throws IllegalArgumentException + * If newPattern is null + * @since 1.5 + */ + public Matcher usePattern(Pattern newPattern) { + if (newPattern == null) + throw new IllegalArgumentException("Pattern cannot be null"); + parentPattern = newPattern; + + // Reallocate state storage + int parentGroupCount = Math.max(newPattern.capturingGroupCount, 10); + groups = new int[parentGroupCount * 2]; + locals = new int[newPattern.localCount]; + for (int i = 0; i < groups.length; i++) + groups[i] = -1; + for (int i = 0; i < locals.length; i++) + locals[i] = -1; + return this; + } + + /** + * Resets this matcher. + * + *

Resetting a matcher discards all of its explicit state information + * and sets its append position to zero. The matcher's region is set to the + * default region, which is its entire character sequence. The anchoring + * and transparency of this matcher's region boundaries are unaffected. + * + * @return This matcher + */ + public Matcher reset() { + first = -1; + last = 0; + oldLast = -1; + for(int i=0; i Resetting a matcher discards all of its explicit state information + * and sets its append position to zero. The matcher's region is set to + * the default region, which is its entire character sequence. The + * anchoring and transparency of this matcher's region boundaries are + * unaffected. + * + * @param input + * The new input character sequence + * + * @return This matcher + */ + public Matcher reset(CharSequence input) { + text = input; + return reset(); + } + + /** + * Returns the start index of the previous match.

+ * + * @return The index of the first character matched + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public int start() { + if (first < 0) + throw new IllegalStateException("No match available"); + return first; + } + + /** + * Returns the start index of the subsequence captured by the given group + * during the previous match operation. + * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.start(0) is equivalent to + * m.start().

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The index of the first character captured by the group, + * or -1 if the match was successful but the group + * itself did not match anything + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public int start(int group) { + if (first < 0) + throw new IllegalStateException("No match available"); + if (group > groupCount()) + throw new IndexOutOfBoundsException("No group " + group); + return groups[group * 2]; + } + + /** + * Returns the offset after the last character matched.

+ * + * @return The offset after the last character matched + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public int end() { + if (first < 0) + throw new IllegalStateException("No match available"); + return last; + } + + /** + * Returns the offset after the last character of the subsequence + * captured by the given group during the previous match operation. + * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.end(0) is equivalent to + * m.end().

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The offset after the last character captured by the group, + * or -1 if the match was successful + * but the group itself did not match anything + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public int end(int group) { + if (first < 0) + throw new IllegalStateException("No match available"); + if (group > groupCount()) + throw new IndexOutOfBoundsException("No group " + group); + return groups[group * 2 + 1]; + } + + /** + * Returns the input subsequence matched by the previous match. + * + *

For a matcher m with input sequence s, + * the expressions m.group() and + * s.substring(m.start(), m.end()) + * are equivalent.

+ * + *

Note that some patterns, for example a*, match the empty + * string. This method will return the empty string when the pattern + * successfully matches the empty string in the input.

+ * + * @return The (possibly empty) subsequence matched by the previous match, + * in string form + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + */ + public String group() { + return group(0); + } + + /** + * Returns the input subsequence captured by the given group during the + * previous match operation. + * + *

For a matcher m, input sequence s, and group index + * g, the expressions m.group(g) and + * s.substring(m.start(g), m.end(g)) + * are equivalent.

+ * + *

Capturing groups are indexed from left + * to right, starting at one. Group zero denotes the entire pattern, so + * the expression m.group(0) is equivalent to m.group(). + *

+ * + *

If the match was successful but the group specified failed to match + * any part of the input sequence, then null is returned. Note + * that some groups, for example (a*), match the empty string. + * This method will return the empty string when such a group successfully + * matches the empty string in the input.

+ * + * @param group + * The index of a capturing group in this matcher's pattern + * + * @return The (possibly empty) subsequence captured by the group + * during the previous match, or null if the group + * failed to match part of the input + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IndexOutOfBoundsException + * If there is no capturing group in the pattern + * with the given index + */ + public String group(int group) { + if (first < 0) + throw new IllegalStateException("No match found"); + if (group < 0 || group > groupCount()) + throw new IndexOutOfBoundsException("No group " + group); + if ((groups[group*2] == -1) || (groups[group*2+1] == -1)) + return null; + return getSubSequence(groups[group * 2], groups[group * 2 + 1]).toString(); + } + + /** + * Returns the input subsequence captured by the given + * named-capturing group during the previous + * match operation. + * + *

If the match was successful but the group specified failed to match + * any part of the input sequence, then null is returned. Note + * that some groups, for example (a*), match the empty string. + * This method will return the empty string when such a group successfully + * matches the empty string in the input.

+ * + * @param name + * The name of a named-capturing group in this matcher's pattern + * + * @return The (possibly empty) subsequence captured by the named group + * during the previous match, or null if the group + * failed to match part of the input + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IllegalArgumentException + * If there is no capturing group in the pattern + * with the given name + * @since 1.7 + */ + public String group(String name) { + if (name == null) + throw new NullPointerException("Null group name"); + if (first < 0) + throw new IllegalStateException("No match found"); + if (!parentPattern.namedGroups().containsKey(name)) + throw new IllegalArgumentException("No group with name <" + name + ">"); + int group = parentPattern.namedGroups().get(name); + if ((groups[group*2] == -1) || (groups[group*2+1] == -1)) + return null; + return getSubSequence(groups[group * 2], groups[group * 2 + 1]).toString(); + } + + /** + * Returns the number of capturing groups in this matcher's pattern. + * + *

Group zero denotes the entire pattern by convention. It is not + * included in this count. + * + *

Any non-negative integer smaller than or equal to the value + * returned by this method is guaranteed to be a valid group index for + * this matcher.

+ * + * @return The number of capturing groups in this matcher's pattern + */ + public int groupCount() { + return parentPattern.capturingGroupCount - 1; + } + + /** + * Attempts to match the entire region against the pattern. + * + *

If the match succeeds then more information can be obtained via the + * start, end, and group methods.

+ * + * @return true if, and only if, the entire region sequence + * matches this matcher's pattern + */ + public boolean matches() { + return match(from, ENDANCHOR); + } + + /** + * Attempts to find the next subsequence of the input sequence that matches + * the pattern. + * + *

This method starts at the beginning of this matcher's region, or, if + * a previous invocation of the method was successful and the matcher has + * not since been reset, at the first character not matched by the previous + * match. + * + *

If the match succeeds then more information can be obtained via the + * start, end, and group methods.

+ * + * @return true if, and only if, a subsequence of the input + * sequence matches this matcher's pattern + */ + public boolean find() { + int nextSearchIndex = last; + if (nextSearchIndex == first) + nextSearchIndex++; + + // If next search starts before region, start it at region + if (nextSearchIndex < from) + nextSearchIndex = from; + + // If next search starts beyond region then it fails + if (nextSearchIndex > to) { + for (int i = 0; i < groups.length; i++) + groups[i] = -1; + return false; + } + return search(nextSearchIndex); + } + + /** + * Resets this matcher and then attempts to find the next subsequence of + * the input sequence that matches the pattern, starting at the specified + * index. + * + *

If the match succeeds then more information can be obtained via the + * start, end, and group methods, and subsequent + * invocations of the {@link #find()} method will start at the first + * character not matched by this match.

+ * + * @throws IndexOutOfBoundsException + * If start is less than zero or if start is greater than the + * length of the input sequence. + * + * @return true if, and only if, a subsequence of the input + * sequence starting at the given index matches this matcher's + * pattern + */ + public boolean find(int start) { + int limit = getTextLength(); + if ((start < 0) || (start > limit)) + throw new IndexOutOfBoundsException("Illegal start index"); + reset(); + return search(start); + } + + /** + * Attempts to match the input sequence, starting at the beginning of the + * region, against the pattern. + * + *

Like the {@link #matches matches} method, this method always starts + * at the beginning of the region; unlike that method, it does not + * require that the entire region be matched. + * + *

If the match succeeds then more information can be obtained via the + * start, end, and group methods.

+ * + * @return true if, and only if, a prefix of the input + * sequence matches this matcher's pattern + */ + public boolean lookingAt() { + return match(from, NOANCHOR); + } + + /** + * Returns a literal replacement String for the specified + * String. + * + * This method produces a String that will work + * as a literal replacement s in the + * appendReplacement method of the {@link Matcher} class. + * The String produced will match the sequence of characters + * in s treated as a literal sequence. Slashes ('\') and + * dollar signs ('$') will be given no special meaning. + * + * @param s The string to be literalized + * @return A literal string replacement + * @since 1.5 + */ + public static String quoteReplacement(String s) { + if ((s.indexOf('\\') == -1) && (s.indexOf('$') == -1)) + return s; + StringBuilder sb = new StringBuilder(); + for (int i=0; i This method performs the following actions:

+ * + *
    + * + *
  1. It reads characters from the input sequence, starting at the + * append position, and appends them to the given string buffer. It + * stops after reading the last character preceding the previous match, + * that is, the character at index {@link + * #start()} - 1.

  2. + * + *
  3. It appends the given replacement string to the string buffer. + *

  4. + * + *
  5. It sets the append position of this matcher to the index of + * the last character matched, plus one, that is, to {@link #end()}. + *

  6. + * + *
+ * + *

The replacement string may contain references to subsequences + * captured during the previous match: Each occurrence of + * ${name} or $g + * will be replaced by the result of evaluating the corresponding + * {@link #group(String) group(name)} or {@link #group(int) group(g)} + * respectively. For $g, + * the first number after the $ is always treated as part of + * the group reference. Subsequent numbers are incorporated into g if + * they would form a legal group reference. Only the numerals '0' + * through '9' are considered as potential components of the group + * reference. If the second group matched the string "foo", for + * example, then passing the replacement string "$2bar" would + * cause "foobar" to be appended to the string buffer. A dollar + * sign ($) may be included as a literal in the replacement + * string by preceding it with a backslash (\$). + * + *

Note that backslashes (\) and dollar signs ($) in + * the replacement string may cause the results to be different than if it + * were being treated as a literal replacement string. Dollar signs may be + * treated as references to captured subsequences as described above, and + * backslashes are used to escape literal characters in the replacement + * string. + * + *

This method is intended to be used in a loop together with the + * {@link #appendTail appendTail} and {@link #find find} methods. The + * following code, for example, writes one dog two dogs in the + * yard to the standard-output stream:

+ * + *
+     * Pattern p = Pattern.compile("cat");
+     * Matcher m = p.matcher("one cat two cats in the yard");
+     * StringBuffer sb = new StringBuffer();
+     * while (m.find()) {
+     *     m.appendReplacement(sb, "dog");
+     * }
+     * m.appendTail(sb);
+     * System.out.println(sb.toString());
+ * + * @param sb + * The target string buffer + * + * @param replacement + * The replacement string + * + * @return This matcher + * + * @throws IllegalStateException + * If no match has yet been attempted, + * or if the previous match operation failed + * + * @throws IllegalArgumentException + * If the replacement string refers to a named-capturing + * group that does not exist in the pattern + * + * @throws IndexOutOfBoundsException + * If the replacement string refers to a capturing group + * that does not exist in the pattern + */ + public Matcher appendReplacement(StringBuffer sb, String replacement) { + + // If no match, return error + if (first < 0) + throw new IllegalStateException("No match available"); + + // Process substitution string to replace group references with groups + int cursor = 0; + StringBuilder result = new StringBuilder(); + + while (cursor < replacement.length()) { + char nextChar = replacement.charAt(cursor); + if (nextChar == '\\') { + cursor++; + nextChar = replacement.charAt(cursor); + result.append(nextChar); + cursor++; + } else if (nextChar == '$') { + // Skip past $ + cursor++; + // A StringIndexOutOfBoundsException is thrown if + // this "$" is the last character in replacement + // string in current implementation, a IAE might be + // more appropriate. + nextChar = replacement.charAt(cursor); + int refNum = -1; + if (nextChar == '{') { + cursor++; + StringBuilder gsb = new StringBuilder(); + while (cursor < replacement.length()) { + nextChar = replacement.charAt(cursor); + if (ASCII.isLower(nextChar) || + ASCII.isUpper(nextChar) || + ASCII.isDigit(nextChar)) { + gsb.append(nextChar); + cursor++; + } else { + break; + } + } + if (gsb.length() == 0) + throw new IllegalArgumentException( + "named capturing group has 0 length name"); + if (nextChar != '}') + throw new IllegalArgumentException( + "named capturing group is missing trailing '}'"); + String gname = gsb.toString(); + if (ASCII.isDigit(gname.charAt(0))) + throw new IllegalArgumentException( + "capturing group name {" + gname + + "} starts with digit character"); + if (!parentPattern.namedGroups().containsKey(gname)) + throw new IllegalArgumentException( + "No group with name {" + gname + "}"); + refNum = parentPattern.namedGroups().get(gname); + cursor++; + } else { + // The first number is always a group + refNum = (int)nextChar - '0'; + if ((refNum < 0)||(refNum > 9)) + throw new IllegalArgumentException( + "Illegal group reference"); + cursor++; + // Capture the largest legal group string + boolean done = false; + while (!done) { + if (cursor >= replacement.length()) { + break; + } + int nextDigit = replacement.charAt(cursor) - '0'; + if ((nextDigit < 0)||(nextDigit > 9)) { // not a number + break; + } + int newRefNum = (refNum * 10) + nextDigit; + if (groupCount() < newRefNum) { + done = true; + } else { + refNum = newRefNum; + cursor++; + } + } + } + // Append group + if (start(refNum) != -1 && end(refNum) != -1) + result.append(text, start(refNum), end(refNum)); + } else { + result.append(nextChar); + cursor++; + } + } + // Append the intervening text + sb.append(text, lastAppendPosition, first); + // Append the match substitution + sb.append(result); + + lastAppendPosition = last; + return this; + } + + /** + * Implements a terminal append-and-replace step. + * + *

This method reads characters from the input sequence, starting at + * the append position, and appends them to the given string buffer. It is + * intended to be invoked after one or more invocations of the {@link + * #appendReplacement appendReplacement} method in order to copy the + * remainder of the input sequence.

+ * + * @param sb + * The target string buffer + * + * @return The target string buffer + */ + public StringBuffer appendTail(StringBuffer sb) { + sb.append(text, lastAppendPosition, getTextLength()); + return sb; + } + + /** + * Replaces every subsequence of the input sequence that matches the + * pattern with the given replacement string. + * + *

This method first resets this matcher. It then scans the input + * sequence looking for matches of the pattern. Characters that are not + * part of any match are appended directly to the result string; each match + * is replaced in the result by the replacement string. The replacement + * string may contain references to captured subsequences as in the {@link + * #appendReplacement appendReplacement} method. + * + *

Note that backslashes (\) and dollar signs ($) in + * the replacement string may cause the results to be different than if it + * were being treated as a literal replacement string. Dollar signs may be + * treated as references to captured subsequences as described above, and + * backslashes are used to escape literal characters in the replacement + * string. + * + *

Given the regular expression a*b, the input + * "aabfooaabfooabfoob", and the replacement string + * "-", an invocation of this method on a matcher for that + * expression would yield the string "-foo-foo-foo-". + * + *

Invoking this method changes this matcher's state. If the matcher + * is to be used in further matching operations then it should first be + * reset.

+ * + * @param replacement + * The replacement string + * + * @return The string constructed by replacing each matching subsequence + * by the replacement string, substituting captured subsequences + * as needed + */ + public String replaceAll(String replacement) { + reset(); + boolean result = find(); + if (result) { + StringBuffer sb = new StringBuffer(); + do { + appendReplacement(sb, replacement); + result = find(); + } while (result); + appendTail(sb); + return sb.toString(); + } + return text.toString(); + } + + /** + * Replaces the first subsequence of the input sequence that matches the + * pattern with the given replacement string. + * + *

This method first resets this matcher. It then scans the input + * sequence looking for a match of the pattern. Characters that are not + * part of the match are appended directly to the result string; the match + * is replaced in the result by the replacement string. The replacement + * string may contain references to captured subsequences as in the {@link + * #appendReplacement appendReplacement} method. + * + *

Note that backslashes (\) and dollar signs ($) in + * the replacement string may cause the results to be different than if it + * were being treated as a literal replacement string. Dollar signs may be + * treated as references to captured subsequences as described above, and + * backslashes are used to escape literal characters in the replacement + * string. + * + *

Given the regular expression dog, the input + * "zzzdogzzzdogzzz", and the replacement string + * "cat", an invocation of this method on a matcher for that + * expression would yield the string "zzzcatzzzdogzzz".

+ * + *

Invoking this method changes this matcher's state. If the matcher + * is to be used in further matching operations then it should first be + * reset.

+ * + * @param replacement + * The replacement string + * @return The string constructed by replacing the first matching + * subsequence by the replacement string, substituting captured + * subsequences as needed + */ + public String replaceFirst(String replacement) { + if (replacement == null) + throw new NullPointerException("replacement"); + reset(); + if (!find()) + return text.toString(); + StringBuffer sb = new StringBuffer(); + appendReplacement(sb, replacement); + appendTail(sb); + return sb.toString(); + } + + /** + * Sets the limits of this matcher's region. The region is the part of the + * input sequence that will be searched to find a match. Invoking this + * method resets the matcher, and then sets the region to start at the + * index specified by the start parameter and end at the + * index specified by the end parameter. + * + *

Depending on the transparency and anchoring being used (see + * {@link #useTransparentBounds useTransparentBounds} and + * {@link #useAnchoringBounds useAnchoringBounds}), certain constructs such + * as anchors may behave differently at or around the boundaries of the + * region. + * + * @param start + * The index to start searching at (inclusive) + * @param end + * The index to end searching at (exclusive) + * @throws IndexOutOfBoundsException + * If start or end is less than zero, if + * start is greater than the length of the input sequence, if + * end is greater than the length of the input sequence, or if + * start is greater than end. + * @return this matcher + * @since 1.5 + */ + public Matcher region(int start, int end) { + if ((start < 0) || (start > getTextLength())) + throw new IndexOutOfBoundsException("start"); + if ((end < 0) || (end > getTextLength())) + throw new IndexOutOfBoundsException("end"); + if (start > end) + throw new IndexOutOfBoundsException("start > end"); + reset(); + from = start; + to = end; + return this; + } + + /** + * Reports the start index of this matcher's region. The + * searches this matcher conducts are limited to finding matches + * within {@link #regionStart regionStart} (inclusive) and + * {@link #regionEnd regionEnd} (exclusive). + * + * @return The starting point of this matcher's region + * @since 1.5 + */ + public int regionStart() { + return from; + } + + /** + * Reports the end index (exclusive) of this matcher's region. + * The searches this matcher conducts are limited to finding matches + * within {@link #regionStart regionStart} (inclusive) and + * {@link #regionEnd regionEnd} (exclusive). + * + * @return the ending point of this matcher's region + * @since 1.5 + */ + public int regionEnd() { + return to; + } + + /** + * Queries the transparency of region bounds for this matcher. + * + *

This method returns true if this matcher uses + * transparent bounds, false if it uses opaque + * bounds. + * + *

See {@link #useTransparentBounds useTransparentBounds} for a + * description of transparent and opaque bounds. + * + *

By default, a matcher uses opaque region boundaries. + * + * @return true iff this matcher is using transparent bounds, + * false otherwise. + * @see java.util.regex.Matcher#useTransparentBounds(boolean) + * @since 1.5 + */ + public boolean hasTransparentBounds() { + return transparentBounds; + } + + /** + * Sets the transparency of region bounds for this matcher. + * + *

Invoking this method with an argument of true will set this + * matcher to use transparent bounds. If the boolean + * argument is false, then opaque bounds will be used. + * + *

Using transparent bounds, the boundaries of this + * matcher's region are transparent to lookahead, lookbehind, + * and boundary matching constructs. Those constructs can see beyond the + * boundaries of the region to see if a match is appropriate. + * + *

Using opaque bounds, the boundaries of this matcher's + * region are opaque to lookahead, lookbehind, and boundary matching + * constructs that may try to see beyond them. Those constructs cannot + * look past the boundaries so they will fail to match anything outside + * of the region. + * + *

By default, a matcher uses opaque bounds. + * + * @param b a boolean indicating whether to use opaque or transparent + * regions + * @return this matcher + * @see java.util.regex.Matcher#hasTransparentBounds + * @since 1.5 + */ + public Matcher useTransparentBounds(boolean b) { + transparentBounds = b; + return this; + } + + /** + * Queries the anchoring of region bounds for this matcher. + * + *

This method returns true if this matcher uses + * anchoring bounds, false otherwise. + * + *

See {@link #useAnchoringBounds useAnchoringBounds} for a + * description of anchoring bounds. + * + *

By default, a matcher uses anchoring region boundaries. + * + * @return true iff this matcher is using anchoring bounds, + * false otherwise. + * @see java.util.regex.Matcher#useAnchoringBounds(boolean) + * @since 1.5 + */ + public boolean hasAnchoringBounds() { + return anchoringBounds; + } + + /** + * Sets the anchoring of region bounds for this matcher. + * + *

Invoking this method with an argument of true will set this + * matcher to use anchoring bounds. If the boolean + * argument is false, then non-anchoring bounds will be + * used. + * + *

Using anchoring bounds, the boundaries of this + * matcher's region match anchors such as ^ and $. + * + *

Without anchoring bounds, the boundaries of this + * matcher's region will not match anchors such as ^ and $. + * + *

By default, a matcher uses anchoring region boundaries. + * + * @param b a boolean indicating whether or not to use anchoring bounds. + * @return this matcher + * @see java.util.regex.Matcher#hasAnchoringBounds + * @since 1.5 + */ + public Matcher useAnchoringBounds(boolean b) { + anchoringBounds = b; + return this; + } + + /** + *

Returns the string representation of this matcher. The + * string representation of a Matcher contains information + * that may be useful for debugging. The exact format is unspecified. + * + * @return The string representation of this matcher + * @since 1.5 + */ + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("java.util.regex.Matcher"); + sb.append("[pattern=" + pattern()); + sb.append(" region="); + sb.append(regionStart() + "," + regionEnd()); + sb.append(" lastmatch="); + if ((first >= 0) && (group() != null)) { + sb.append(group()); + } + sb.append("]"); + return sb.toString(); + } + + /** + *

Returns true if the end of input was hit by the search engine in + * the last match operation performed by this matcher. + * + *

When this method returns true, then it is possible that more input + * would have changed the result of the last search. + * + * @return true iff the end of input was hit in the last match; false + * otherwise + * @since 1.5 + */ + public boolean hitEnd() { + return hitEnd; + } + + /** + *

Returns true if more input could change a positive match into a + * negative one. + * + *

If this method returns true, and a match was found, then more + * input could cause the match to be lost. If this method returns false + * and a match was found, then more input might change the match but the + * match won't be lost. If a match was not found, then requireEnd has no + * meaning. + * + * @return true iff more input could change a positive match into a + * negative one. + * @since 1.5 + */ + public boolean requireEnd() { + return requireEnd; + } + + /** + * Initiates a search to find a Pattern within the given bounds. + * The groups are filled with default values and the match of the root + * of the state machine is called. The state machine will hold the state + * of the match as it proceeds in this matcher. + * + * Matcher.from is not set here, because it is the "hard" boundary + * of the start of the search which anchors will set to. The from param + * is the "soft" boundary of the start of the search, meaning that the + * regex tries to match at that index but ^ won't match there. Subsequent + * calls to the search methods start at a new "soft" boundary which is + * the end of the previous match. + */ + boolean search(int from) { + this.hitEnd = false; + this.requireEnd = false; + from = from < 0 ? 0 : from; + this.first = from; + this.oldLast = oldLast < 0 ? from : oldLast; + for (int i = 0; i < groups.length; i++) + groups[i] = -1; + acceptMode = NOANCHOR; + boolean result = parentPattern.root.match(this, from, text); + if (!result) + this.first = -1; + this.oldLast = this.last; + return result; + } + + /** + * Initiates a search for an anchored match to a Pattern within the given + * bounds. The groups are filled with default values and the match of the + * root of the state machine is called. The state machine will hold the + * state of the match as it proceeds in this matcher. + */ + boolean match(int from, int anchor) { + this.hitEnd = false; + this.requireEnd = false; + from = from < 0 ? 0 : from; + this.first = from; + this.oldLast = oldLast < 0 ? from : oldLast; + for (int i = 0; i < groups.length; i++) + groups[i] = -1; + acceptMode = anchor; + boolean result = parentPattern.matchRoot.match(this, from, text); + if (!result) + this.first = -1; + this.oldLast = this.last; + return result; + } + + /** + * Returns the end index of the text. + * + * @return the index after the last character in the text + */ + int getTextLength() { + return text.length(); + } + + /** + * Generates a String from this Matcher's input in the specified range. + * + * @param beginIndex the beginning index, inclusive + * @param endIndex the ending index, exclusive + * @return A String generated from this Matcher's input + */ + CharSequence getSubSequence(int beginIndex, int endIndex) { + return text.subSequence(beginIndex, endIndex); + } + + /** + * Returns this Matcher's input character at index i. + * + * @return A char from the specified index + */ + char charAt(int i) { + return text.charAt(i); + } + +} diff --git a/app/src/main/java/java/util/regex/Pattern.java b/app/src/main/java/java/util/regex/Pattern.java new file mode 100644 index 000000000..2324934cc --- /dev/null +++ b/app/src/main/java/java/util/regex/Pattern.java @@ -0,0 +1,4923 @@ +/* + * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.util.regex; + +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.text.CharacterIterator; +import java.text.Normalizer; +import java.util.Locale; +import java.util.Map; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Arrays; + +public final class Pattern + implements java.io.Serializable +{ + + /** + * Regular expression modifier values. Instead of being passed as + * arguments, they can also be passed as inline modifiers. + * For example, the following statements have the same effect. + *

+     * RegExp r1 = RegExp.compile("abc", Pattern.I|Pattern.M);
+     * RegExp r2 = RegExp.compile("(?im)abc", 0);
+     * 
+ * + * The flags are duplicated so that the familiar Perl match flag + * names are available. + */ + + /** + * Enables Unix lines mode. + * + *

In this mode, only the '\n' line terminator is recognized + * in the behavior of ., ^, and $. + * + *

Unix lines mode can also be enabled via the embedded flag + * expression (?d). + */ + public static final int UNIX_LINES = 0x01; + + /** + * Enables case-insensitive matching. + * + *

By default, case-insensitive matching assumes that only characters + * in the US-ASCII charset are being matched. Unicode-aware + * case-insensitive matching can be enabled by specifying the {@link + * #UNICODE_CASE} flag in conjunction with this flag. + * + *

Case-insensitive matching can also be enabled via the embedded flag + * expression (?i). + * + *

Specifying this flag may impose a slight performance penalty.

+ */ + public static final int CASE_INSENSITIVE = 0x02; + + /** + * Permits whitespace and comments in pattern. + * + *

In this mode, whitespace is ignored, and embedded comments starting + * with # are ignored until the end of a line. + * + *

Comments mode can also be enabled via the embedded flag + * expression (?x). + */ + public static final int COMMENTS = 0x04; + + /** + * Enables multiline mode. + * + *

In multiline mode the expressions ^ and $ match + * just after or just before, respectively, a line terminator or the end of + * the input sequence. By default these expressions only match at the + * beginning and the end of the entire input sequence. + * + *

Multiline mode can also be enabled via the embedded flag + * expression (?m).

+ */ + public static final int MULTILINE = 0x08; + + /** + * Enables literal parsing of the pattern. + * + *

When this flag is specified then the input string that specifies + * the pattern is treated as a sequence of literal characters. + * Metacharacters or escape sequences in the input sequence will be + * given no special meaning. + * + *

The flags CASE_INSENSITIVE and UNICODE_CASE retain their impact on + * matching when used in conjunction with this flag. The other flags + * become superfluous. + * + *

There is no embedded flag character for enabling literal parsing. + * @since 1.5 + */ + public static final int LITERAL = 0x10; + + /** + * Enables dotall mode. + * + *

In dotall mode, the expression . matches any character, + * including a line terminator. By default this expression does not match + * line terminators. + * + *

Dotall mode can also be enabled via the embedded flag + * expression (?s). (The s is a mnemonic for + * "single-line" mode, which is what this is called in Perl.)

+ */ + public static final int DOTALL = 0x20; + + /** + * Enables Unicode-aware case folding. + * + *

When this flag is specified then case-insensitive matching, when + * enabled by the {@link #CASE_INSENSITIVE} flag, is done in a manner + * consistent with the Unicode Standard. By default, case-insensitive + * matching assumes that only characters in the US-ASCII charset are being + * matched. + * + *

Unicode-aware case folding can also be enabled via the embedded flag + * expression (?u). + * + *

Specifying this flag may impose a performance penalty.

+ */ + public static final int UNICODE_CASE = 0x40; + + /** + * Enables canonical equivalence. + * + *

When this flag is specified then two characters will be considered + * to match if, and only if, their full canonical decompositions match. + * The expression "a\u030A", for example, will match the + * string "\u00E5" when this flag is specified. By default, + * matching does not take canonical equivalence into account. + * + *

There is no embedded flag character for enabling canonical + * equivalence. + * + *

Specifying this flag may impose a performance penalty.

+ */ + public static final int CANON_EQ = 0x80; + + /** + * Enables the Unicode version of Predefined character classes and + * POSIX character classes. + * + *

When this flag is specified then the (US-ASCII only) + * Predefined character classes and POSIX character classes + * are in conformance with + * Unicode Technical + * Standard #18: Unicode Regular Expression + * Annex C: Compatibility Properties. + *

+ * The UNICODE_CHARACTER_CLASS mode can also be enabled via the embedded + * flag expression (?U). + *

+ * The flag implies UNICODE_CASE, that is, it enables Unicode-aware case + * folding. + *

+ * Specifying this flag may impose a performance penalty.

+ * @since 1.7 + */ + public static final int UNICODE_CHARACTER_CLASS = 0x100; + + /* Pattern has only two serialized components: The pattern string + * and the flags, which are all that is needed to recompile the pattern + * when it is deserialized. + */ + + /** use serialVersionUID from Merlin b59 for interoperability */ + private static final long serialVersionUID = 5073258162644648461L; + + /** + * The original regular-expression pattern string. + * + * @serial + */ + private String pattern; + + /** + * The original pattern flags. + * + * @serial + */ + private int flags; + + /** + * Boolean indicating this Pattern is compiled; this is necessary in order + * to lazily compile deserialized Patterns. + */ + private transient volatile boolean compiled = false; + + /** + * The normalized pattern string. + */ + private transient String normalizedPattern; + + /** + * The starting point of state machine for the find operation. This allows + * a match to start anywhere in the input. + */ + transient Node root; + + /** + * The root of object tree for a match operation. The pattern is matched + * at the beginning. This may include a find that uses BnM or a First + * node. + */ + transient Node matchRoot; + + /** + * Temporary storage used by parsing pattern slice. + */ + transient int[] buffer; + + /** + * Map the "name" of the "named capturing group" to its group id + * node. + */ + transient volatile Map namedGroups; + + /** + * Temporary storage used while parsing group references. + */ + transient GroupHead[] groupNodes; + + /** + * Temporary null terminated code point array used by pattern compiling. + */ + private transient int[] temp; + + /** + * The number of capturing groups in this Pattern. Used by matchers to + * allocate storage needed to perform a match. + */ + transient int capturingGroupCount; + + /** + * The local variable count used by parsing tree. Used by matchers to + * allocate storage needed to perform a match. + */ + transient int localCount; + + /** + * Index into the pattern string that keeps track of how much has been + * parsed. + */ + private transient int cursor; + + /** + * Holds the length of the pattern string. + */ + private transient int patternLength; + + /** + * If the Start node might possibly match supplementary characters. + * It is set to true during compiling if + * (1) There is supplementary char in pattern, or + * (2) There is complement node of Category or Block + */ + private transient boolean hasSupplementary; + + /** + * Compiles the given regular expression into a pattern.

+ * + * @param regex + * The expression to be compiled + * + * @throws PatternSyntaxException + * If the expression's syntax is invalid + */ + public static Pattern compile(String regex) { + return new Pattern(regex, 0); + } + + /** + * Compiles the given regular expression into a pattern with the given + * flags.

+ * + * @param regex + * The expression to be compiled + * + * @param flags + * Match flags, a bit mask that may include + * {@link #CASE_INSENSITIVE}, {@link #MULTILINE}, {@link #DOTALL}, + * {@link #UNICODE_CASE}, {@link #CANON_EQ}, {@link #UNIX_LINES}, + * {@link #LITERAL}, {@link #UNICODE_CHARACTER_CLASS} + * and {@link #COMMENTS} + * + * @throws IllegalArgumentException + * If bit values other than those corresponding to the defined + * match flags are set in flags + * + * @throws PatternSyntaxException + * If the expression's syntax is invalid + */ + public static Pattern compile(String regex, int flags) { + return new Pattern(regex, flags); + } + + /** + * Returns the regular expression from which this pattern was compiled. + *

+ * + * @return The source of this pattern + */ + public String pattern() { + return pattern; + } + + /** + *

Returns the string representation of this pattern. This + * is the regular expression from which this pattern was + * compiled.

+ * + * @return The string representation of this pattern + * @since 1.5 + */ + public String toString() { + return pattern; + } + + /** + * Creates a matcher that will match the given input against this pattern. + *

+ * + * @param input + * The character sequence to be matched + * + * @return A new matcher for this pattern + */ + public Matcher matcher(CharSequence input) { + if (!compiled) { + synchronized(this) { + if (!compiled) + compile(); + } + } + Matcher m = new Matcher(this, input); + return m; + } + + /** + * Returns this pattern's match flags.

+ * + * @return The match flags specified when this pattern was compiled + */ + public int flags() { + return flags; + } + + /** + * Compiles the given regular expression and attempts to match the given + * input against it. + * + *

An invocation of this convenience method of the form + * + *

+     * Pattern.matches(regex, input);
+ * + * behaves in exactly the same way as the expression + * + *
+     * Pattern.compile(regex).matcher(input).matches()
+ * + *

If a pattern is to be used multiple times, compiling it once and reusing + * it will be more efficient than invoking this method each time.

+ * + * @param regex + * The expression to be compiled + * + * @param input + * The character sequence to be matched + * + * @throws PatternSyntaxException + * If the expression's syntax is invalid + */ + public static boolean matches(String regex, CharSequence input) { + Pattern p = Pattern.compile(regex); + Matcher m = p.matcher(input); + return m.matches(); + } + + /** + * Splits the given input sequence around matches of this pattern. + * + *

The array returned by this method contains each substring of the + * input sequence that is terminated by another subsequence that matches + * this pattern or is terminated by the end of the input sequence. The + * substrings in the array are in the order in which they occur in the + * input. If this pattern does not match any subsequence of the input then + * the resulting array has just one element, namely the input sequence in + * string form. + * + *

The limit parameter controls the number of times the + * pattern is applied and therefore affects the length of the resulting + * array. If the limit n is greater than zero then the pattern + * will be applied at most n - 1 times, the array's + * length will be no greater than n, and the array's last entry + * will contain all input beyond the last matched delimiter. If n + * is non-positive then the pattern will be applied as many times as + * possible and the array can have any length. If n is zero then + * the pattern will be applied as many times as possible, the array can + * have any length, and trailing empty strings will be discarded. + * + *

The input "boo:and:foo", for example, yields the following + * results with these parameters: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *

Regex    

Limit    

Result    

:2{ "boo", "and:foo" }
:5{ "boo", "and", "foo" }
:-2{ "boo", "and", "foo" }
o5{ "b", "", ":and:f", "", "" }
o-2{ "b", "", ":and:f", "", "" }
o0{ "b", "", ":and:f" }
+ * + * + * @param input + * The character sequence to be split + * + * @param limit + * The result threshold, as described above + * + * @return The array of strings computed by splitting the input + * around matches of this pattern + */ + public String[] split(CharSequence input, int limit) { + int index = 0; + boolean matchLimited = limit > 0; + ArrayList matchList = new ArrayList<>(); + Matcher m = matcher(input); + + // Add segments before each match found + while(m.find()) { + if (!matchLimited || matchList.size() < limit - 1) { + String match = input.subSequence(index, m.start()).toString(); + matchList.add(match); + index = m.end(); + } else if (matchList.size() == limit - 1) { // last one + String match = input.subSequence(index, + input.length()).toString(); + matchList.add(match); + index = m.end(); + } + } + + // If no match was found, return this + if (index == 0) + return new String[] {input.toString()}; + + // Add remaining segment + if (!matchLimited || matchList.size() < limit) + matchList.add(input.subSequence(index, input.length()).toString()); + + // Construct result + int resultSize = matchList.size(); + if (limit == 0) + while (resultSize > 0 && matchList.get(resultSize-1).equals("")) + resultSize--; + String[] result = new String[resultSize]; + return matchList.subList(0, resultSize).toArray(result); + } + + /** + * Splits the given input sequence around matches of this pattern. + * + *

This method works as if by invoking the two-argument {@link + * #split(java.lang.CharSequence, int) split} method with the given input + * sequence and a limit argument of zero. Trailing empty strings are + * therefore not included in the resulting array.

+ * + *

The input "boo:and:foo", for example, yields the following + * results with these expressions: + * + *

+ * + * + * + * + * + * + *

Regex    

Result

:{ "boo", "and", "foo" }
o{ "b", "", ":and:f" }
+ * + * + * @param input + * The character sequence to be split + * + * @return The array of strings computed by splitting the input + * around matches of this pattern + */ + public String[] split(CharSequence input) { + return split(input, 0); + } + + /** + * Returns a literal pattern String for the specified + * String. + * + *

This method produces a String that can be used to + * create a Pattern that would match the string + * s as if it were a literal pattern.

Metacharacters + * or escape sequences in the input sequence will be given no special + * meaning. + * + * @param s The string to be literalized + * @return A literal string replacement + * @since 1.5 + */ + public static String quote(String s) { + int slashEIndex = s.indexOf("\\E"); + if (slashEIndex == -1) + return "\\Q" + s + "\\E"; + + StringBuilder sb = new StringBuilder(s.length() * 2); + sb.append("\\Q"); + slashEIndex = 0; + int current = 0; + while ((slashEIndex = s.indexOf("\\E", current)) != -1) { + sb.append(s.substring(current, slashEIndex)); + current = slashEIndex + 2; + sb.append("\\E\\\\E\\Q"); + } + sb.append(s.substring(current, s.length())); + sb.append("\\E"); + return sb.toString(); + } + + /** + * Recompile the Pattern instance from a stream. The original pattern + * string is read in and the object tree is recompiled from it. + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + + // Read in all fields + s.defaultReadObject(); + + // Initialize counts + capturingGroupCount = 1; + localCount = 0; + + // if length > 0, the Pattern is lazily compiled + compiled = false; + if (pattern.length() == 0) { + root = new Start(lastAccept); + matchRoot = lastAccept; + compiled = true; + } + } + + /** + * This private constructor is used to create all Patterns. The pattern + * string and match flags are all that is needed to completely describe + * a Pattern. An empty pattern string results in an object tree with + * only a Start node and a LastNode node. + */ + private Pattern(String p, int f) { + pattern = p; + flags = f; + + // to use UNICODE_CASE if UNICODE_CHARACTER_CLASS present + if ((flags & UNICODE_CHARACTER_CLASS) != 0) + flags |= UNICODE_CASE; + + // Reset group index count + capturingGroupCount = 1; + localCount = 0; + + if (pattern.length() > 0) { + compile(); + } else { + root = new Start(lastAccept); + matchRoot = lastAccept; + } + } + + /** + * The pattern is converted to normalizedD form and then a pure group + * is constructed to match canonical equivalences of the characters. + */ + private void normalize() { + boolean inCharClass = false; + int lastCodePoint = -1; + + // Convert pattern into normalizedD form + normalizedPattern = Normalizer.normalize(pattern, Normalizer.Form.NFD); + patternLength = normalizedPattern.length(); + + // Modify pattern to match canonical equivalences + StringBuilder newPattern = new StringBuilder(patternLength); + for(int i=0; i= patternLength) + break; + c = normalizedPattern.codePointAt(i); + sequenceBuffer.appendCodePoint(c); + } + String ea = produceEquivalentAlternation( + sequenceBuffer.toString()); + newPattern.setLength(newPattern.length()-Character.charCount(lastCodePoint)); + newPattern.append("(?:").append(ea).append(")"); + } else if (c == '[' && lastCodePoint != '\\') { + i = normalizeCharClass(newPattern, i); + } else { + newPattern.appendCodePoint(c); + } + lastCodePoint = c; + i += Character.charCount(c); + } + normalizedPattern = newPattern.toString(); + } + + /** + * Complete the character class being parsed and add a set + * of alternations to it that will match the canonical equivalences + * of the characters within the class. + */ + private int normalizeCharClass(StringBuilder newPattern, int i) { + StringBuilder charClass = new StringBuilder(); + StringBuilder eq = null; + int lastCodePoint = -1; + String result; + + i++; + charClass.append("["); + while(true) { + int c = normalizedPattern.codePointAt(i); + StringBuilder sequenceBuffer; + + if (c == ']' && lastCodePoint != '\\') { + charClass.append((char)c); + break; + } else if (Character.getType(c) == Character.NON_SPACING_MARK) { + sequenceBuffer = new StringBuilder(); + sequenceBuffer.appendCodePoint(lastCodePoint); + while(Character.getType(c) == Character.NON_SPACING_MARK) { + sequenceBuffer.appendCodePoint(c); + i += Character.charCount(c); + if (i >= normalizedPattern.length()) + break; + c = normalizedPattern.codePointAt(i); + } + String ea = produceEquivalentAlternation( + sequenceBuffer.toString()); + + charClass.setLength(charClass.length()-Character.charCount(lastCodePoint)); + if (eq == null) + eq = new StringBuilder(); + eq.append('|'); + eq.append(ea); + } else { + charClass.appendCodePoint(c); + i++; + } + if (i == normalizedPattern.length()) + throw error("Unclosed character class"); + lastCodePoint = c; + } + + if (eq != null) { + result = "(?:"+charClass.toString()+eq.toString()+")"; + } else { + result = charClass.toString(); + } + + newPattern.append(result); + return i; + } + + /** + * Given a specific sequence composed of a regular character and + * combining marks that follow it, produce the alternation that will + * match all canonical equivalences of that sequence. + */ + private String produceEquivalentAlternation(String source) { + int len = countChars(source, 0, 1); + if (source.length() == len) + // source has one character. + return source; + + String base = source.substring(0,len); + String combiningMarks = source.substring(len); + + String[] perms = producePermutations(combiningMarks); + StringBuilder result = new StringBuilder(source); + + // Add combined permutations + for(int x=0; x0) + result.append("|"+next); + next = composeOneStep(next); + if (next != null) + result.append("|"+produceEquivalentAlternation(next)); + } + return result.toString(); + } + + /** + * Returns an array of strings that have all the possible + * permutations of the characters in the input string. + * This is used to get a list of all possible orderings + * of a set of combining marks. Note that some of the permutations + * are invalid because of combining class collisions, and these + * possibilities must be removed because they are not canonically + * equivalent. + */ + private String[] producePermutations(String input) { + if (input.length() == countChars(input, 0, 1)) + return new String[] {input}; + + if (input.length() == countChars(input, 0, 2)) { + int c0 = Character.codePointAt(input, 0); + int c1 = Character.codePointAt(input, Character.charCount(c0)); + if (getClass(c1) == getClass(c0)) { + return new String[] {input}; + } + String[] result = new String[2]; + result[0] = input; + StringBuilder sb = new StringBuilder(2); + sb.appendCodePoint(c1); + sb.appendCodePoint(c0); + result[1] = sb.toString(); + return result; + } + + int length = 1; + int nCodePoints = countCodePoints(input); + for(int x=1; x=0; y--) { + if (combClass[y] == combClass[x]) { + continue loop; + } + } + StringBuilder sb = new StringBuilder(input); + String otherChars = sb.delete(offset, offset+len).toString(); + String[] subResult = producePermutations(otherChars); + + String prefix = input.substring(offset, offset+len); + for(int y=0; y= pLen - 1) // No \Q sequence found + return; + int j = i; + i += 2; + int[] newtemp = new int[j + 2*(pLen-i) + 2]; + System.arraycopy(temp, 0, newtemp, 0, j); + + boolean inQuote = true; + while (i < pLen) { + int c = temp[i++]; + if (! ASCII.isAscii(c) || ASCII.isAlnum(c)) { + newtemp[j++] = c; + } else if (c != '\\') { + if (inQuote) newtemp[j++] = '\\'; + newtemp[j++] = c; + } else if (inQuote) { + if (temp[i] == 'E') { + i++; + inQuote = false; + } else { + newtemp[j++] = '\\'; + newtemp[j++] = '\\'; + } + } else { + if (temp[i] == 'Q') { + i++; + inQuote = true; + } else { + newtemp[j++] = c; + if (i != pLen) + newtemp[j++] = temp[i++]; + } + } + } + + patternLength = j; + temp = Arrays.copyOf(newtemp, j + 2); // double zero termination + } + + /** + * Copies regular expression to an int array and invokes the parsing + * of the expression which will create the object tree. + */ + private void compile() { + // Handle canonical equivalences + if (has(CANON_EQ) && !has(LITERAL)) { + normalize(); + } else { + normalizedPattern = pattern; + } + patternLength = normalizedPattern.length(); + + // Copy pattern to int array for convenience + // Use double zero to terminate pattern + temp = new int[patternLength + 2]; + + hasSupplementary = false; + int c, count = 0; + // Convert all chars into code points + for (int x = 0; x < patternLength; x += Character.charCount(c)) { + c = normalizedPattern.codePointAt(x); + if (isSupplementary(c)) { + hasSupplementary = true; + } + temp[count++] = c; + } + + patternLength = count; // patternLength now in code points + + if (! has(LITERAL)) + RemoveQEQuoting(); + + // Allocate all temporary objects here. + buffer = new int[32]; + groupNodes = new GroupHead[10]; + namedGroups = null; + + if (has(LITERAL)) { + // Literal pattern handling + matchRoot = newSlice(temp, patternLength, hasSupplementary); + matchRoot.next = lastAccept; + } else { + // Start recursive descent parsing + matchRoot = expr(lastAccept); + // Check extra pattern characters + if (patternLength != cursor) { + if (peek() == ')') { + throw error("Unmatched closing ')'"); + } else { + throw error("Unexpected internal error"); + } + } + } + + // Peephole optimization + if (matchRoot instanceof Slice) { + root = BnM.optimize(matchRoot); + if (root == matchRoot) { + root = hasSupplementary ? new StartS(matchRoot) : new Start(matchRoot); + } + } else if (matchRoot instanceof Begin || matchRoot instanceof First) { + root = matchRoot; + } else { + root = hasSupplementary ? new StartS(matchRoot) : new Start(matchRoot); + } + + // Release temporary storage + temp = null; + buffer = null; + groupNodes = null; + patternLength = 0; + compiled = true; + } + + Map namedGroups() { + if (namedGroups == null) + namedGroups = new HashMap<>(2); + return namedGroups; + } + + /** + * Used to print out a subtree of the Pattern to help with debugging. + */ + private static void printObjectTree(Node node) { + while(node != null) { + if (node instanceof Prolog) { + System.out.println(node); + printObjectTree(((Prolog)node).loop); + System.out.println("**** end contents prolog loop"); + } else if (node instanceof Loop) { + System.out.println(node); + printObjectTree(((Loop)node).body); + System.out.println("**** end contents Loop body"); + } else if (node instanceof Curly) { + System.out.println(node); + printObjectTree(((Curly)node).atom); + System.out.println("**** end contents Curly body"); + } else if (node instanceof GroupCurly) { + System.out.println(node); + printObjectTree(((GroupCurly)node).atom); + System.out.println("**** end contents GroupCurly body"); + } else if (node instanceof GroupTail) { + System.out.println(node); + System.out.println("Tail next is "+node.next); + return; + } else { + System.out.println(node); + } + node = node.next; + if (node != null) + System.out.println("->next:"); + if (node == Pattern.accept) { + System.out.println("Accept Node"); + node = null; + } + } + } + + /** + * Used to accumulate information about a subtree of the object graph + * so that optimizations can be applied to the subtree. + */ + static final class TreeInfo { + int minLength; + int maxLength; + boolean maxValid; + boolean deterministic; + + TreeInfo() { + reset(); + } + void reset() { + minLength = 0; + maxLength = 0; + maxValid = true; + deterministic = true; + } + } + + /* + * The following private methods are mainly used to improve the + * readability of the code. In order to let the Java compiler easily + * inline them, we should not put many assertions or error checks in them. + */ + + /** + * Indicates whether a particular flag is set or not. + */ + private boolean has(int f) { + return (flags & f) != 0; + } + + /** + * Match next character, signal error if failed. + */ + private void accept(int ch, String s) { + int testChar = temp[cursor++]; + if (has(COMMENTS)) + testChar = parsePastWhitespace(testChar); + if (ch != testChar) { + throw error(s); + } + } + + /** + * Mark the end of pattern with a specific character. + */ + private void mark(int c) { + temp[patternLength] = c; + } + + /** + * Peek the next character, and do not advance the cursor. + */ + private int peek() { + int ch = temp[cursor]; + if (has(COMMENTS)) + ch = peekPastWhitespace(ch); + return ch; + } + + /** + * Read the next character, and advance the cursor by one. + */ + private int read() { + int ch = temp[cursor++]; + if (has(COMMENTS)) + ch = parsePastWhitespace(ch); + return ch; + } + + /** + * Read the next character, and advance the cursor by one, + * ignoring the COMMENTS setting + */ + private int readEscaped() { + int ch = temp[cursor++]; + return ch; + } + + /** + * Advance the cursor by one, and peek the next character. + */ + private int next() { + int ch = temp[++cursor]; + if (has(COMMENTS)) + ch = peekPastWhitespace(ch); + return ch; + } + + /** + * Advance the cursor by one, and peek the next character, + * ignoring the COMMENTS setting + */ + private int nextEscaped() { + int ch = temp[++cursor]; + return ch; + } + + /** + * If in xmode peek past whitespace and comments. + */ + private int peekPastWhitespace(int ch) { + while (ASCII.isSpace(ch) || ch == '#') { + while (ASCII.isSpace(ch)) + ch = temp[++cursor]; + if (ch == '#') { + ch = peekPastLine(); + } + } + return ch; + } + + /** + * If in xmode parse past whitespace and comments. + */ + private int parsePastWhitespace(int ch) { + while (ASCII.isSpace(ch) || ch == '#') { + while (ASCII.isSpace(ch)) + ch = temp[cursor++]; + if (ch == '#') + ch = parsePastLine(); + } + return ch; + } + + /** + * xmode parse past comment to end of line. + */ + private int parsePastLine() { + int ch = temp[cursor++]; + while (ch != 0 && !isLineSeparator(ch)) + ch = temp[cursor++]; + return ch; + } + + /** + * xmode peek past comment to end of line. + */ + private int peekPastLine() { + int ch = temp[++cursor]; + while (ch != 0 && !isLineSeparator(ch)) + ch = temp[++cursor]; + return ch; + } + + /** + * Determines if character is a line separator in the current mode + */ + private boolean isLineSeparator(int ch) { + if (has(UNIX_LINES)) { + return ch == '\n'; + } else { + return (ch == '\n' || + ch == '\r' || + (ch|1) == '\u2029' || + ch == '\u0085'); + } + } + + /** + * Read the character after the next one, and advance the cursor by two. + */ + private int skip() { + int i = cursor; + int ch = temp[i+1]; + cursor = i + 2; + return ch; + } + + /** + * Unread one next character, and retreat cursor by one. + */ + private void unread() { + cursor--; + } + + /** + * Internal method used for handling all syntax errors. The pattern is + * displayed with a pointer to aid in locating the syntax error. + */ + private PatternSyntaxException error(String s) { + return new PatternSyntaxException(s, normalizedPattern, cursor - 1); + } + + /** + * Determines if there is any supplementary character or unpaired + * surrogate in the specified range. + */ + private boolean findSupplementary(int start, int end) { + for (int i = start; i < end; i++) { + if (isSupplementary(temp[i])) + return true; + } + return false; + } + + /** + * Determines if the specified code point is a supplementary + * character or unpaired surrogate. + */ + private static final boolean isSupplementary(int ch) { + return ch >= Character.MIN_SUPPLEMENTARY_CODE_POINT || + Character.isSurrogate((char)ch); + } + + /** + * The following methods handle the main parsing. They are sorted + * according to their precedence order, the lowest one first. + */ + + /** + * The expression is parsed with branch nodes added for alternations. + * This may be called recursively to parse sub expressions that may + * contain alternations. + */ + private Node expr(Node end) { + Node prev = null; + Node firstTail = null; + Node branchConn = null; + + for (;;) { + Node node = sequence(end); + Node nodeTail = root; //double return + if (prev == null) { + prev = node; + firstTail = nodeTail; + } else { + // Branch + if (branchConn == null) { + branchConn = new BranchConn(); + branchConn.next = end; + } + if (node == end) { + // if the node returned from sequence() is "end" + // we have an empty expr, set a null atom into + // the branch to indicate to go "next" directly. + node = null; + } else { + // the "tail.next" of each atom goes to branchConn + nodeTail.next = branchConn; + } + if (prev instanceof Branch) { + ((Branch)prev).add(node); + } else { + if (prev == end) { + prev = null; + } else { + // replace the "end" with "branchConn" at its tail.next + // when put the "prev" into the branch as the first atom. + firstTail.next = branchConn; + } + prev = new Branch(prev, node, branchConn); + } + } + if (peek() != '|') { + return prev; + } + next(); + } + } + + /** + * Parsing of sequences between alternations. + */ + private Node sequence(Node end) { + Node head = null; + Node tail = null; + Node node = null; + LOOP: + for (;;) { + int ch = peek(); + switch (ch) { + case '(': + // Because group handles its own closure, + // we need to treat it differently + node = group0(); + // Check for comment or flag group + if (node == null) + continue; + if (head == null) + head = node; + else + tail.next = node; + // Double return: Tail was returned in root + tail = root; + continue; + case '[': + node = clazz(true); + break; + case '\\': + ch = nextEscaped(); + if (ch == 'p' || ch == 'P') { + boolean oneLetter = true; + boolean comp = (ch == 'P'); + ch = next(); // Consume { if present + if (ch != '{') { + unread(); + } else { + oneLetter = false; + } + node = family(oneLetter, comp); + } else { + unread(); + node = atom(); + } + break; + case '^': + next(); + if (has(MULTILINE)) { + if (has(UNIX_LINES)) + node = new UnixCaret(); + else + node = new Caret(); + } else { + node = new Begin(); + } + break; + case '$': + next(); + if (has(UNIX_LINES)) + node = new UnixDollar(has(MULTILINE)); + else + node = new Dollar(has(MULTILINE)); + break; + case '.': + next(); + if (has(DOTALL)) { + node = new All(); + } else { + if (has(UNIX_LINES)) + node = new UnixDot(); + else { + node = new Dot(); + } + } + break; + case '|': + case ')': + break LOOP; + case ']': // Now interpreting dangling ] and } as literals + case '}': + node = atom(); + break; + case '?': + case '*': + case '+': + next(); + throw error("Dangling meta character '" + ((char)ch) + "'"); + case 0: + if (cursor >= patternLength) { + break LOOP; + } + // Fall through + default: + node = atom(); + break; + } + + node = closure(node); + + if (head == null) { + head = tail = node; + } else { + tail.next = node; + tail = node; + } + } + if (head == null) { + return end; + } + tail.next = end; + root = tail; //double return + return head; + } + + /** + * Parse and add a new Single or Slice. + */ + private Node atom() { + int first = 0; + int prev = -1; + boolean hasSupplementary = false; + int ch = peek(); + for (;;) { + switch (ch) { + case '*': + case '+': + case '?': + case '{': + if (first > 1) { + cursor = prev; // Unwind one character + first--; + } + break; + case '$': + case '.': + case '^': + case '(': + case '[': + case '|': + case ')': + break; + case '\\': + ch = nextEscaped(); + if (ch == 'p' || ch == 'P') { // Property + if (first > 0) { // Slice is waiting; handle it first + unread(); + break; + } else { // No slice; just return the family node + boolean comp = (ch == 'P'); + boolean oneLetter = true; + ch = next(); // Consume { if present + if (ch != '{') + unread(); + else + oneLetter = false; + return family(oneLetter, comp); + } + } + unread(); + prev = cursor; + ch = escape(false, first == 0); + if (ch >= 0) { + append(ch, first); + first++; + if (isSupplementary(ch)) { + hasSupplementary = true; + } + ch = peek(); + continue; + } else if (first == 0) { + return root; + } + // Unwind meta escape sequence + cursor = prev; + break; + case 0: + if (cursor >= patternLength) { + break; + } + // Fall through + default: + prev = cursor; + append(ch, first); + first++; + if (isSupplementary(ch)) { + hasSupplementary = true; + } + ch = next(); + continue; + } + break; + } + if (first == 1) { + return newSingle(buffer[0]); + } else { + return newSlice(buffer, first, hasSupplementary); + } + } + + private void append(int ch, int len) { + if (len >= buffer.length) { + int[] tmp = new int[len+len]; + System.arraycopy(buffer, 0, tmp, 0, len); + buffer = tmp; + } + buffer[len] = ch; + } + + /** + * Parses a backref greedily, taking as many numbers as it + * can. The first digit is always treated as a backref, but + * multi digit numbers are only treated as a backref if at + * least that many backrefs exist at this point in the regex. + */ + private Node ref(int refNum) { + boolean done = false; + while(!done) { + int ch = peek(); + switch(ch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + int newRefNum = (refNum * 10) + (ch - '0'); + // Add another number if it doesn't make a group + // that doesn't exist + if (capturingGroupCount - 1 < newRefNum) { + done = true; + break; + } + refNum = newRefNum; + read(); + break; + default: + done = true; + break; + } + } + if (has(CASE_INSENSITIVE)) + return new CIBackRef(refNum, has(UNICODE_CASE)); + else + return new BackRef(refNum); + } + + /** + * Parses an escape sequence to determine the actual value that needs + * to be matched. + * If -1 is returned and create was true a new object was added to the tree + * to handle the escape sequence. + * If the returned value is greater than zero, it is the value that + * matches the escape sequence. + */ + private int escape(boolean inclass, boolean create) { + int ch = skip(); + switch (ch) { + case '0': + return o(); + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (inclass) break; + if (create) { + root = ref((ch - '0')); + } + return -1; + case 'A': + if (inclass) break; + if (create) root = new Begin(); + return -1; + case 'B': + if (inclass) break; + if (create) root = new Bound(Bound.NONE, has(UNICODE_CHARACTER_CLASS)); + return -1; + case 'C': + break; + case 'D': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.DIGIT).complement() + : new Ctype(ASCII.DIGIT).complement(); + return -1; + case 'E': + case 'F': + break; + case 'G': + if (inclass) break; + if (create) root = new LastMatch(); + return -1; + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + break; + case 'S': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WHITE_SPACE).complement() + : new Ctype(ASCII.SPACE).complement(); + return -1; + case 'T': + case 'U': + case 'V': + break; + case 'W': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WORD).complement() + : new Ctype(ASCII.WORD).complement(); + return -1; + case 'X': + case 'Y': + break; + case 'Z': + if (inclass) break; + if (create) { + if (has(UNIX_LINES)) + root = new UnixDollar(false); + else + root = new Dollar(false); + } + return -1; + case 'a': + return '\007'; + case 'b': + if (inclass) break; + if (create) root = new Bound(Bound.BOTH, has(UNICODE_CHARACTER_CLASS)); + return -1; + case 'c': + return c(); + case 'd': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.DIGIT) + : new Ctype(ASCII.DIGIT); + return -1; + case 'e': + return '\033'; + case 'f': + return '\f'; + case 'g': + case 'h': + case 'i': + case 'j': + break; + case 'k': + if (inclass) + break; + if (read() != '<') + throw error("\\k is not followed by '<' for named capturing group"); + String name = groupname(read()); + if (!namedGroups().containsKey(name)) + throw error("(named capturing group <"+ name+"> does not exit"); + if (create) { + if (has(CASE_INSENSITIVE)) + root = new CIBackRef(namedGroups().get(name), has(UNICODE_CASE)); + else + root = new BackRef(namedGroups().get(name)); + } + return -1; + case 'l': + case 'm': + break; + case 'n': + return '\n'; + case 'o': + case 'p': + case 'q': + break; + case 'r': + return '\r'; + case 's': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WHITE_SPACE) + : new Ctype(ASCII.SPACE); + return -1; + case 't': + return '\t'; + case 'u': + return u(); + case 'v': + return '\013'; + case 'w': + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WORD) + : new Ctype(ASCII.WORD); + return -1; + case 'x': + return x(); + case 'y': + break; + case 'z': + if (inclass) break; + if (create) root = new End(); + return -1; + default: + return ch; + } + throw error("Illegal/unsupported escape sequence"); + } + + /** + * Parse a character class, and return the node that matches it. + * + * Consumes a ] on the way out if consume is true. Usually consume + * is true except for the case of [abc&&def] where def is a separate + * right hand node with "understood" brackets. + */ + private CharProperty clazz(boolean consume) { + CharProperty prev = null; + CharProperty node = null; + BitClass bits = new BitClass(); + boolean include = true; + boolean firstInClass = true; + int ch = next(); + for (;;) { + switch (ch) { + case '^': + // Negates if first char in a class, otherwise literal + if (firstInClass) { + if (temp[cursor-1] != '[') + break; + ch = next(); + include = !include; + continue; + } else { + // ^ not first in class, treat as literal + break; + } + case '[': + firstInClass = false; + node = clazz(true); + if (prev == null) + prev = node; + else + prev = union(prev, node); + ch = peek(); + continue; + case '&': + firstInClass = false; + ch = next(); + if (ch == '&') { + ch = next(); + CharProperty rightNode = null; + while (ch != ']' && ch != '&') { + if (ch == '[') { + if (rightNode == null) + rightNode = clazz(true); + else + rightNode = union(rightNode, clazz(true)); + } else { // abc&&def + unread(); + rightNode = clazz(false); + } + ch = peek(); + } + if (rightNode != null) + node = rightNode; + if (prev == null) { + if (rightNode == null) + throw error("Bad class syntax"); + else + prev = rightNode; + } else { + prev = intersection(prev, node); + } + } else { + // treat as a literal & + unread(); + break; + } + continue; + case 0: + firstInClass = false; + if (cursor >= patternLength) + throw error("Unclosed character class"); + break; + case ']': + firstInClass = false; + if (prev != null) { + if (consume) + next(); + return prev; + } + break; + default: + firstInClass = false; + break; + } + node = range(bits); + if (include) { + if (prev == null) { + prev = node; + } else { + if (prev != node) + prev = union(prev, node); + } + } else { + if (prev == null) { + prev = node.complement(); + } else { + if (prev != node) + prev = setDifference(prev, node); + } + } + ch = peek(); + } + } + + private CharProperty bitsOrSingle(BitClass bits, int ch) { + /* Bits can only handle codepoints in [u+0000-u+00ff] range. + Use "single" node instead of bits when dealing with unicode + case folding for codepoints listed below. + (1)Uppercase out of range: u+00ff, u+00b5 + toUpperCase(u+00ff) -> u+0178 + toUpperCase(u+00b5) -> u+039c + (2)LatinSmallLetterLongS u+17f + toUpperCase(u+017f) -> u+0053 + (3)LatinSmallLetterDotlessI u+131 + toUpperCase(u+0131) -> u+0049 + (4)LatinCapitalLetterIWithDotAbove u+0130 + toLowerCase(u+0130) -> u+0069 + (5)KelvinSign u+212a + toLowerCase(u+212a) ==> u+006B + (6)AngstromSign u+212b + toLowerCase(u+212b) ==> u+00e5 + */ + int d; + if (ch < 256 && + !(has(CASE_INSENSITIVE) && has(UNICODE_CASE) && + (ch == 0xff || ch == 0xb5 || + ch == 0x49 || ch == 0x69 || //I and i + ch == 0x53 || ch == 0x73 || //S and s + ch == 0x4b || ch == 0x6b || //K and k + ch == 0xc5 || ch == 0xe5))) //A+ring + return bits.add(ch, flags()); + return newSingle(ch); + } + + /** + * Parse a single character or a character range in a character class + * and return its representative node. + */ + private CharProperty range(BitClass bits) { + int ch = peek(); + if (ch == '\\') { + ch = nextEscaped(); + if (ch == 'p' || ch == 'P') { // A property + boolean comp = (ch == 'P'); + boolean oneLetter = true; + // Consume { if present + ch = next(); + if (ch != '{') + unread(); + else + oneLetter = false; + return family(oneLetter, comp); + } else { // ordinary escape + unread(); + ch = escape(true, true); + if (ch == -1) + return (CharProperty) root; + } + } else { + ch = single(); + } + if (ch >= 0) { + if (peek() == '-') { + int endRange = temp[cursor+1]; + if (endRange == '[') { + return bitsOrSingle(bits, ch); + } + if (endRange != ']') { + next(); + int m = single(); + if (m < ch) + throw error("Illegal character range"); + if (has(CASE_INSENSITIVE)) + return caseInsensitiveRangeFor(ch, m); + else + return rangeFor(ch, m); + } + } + return bitsOrSingle(bits, ch); + } + throw error("Unexpected character '"+((char)ch)+"'"); + } + + private int single() { + int ch = peek(); + switch (ch) { + case '\\': + return escape(true, false); + default: + next(); + return ch; + } + } + + /** + * Parses a Unicode character family and returns its representative node. + */ + private CharProperty family(boolean singleLetter, + boolean maybeComplement) + { + next(); + String name; + CharProperty node = null; + + if (singleLetter) { + int c = temp[cursor]; + if (!Character.isSupplementaryCodePoint(c)) { + name = String.valueOf((char)c); + } else { + name = new String(temp, cursor, 1); + } + read(); + } else { + int i = cursor; + mark('}'); + while(read() != '}') { + } + mark('\000'); + int j = cursor; + if (j > patternLength) + throw error("Unclosed character family"); + if (i + 1 >= j) + throw error("Empty character family"); + name = new String(temp, i, j-i-1); + } + + int i = name.indexOf('='); + if (i != -1) { + // property construct \p{name=value} + String value = name.substring(i + 1); + name = name.substring(0, i).toLowerCase(Locale.ENGLISH); + if ("sc".equals(name) || "script".equals(name)) { + node = unicodeScriptPropertyFor(value); + } else if ("blk".equals(name) || "block".equals(name)) { + node = unicodeBlockPropertyFor(value); + } else if ("gc".equals(name) || "general_category".equals(name)) { + node = charPropertyNodeFor(value); + } else { + throw error("Unknown Unicode property {name=<" + name + ">, " + + "value=<" + value + ">}"); + } + } else { + if (name.startsWith("In")) { + // \p{inBlockName} + node = unicodeBlockPropertyFor(name.substring(2)); + } else if (name.startsWith("Is")) { + // \p{isGeneralCategory} and \p{isScriptName} + name = name.substring(2); + UnicodeProp uprop = UnicodeProp.forName(name); + if (uprop != null) + node = new Utype(uprop); + if (node == null) + node = CharPropertyNames.charPropertyFor(name); + if (node == null) + node = unicodeScriptPropertyFor(name); + } else { + if (has(UNICODE_CHARACTER_CLASS)) { + UnicodeProp uprop = UnicodeProp.forPOSIXName(name); + if (uprop != null) + node = new Utype(uprop); + } + if (node == null) + node = charPropertyNodeFor(name); + } + } + if (maybeComplement) { + if (node instanceof Category || node instanceof Block) + hasSupplementary = true; + node = node.complement(); + } + return node; + } + + + /** + * Returns a CharProperty matching all characters belong to + * a UnicodeScript. + */ + private CharProperty unicodeScriptPropertyFor(String name) { + final Character.UnicodeScript script; + try { + script = Character.UnicodeScript.forName(name); + } catch (IllegalArgumentException iae) { + throw error("Unknown character script name {" + name + "}"); + } + return new Script(script); + } + + /** + * Returns a CharProperty matching all characters in a UnicodeBlock. + */ + private CharProperty unicodeBlockPropertyFor(String name) { + final Character.UnicodeBlock block; + try { + block = Character.UnicodeBlock.forName(name); + } catch (IllegalArgumentException iae) { + throw error("Unknown character block name {" + name + "}"); + } + return new Block(block); + } + + /** + * Returns a CharProperty matching all characters in a named property. + */ + private CharProperty charPropertyNodeFor(String name) { + CharProperty p = CharPropertyNames.charPropertyFor(name); + if (p == null) + throw error("Unknown character property name {" + name + "}"); + return p; + } + + /** + * Parses and returns the name of a "named capturing group", the trailing + * ">" is consumed after parsing. + */ + private String groupname(int ch) { + StringBuilder sb = new StringBuilder(); + sb.append(Character.toChars(ch)); + while (ASCII.isLower(ch=read()) || ASCII.isUpper(ch) || + ASCII.isDigit(ch)) { + sb.append(Character.toChars(ch)); + } + if (sb.length() == 0) + throw error("named capturing group has 0 length name"); + if (ch != '>') + throw error("named capturing group is missing trailing '>'"); + return sb.toString(); + } + + /** + * Parses a group and returns the head node of a set of nodes that process + * the group. Sometimes a double return system is used where the tail is + * returned in root. + */ + private Node group0() { + boolean capturingGroup = false; + Node head = null; + Node tail = null; + int save = flags; + root = null; + int ch = next(); + if (ch == '?') { + ch = skip(); + switch (ch) { + case ':': // (?:xxx) pure group + head = createGroup(true); + tail = root; + head.next = expr(tail); + break; + case '=': // (?=xxx) and (?!xxx) lookahead + case '!': + head = createGroup(true); + tail = root; + head.next = expr(tail); + if (ch == '=') { + head = tail = new Pos(head); + } else { + head = tail = new Neg(head); + } + break; + case '>': // (?>xxx) independent group + head = createGroup(true); + tail = root; + head.next = expr(tail); + head = tail = new Ques(head, INDEPENDENT); + break; + case '<': // (? is already defined"); + capturingGroup = true; + head = createGroup(false); + tail = root; + namedGroups().put(name, capturingGroupCount-1); + head.next = expr(tail); + break; + } + int start = cursor; + head = createGroup(true); + tail = root; + head.next = expr(tail); + tail.next = lookbehindEnd; + TreeInfo info = new TreeInfo(); + head.study(info); + if (info.maxValid == false) { + throw error("Look-behind group does not have " + + "an obvious maximum length"); + } + boolean hasSupplementary = findSupplementary(start, patternLength); + if (ch == '=') { + head = tail = (hasSupplementary ? + new BehindS(head, info.maxLength, + info.minLength) : + new Behind(head, info.maxLength, + info.minLength)); + } else if (ch == '!') { + head = tail = (hasSupplementary ? + new NotBehindS(head, info.maxLength, + info.minLength) : + new NotBehind(head, info.maxLength, + info.minLength)); + } else { + throw error("Unknown look-behind group"); + } + break; + case '$': + case '@': + throw error("Unknown group type"); + default: // (?xxx:) inlined match flags + unread(); + addFlag(); + ch = read(); + if (ch == ')') { + return null; // Inline modifier only + } + if (ch != ':') { + throw error("Unknown inline modifier"); + } + head = createGroup(true); + tail = root; + head.next = expr(tail); + break; + } + } else { // (xxx) a regular group + capturingGroup = true; + head = createGroup(false); + tail = root; + head.next = expr(tail); + } + + accept(')', "Unclosed group"); + flags = save; + + // Check for quantifiers + Node node = closure(head); + if (node == head) { // No closure + root = tail; + return node; // Dual return + } + if (head == tail) { // Zero length assertion + root = node; + return node; // Dual return + } + + if (node instanceof Ques) { + Ques ques = (Ques) node; + if (ques.type == POSSESSIVE) { + root = node; + return node; + } + tail.next = new BranchConn(); + tail = tail.next; + if (ques.type == GREEDY) { + head = new Branch(head, null, tail); + } else { // Reluctant quantifier + head = new Branch(null, head, tail); + } + root = tail; + return head; + } else if (node instanceof Curly) { + Curly curly = (Curly) node; + if (curly.type == POSSESSIVE) { + root = node; + return node; + } + // Discover if the group is deterministic + TreeInfo info = new TreeInfo(); + if (head.study(info)) { // Deterministic + GroupTail temp = (GroupTail) tail; + head = root = new GroupCurly(head.next, curly.cmin, + curly.cmax, curly.type, + ((GroupTail)tail).localIndex, + ((GroupTail)tail).groupIndex, + capturingGroup); + return head; + } else { // Non-deterministic + int temp = ((GroupHead) head).localIndex; + Loop loop; + if (curly.type == GREEDY) + loop = new Loop(this.localCount, temp); + else // Reluctant Curly + loop = new LazyLoop(this.localCount, temp); + Prolog prolog = new Prolog(loop); + this.localCount += 1; + loop.cmin = curly.cmin; + loop.cmax = curly.cmax; + loop.body = head; + tail.next = loop; + root = loop; + return prolog; // Dual return + } + } + throw error("Internal logic error"); + } + + /** + * Create group head and tail nodes using double return. If the group is + * created with anonymous true then it is a pure group and should not + * affect group counting. + */ + private Node createGroup(boolean anonymous) { + int localIndex = localCount++; + int groupIndex = 0; + if (!anonymous) + groupIndex = capturingGroupCount++; + GroupHead head = new GroupHead(localIndex); + root = new GroupTail(localIndex, groupIndex); + if (!anonymous && groupIndex < 10) + groupNodes[groupIndex] = head; + return head; + } + + /** + * Parses inlined match flags and set them appropriately. + */ + private void addFlag() { + int ch = peek(); + for (;;) { + switch (ch) { + case 'i': + flags |= CASE_INSENSITIVE; + break; + case 'm': + flags |= MULTILINE; + break; + case 's': + flags |= DOTALL; + break; + case 'd': + flags |= UNIX_LINES; + break; + case 'u': + flags |= UNICODE_CASE; + break; + case 'c': + flags |= CANON_EQ; + break; + case 'x': + flags |= COMMENTS; + break; + case 'U': + flags |= (UNICODE_CHARACTER_CLASS | UNICODE_CASE); + break; + case '-': // subFlag then fall through + ch = next(); + subFlag(); + default: + return; + } + ch = next(); + } + } + + /** + * Parses the second part of inlined match flags and turns off + * flags appropriately. + */ + private void subFlag() { + int ch = peek(); + for (;;) { + switch (ch) { + case 'i': + flags &= ~CASE_INSENSITIVE; + break; + case 'm': + flags &= ~MULTILINE; + break; + case 's': + flags &= ~DOTALL; + break; + case 'd': + flags &= ~UNIX_LINES; + break; + case 'u': + flags &= ~UNICODE_CASE; + break; + case 'c': + flags &= ~CANON_EQ; + break; + case 'x': + flags &= ~COMMENTS; + break; + case 'U': + flags &= ~(UNICODE_CHARACTER_CLASS | UNICODE_CASE); + default: + return; + } + ch = next(); + } + } + + static final int MAX_REPS = 0x7FFFFFFF; + + static final int GREEDY = 0; + + static final int LAZY = 1; + + static final int POSSESSIVE = 2; + + static final int INDEPENDENT = 3; + + /** + * Processes repetition. If the next character peeked is a quantifier + * then new nodes must be appended to handle the repetition. + * Prev could be a single or a group, so it could be a chain of nodes. + */ + private Node closure(Node prev) { + Node atom; + int ch = peek(); + switch (ch) { + case '?': + ch = next(); + if (ch == '?') { + next(); + return new Ques(prev, LAZY); + } else if (ch == '+') { + next(); + return new Ques(prev, POSSESSIVE); + } + return new Ques(prev, GREEDY); + case '*': + ch = next(); + if (ch == '?') { + next(); + return new Curly(prev, 0, MAX_REPS, LAZY); + } else if (ch == '+') { + next(); + return new Curly(prev, 0, MAX_REPS, POSSESSIVE); + } + return new Curly(prev, 0, MAX_REPS, GREEDY); + case '+': + ch = next(); + if (ch == '?') { + next(); + return new Curly(prev, 1, MAX_REPS, LAZY); + } else if (ch == '+') { + next(); + return new Curly(prev, 1, MAX_REPS, POSSESSIVE); + } + return new Curly(prev, 1, MAX_REPS, GREEDY); + case '{': + ch = temp[cursor+1]; + if (ASCII.isDigit(ch)) { + skip(); + int cmin = 0; + do { + cmin = cmin * 10 + (ch - '0'); + } while (ASCII.isDigit(ch = read())); + int cmax = cmin; + if (ch == ',') { + ch = read(); + cmax = MAX_REPS; + if (ch != '}') { + cmax = 0; + while (ASCII.isDigit(ch)) { + cmax = cmax * 10 + (ch - '0'); + ch = read(); + } + } + } + if (ch != '}') + throw error("Unclosed counted closure"); + if (((cmin) | (cmax) | (cmax - cmin)) < 0) + throw error("Illegal repetition range"); + Curly curly; + ch = peek(); + if (ch == '?') { + next(); + curly = new Curly(prev, cmin, cmax, LAZY); + } else if (ch == '+') { + next(); + curly = new Curly(prev, cmin, cmax, POSSESSIVE); + } else { + curly = new Curly(prev, cmin, cmax, GREEDY); + } + return curly; + } else { + throw error("Illegal repetition"); + } + default: + return prev; + } + } + + /** + * Utility method for parsing control escape sequences. + */ + private int c() { + if (cursor < patternLength) { + return read() ^ 64; + } + throw error("Illegal control escape sequence"); + } + + /** + * Utility method for parsing octal escape sequences. + */ + private int o() { + int n = read(); + if (((n-'0')|('7'-n)) >= 0) { + int m = read(); + if (((m-'0')|('7'-m)) >= 0) { + int o = read(); + if ((((o-'0')|('7'-o)) >= 0) && (((n-'0')|('3'-n)) >= 0)) { + return (n - '0') * 64 + (m - '0') * 8 + (o - '0'); + } + unread(); + return (n - '0') * 8 + (m - '0'); + } + unread(); + return (n - '0'); + } + throw error("Illegal octal escape sequence"); + } + + /** + * Utility method for parsing hexadecimal escape sequences. + */ + private int x() { + int n = read(); + if (ASCII.isHexDigit(n)) { + int m = read(); + if (ASCII.isHexDigit(m)) { + return ASCII.toDigit(n) * 16 + ASCII.toDigit(m); + } + } else if (n == '{' && ASCII.isHexDigit(peek())) { + int ch = 0; + while (ASCII.isHexDigit(n = read())) { + ch = (ch << 4) + ASCII.toDigit(n); + if (ch > Character.MAX_CODE_POINT) + throw error("Hexadecimal codepoint is too big"); + } + if (n != '}') + throw error("Unclosed hexadecimal escape sequence"); + return ch; + } + throw error("Illegal hexadecimal escape sequence"); + } + + /** + * Utility method for parsing unicode escape sequences. + */ + private int cursor() { + return cursor; + } + + private void setcursor(int pos) { + cursor = pos; + } + + private int uxxxx() { + int n = 0; + for (int i = 0; i < 4; i++) { + int ch = read(); + if (!ASCII.isHexDigit(ch)) { + throw error("Illegal Unicode escape sequence"); + } + n = n * 16 + ASCII.toDigit(ch); + } + return n; + } + + private int u() { + int n = uxxxx(); + if (Character.isHighSurrogate((char)n)) { + int cur = cursor(); + if (read() == '\\' && read() == 'u') { + int n2 = uxxxx(); + if (Character.isLowSurrogate((char)n2)) + return Character.toCodePoint((char)n, (char)n2); + } + setcursor(cur); + } + return n; + } + + // + // Utility methods for code point support + // + + private static final int countChars(CharSequence seq, int index, + int lengthInCodePoints) { + // optimization + if (lengthInCodePoints == 1 && !Character.isHighSurrogate(seq.charAt(index))) { + assert (index >= 0 && index < seq.length()); + return 1; + } + int length = seq.length(); + int x = index; + if (lengthInCodePoints >= 0) { + assert (index >= 0 && index < length); + for (int i = 0; x < length && i < lengthInCodePoints; i++) { + if (Character.isHighSurrogate(seq.charAt(x++))) { + if (x < length && Character.isLowSurrogate(seq.charAt(x))) { + x++; + } + } + } + return x - index; + } + + assert (index >= 0 && index <= length); + if (index == 0) { + return 0; + } + int len = -lengthInCodePoints; + for (int i = 0; x > 0 && i < len; i++) { + if (Character.isLowSurrogate(seq.charAt(--x))) { + if (x > 0 && Character.isHighSurrogate(seq.charAt(x-1))) { + x--; + } + } + } + return index - x; + } + + private static final int countCodePoints(CharSequence seq) { + int length = seq.length(); + int n = 0; + for (int i = 0; i < length; ) { + n++; + if (Character.isHighSurrogate(seq.charAt(i++))) { + if (i < length && Character.isLowSurrogate(seq.charAt(i))) { + i++; + } + } + } + return n; + } + + /** + * Creates a bit vector for matching Latin-1 values. A normal BitClass + * never matches values above Latin-1, and a complemented BitClass always + * matches values above Latin-1. + */ + private static final class BitClass extends BmpCharProperty { + final boolean[] bits; + BitClass() { bits = new boolean[256]; } + private BitClass(boolean[] bits) { this.bits = bits; } + BitClass add(int c, int flags) { + assert c >= 0 && c <= 255; + if ((flags & CASE_INSENSITIVE) != 0) { + if (ASCII.isAscii(c)) { + bits[ASCII.toUpper(c)] = true; + bits[ASCII.toLower(c)] = true; + } else if ((flags & UNICODE_CASE) != 0) { + bits[Character.toLowerCase(c)] = true; + bits[Character.toUpperCase(c)] = true; + } + } + bits[c] = true; + return this; + } + boolean isSatisfiedBy(int ch) { + return ch < 256 && bits[ch]; + } + } + + /** + * Returns a suitably optimized, single character matcher. + */ + private CharProperty newSingle(final int ch) { + if (has(CASE_INSENSITIVE)) { + int lower, upper; + if (has(UNICODE_CASE)) { + upper = Character.toUpperCase(ch); + lower = Character.toLowerCase(upper); + if (upper != lower) + return new SingleU(lower); + } else if (ASCII.isAscii(ch)) { + lower = ASCII.toLower(ch); + upper = ASCII.toUpper(ch); + if (lower != upper) + return new SingleI(lower, upper); + } + } + if (isSupplementary(ch)) + return new SingleS(ch); // Match a given Unicode character + return new Single(ch); // Match a given BMP character + } + + /** + * Utility method for creating a string slice matcher. + */ + private Node newSlice(int[] buf, int count, boolean hasSupplementary) { + int[] tmp = new int[count]; + if (has(CASE_INSENSITIVE)) { + if (has(UNICODE_CASE)) { + for (int i = 0; i < count; i++) { + tmp[i] = Character.toLowerCase( + Character.toUpperCase(buf[i])); + } + return hasSupplementary? new SliceUS(tmp) : new SliceU(tmp); + } + for (int i = 0; i < count; i++) { + tmp[i] = ASCII.toLower(buf[i]); + } + return hasSupplementary? new SliceIS(tmp) : new SliceI(tmp); + } + for (int i = 0; i < count; i++) { + tmp[i] = buf[i]; + } + return hasSupplementary ? new SliceS(tmp) : new Slice(tmp); + } + + /** + * The following classes are the building components of the object + * tree that represents a compiled regular expression. The object tree + * is made of individual elements that handle constructs in the Pattern. + * Each type of object knows how to match its equivalent construct with + * the match() method. + */ + + /** + * Base class for all node classes. Subclasses should override the match() + * method as appropriate. This class is an accepting node, so its match() + * always returns true. + */ + static class Node extends Object { + Node next; + Node() { + next = Pattern.accept; + } + /** + * This method implements the classic accept node. + */ + boolean match(Matcher matcher, int i, CharSequence seq) { + matcher.last = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + /** + * This method is good for all zero length assertions. + */ + boolean study(TreeInfo info) { + if (next != null) { + return next.study(info); + } else { + return info.deterministic; + } + } + } + + static class LastNode extends Node { + /** + * This method implements the classic accept node with + * the addition of a check to see if the match occurred + * using all of the input. + */ + boolean match(Matcher matcher, int i, CharSequence seq) { + if (matcher.acceptMode == Matcher.ENDANCHOR && i != matcher.to) + return false; + matcher.last = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + } + + /** + * Used for REs that can start anywhere within the input string. + * This basically tries to match repeatedly at each spot in the + * input string, moving forward after each try. An anchored search + * or a BnM will bypass this node completely. + */ + static class Start extends Node { + int minLength; + Start(Node node) { + this.next = node; + TreeInfo info = new TreeInfo(); + next.study(info); + minLength = info.minLength; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + if (i > matcher.to - minLength) { + matcher.hitEnd = true; + return false; + } + int guard = matcher.to - minLength; + for (; i <= guard; i++) { + if (next.match(matcher, i, seq)) { + matcher.first = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + } + matcher.hitEnd = true; + return false; + } + boolean study(TreeInfo info) { + next.study(info); + info.maxValid = false; + info.deterministic = false; + return false; + } + } + + /* + * StartS supports supplementary characters, including unpaired surrogates. + */ + static final class StartS extends Start { + StartS(Node node) { + super(node); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + if (i > matcher.to - minLength) { + matcher.hitEnd = true; + return false; + } + int guard = matcher.to - minLength; + while (i <= guard) { + //if ((ret = next.match(matcher, i, seq)) || i == guard) + if (next.match(matcher, i, seq)) { + matcher.first = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + if (i == guard) + break; + // Optimization to move to the next character. This is + // faster than countChars(seq, i, 1). + if (Character.isHighSurrogate(seq.charAt(i++))) { + if (i < seq.length() && + Character.isLowSurrogate(seq.charAt(i))) { + i++; + } + } + } + matcher.hitEnd = true; + return false; + } + } + + /** + * Node to anchor at the beginning of input. This object implements the + * match for a \A sequence, and the caret anchor will use this if not in + * multiline mode. + */ + static final class Begin extends Node { + boolean match(Matcher matcher, int i, CharSequence seq) { + int fromIndex = (matcher.anchoringBounds) ? + matcher.from : 0; + if (i == fromIndex && next.match(matcher, i, seq)) { + matcher.first = i; + matcher.groups[0] = i; + matcher.groups[1] = matcher.last; + return true; + } else { + return false; + } + } + } + + /** + * Node to anchor at the end of input. This is the absolute end, so this + * should not match at the last newline before the end as $ will. + */ + static final class End extends Node { + boolean match(Matcher matcher, int i, CharSequence seq) { + int endIndex = (matcher.anchoringBounds) ? + matcher.to : matcher.getTextLength(); + if (i == endIndex) { + matcher.hitEnd = true; + return next.match(matcher, i, seq); + } + return false; + } + } + + /** + * Node to anchor at the beginning of a line. This is essentially the + * object to match for the multiline ^. + */ + static final class Caret extends Node { + boolean match(Matcher matcher, int i, CharSequence seq) { + int startIndex = matcher.from; + int endIndex = matcher.to; + if (!matcher.anchoringBounds) { + startIndex = 0; + endIndex = matcher.getTextLength(); + } + // Perl does not match ^ at end of input even after newline + if (i == endIndex) { + matcher.hitEnd = true; + return false; + } + if (i > startIndex) { + char ch = seq.charAt(i-1); + if (ch != '\n' && ch != '\r' + && (ch|1) != '\u2029' + && ch != '\u0085' ) { + return false; + } + // Should treat /r/n as one newline + if (ch == '\r' && seq.charAt(i) == '\n') + return false; + } + return next.match(matcher, i, seq); + } + } + + /** + * Node to anchor at the beginning of a line when in unixdot mode. + */ + static final class UnixCaret extends Node { + boolean match(Matcher matcher, int i, CharSequence seq) { + int startIndex = matcher.from; + int endIndex = matcher.to; + if (!matcher.anchoringBounds) { + startIndex = 0; + endIndex = matcher.getTextLength(); + } + // Perl does not match ^ at end of input even after newline + if (i == endIndex) { + matcher.hitEnd = true; + return false; + } + if (i > startIndex) { + char ch = seq.charAt(i-1); + if (ch != '\n') { + return false; + } + } + return next.match(matcher, i, seq); + } + } + + /** + * Node to match the location where the last match ended. + * This is used for the \G construct. + */ + static final class LastMatch extends Node { + boolean match(Matcher matcher, int i, CharSequence seq) { + if (i != matcher.oldLast) + return false; + return next.match(matcher, i, seq); + } + } + + /** + * Node to anchor at the end of a line or the end of input based on the + * multiline mode. + * + * When not in multiline mode, the $ can only match at the very end + * of the input, unless the input ends in a line terminator in which + * it matches right before the last line terminator. + * + * Note that \r\n is considered an atomic line terminator. + * + * Like ^ the $ operator matches at a position, it does not match the + * line terminators themselves. + */ + static final class Dollar extends Node { + boolean multiline; + Dollar(boolean mul) { + multiline = mul; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int endIndex = (matcher.anchoringBounds) ? + matcher.to : matcher.getTextLength(); + if (!multiline) { + if (i < endIndex - 2) + return false; + if (i == endIndex - 2) { + char ch = seq.charAt(i); + if (ch != '\r') + return false; + ch = seq.charAt(i + 1); + if (ch != '\n') + return false; + } + } + // Matches before any line terminator; also matches at the + // end of input + // Before line terminator: + // If multiline, we match here no matter what + // If not multiline, fall through so that the end + // is marked as hit; this must be a /r/n or a /n + // at the very end so the end was hit; more input + // could make this not match here + if (i < endIndex) { + char ch = seq.charAt(i); + if (ch == '\n') { + // No match between \r\n + if (i > 0 && seq.charAt(i-1) == '\r') + return false; + if (multiline) + return next.match(matcher, i, seq); + } else if (ch == '\r' || ch == '\u0085' || + (ch|1) == '\u2029') { + if (multiline) + return next.match(matcher, i, seq); + } else { // No line terminator, no match + return false; + } + } + // Matched at current end so hit end + matcher.hitEnd = true; + // If a $ matches because of end of input, then more input + // could cause it to fail! + matcher.requireEnd = true; + return next.match(matcher, i, seq); + } + boolean study(TreeInfo info) { + next.study(info); + return info.deterministic; + } + } + + /** + * Node to anchor at the end of a line or the end of input based on the + * multiline mode when in unix lines mode. + */ + static final class UnixDollar extends Node { + boolean multiline; + UnixDollar(boolean mul) { + multiline = mul; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int endIndex = (matcher.anchoringBounds) ? + matcher.to : matcher.getTextLength(); + if (i < endIndex) { + char ch = seq.charAt(i); + if (ch == '\n') { + // If not multiline, then only possible to + // match at very end or one before end + if (multiline == false && i != endIndex - 1) + return false; + // If multiline return next.match without setting + // matcher.hitEnd + if (multiline) + return next.match(matcher, i, seq); + } else { + return false; + } + } + // Matching because at the end or 1 before the end; + // more input could change this so set hitEnd + matcher.hitEnd = true; + // If a $ matches because of end of input, then more input + // could cause it to fail! + matcher.requireEnd = true; + return next.match(matcher, i, seq); + } + boolean study(TreeInfo info) { + next.study(info); + return info.deterministic; + } + } + + /** + * Abstract node class to match one character satisfying some + * boolean property. + */ + private static abstract class CharProperty extends Node { + abstract boolean isSatisfiedBy(int ch); + CharProperty complement() { + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return ! CharProperty.this.isSatisfiedBy(ch);}}; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + if (i < matcher.to) { + int ch = Character.codePointAt(seq, i); + return isSatisfiedBy(ch) + && next.match(matcher, i+Character.charCount(ch), seq); + } else { + matcher.hitEnd = true; + return false; + } + } + boolean study(TreeInfo info) { + info.minLength++; + info.maxLength++; + return next.study(info); + } + } + + /** + * Optimized version of CharProperty that works only for + * properties never satisfied by Supplementary characters. + */ + private static abstract class BmpCharProperty extends CharProperty { + boolean match(Matcher matcher, int i, CharSequence seq) { + if (i < matcher.to) { + return isSatisfiedBy(seq.charAt(i)) + && next.match(matcher, i+1, seq); + } else { + matcher.hitEnd = true; + return false; + } + } + } + + /** + * Node class that matches a Supplementary Unicode character + */ + static final class SingleS extends CharProperty { + final int c; + SingleS(int c) { this.c = c; } + boolean isSatisfiedBy(int ch) { + return ch == c; + } + } + + /** + * Optimization -- matches a given BMP character + */ + static final class Single extends BmpCharProperty { + final int c; + Single(int c) { this.c = c; } + boolean isSatisfiedBy(int ch) { + return ch == c; + } + } + + /** + * Case insensitive matches a given BMP character + */ + static final class SingleI extends BmpCharProperty { + final int lower; + final int upper; + SingleI(int lower, int upper) { + this.lower = lower; + this.upper = upper; + } + boolean isSatisfiedBy(int ch) { + return ch == lower || ch == upper; + } + } + + /** + * Unicode case insensitive matches a given Unicode character + */ + static final class SingleU extends CharProperty { + final int lower; + SingleU(int lower) { + this.lower = lower; + } + boolean isSatisfiedBy(int ch) { + return lower == ch || + lower == Character.toLowerCase(Character.toUpperCase(ch)); + } + } + + + /** + * Node class that matches a Unicode block. + */ + static final class Block extends CharProperty { + final Character.UnicodeBlock block; + Block(Character.UnicodeBlock block) { + this.block = block; + } + boolean isSatisfiedBy(int ch) { + return block == Character.UnicodeBlock.of(ch); + } + } + + /** + * Node class that matches a Unicode script + */ + static final class Script extends CharProperty { + final Character.UnicodeScript script; + Script(Character.UnicodeScript script) { + this.script = script; + } + boolean isSatisfiedBy(int ch) { + return script == Character.UnicodeScript.of(ch); + } + } + + /** + * Node class that matches a Unicode category. + */ + static final class Category extends CharProperty { + final int typeMask; + Category(int typeMask) { this.typeMask = typeMask; } + boolean isSatisfiedBy(int ch) { + return (typeMask & (1 << Character.getType(ch))) != 0; + } + } + + /** + * Node class that matches a Unicode "type" + */ + static final class Utype extends CharProperty { + final UnicodeProp uprop; + Utype(UnicodeProp uprop) { this.uprop = uprop; } + boolean isSatisfiedBy(int ch) { + return uprop.is(ch); + } + } + + + /** + * Node class that matches a POSIX type. + */ + static final class Ctype extends BmpCharProperty { + final int ctype; + Ctype(int ctype) { this.ctype = ctype; } + boolean isSatisfiedBy(int ch) { + return ch < 128 && ASCII.isType(ch, ctype); + } + } + + /** + * Base class for all Slice nodes + */ + static class SliceNode extends Node { + int[] buffer; + SliceNode(int[] buf) { + buffer = buf; + } + boolean study(TreeInfo info) { + info.minLength += buffer.length; + info.maxLength += buffer.length; + return next.study(info); + } + } + + /** + * Node class for a case sensitive/BMP-only sequence of literal + * characters. + */ + static final class Slice extends SliceNode { + Slice(int[] buf) { + super(buf); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] buf = buffer; + int len = buf.length; + for (int j=0; j= matcher.to) { + matcher.hitEnd = true; + return false; + } + if (buf[j] != seq.charAt(i+j)) + return false; + } + return next.match(matcher, i+len, seq); + } + } + + /** + * Node class for a case_insensitive/BMP-only sequence of literal + * characters. + */ + static class SliceI extends SliceNode { + SliceI(int[] buf) { + super(buf); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] buf = buffer; + int len = buf.length; + for (int j=0; j= matcher.to) { + matcher.hitEnd = true; + return false; + } + int c = seq.charAt(i+j); + if (buf[j] != c && + buf[j] != ASCII.toLower(c)) + return false; + } + return next.match(matcher, i+len, seq); + } + } + + /** + * Node class for a unicode_case_insensitive/BMP-only sequence of + * literal characters. Uses unicode case folding. + */ + static final class SliceU extends SliceNode { + SliceU(int[] buf) { + super(buf); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] buf = buffer; + int len = buf.length; + for (int j=0; j= matcher.to) { + matcher.hitEnd = true; + return false; + } + int c = seq.charAt(i+j); + if (buf[j] != c && + buf[j] != Character.toLowerCase(Character.toUpperCase(c))) + return false; + } + return next.match(matcher, i+len, seq); + } + } + + /** + * Node class for a case sensitive sequence of literal characters + * including supplementary characters. + */ + static final class SliceS extends SliceNode { + SliceS(int[] buf) { + super(buf); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] buf = buffer; + int x = i; + for (int j = 0; j < buf.length; j++) { + if (x >= matcher.to) { + matcher.hitEnd = true; + return false; + } + int c = Character.codePointAt(seq, x); + if (buf[j] != c) + return false; + x += Character.charCount(c); + if (x > matcher.to) { + matcher.hitEnd = true; + return false; + } + } + return next.match(matcher, x, seq); + } + } + + /** + * Node class for a case insensitive sequence of literal characters + * including supplementary characters. + */ + static class SliceIS extends SliceNode { + SliceIS(int[] buf) { + super(buf); + } + int toLower(int c) { + return ASCII.toLower(c); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] buf = buffer; + int x = i; + for (int j = 0; j < buf.length; j++) { + if (x >= matcher.to) { + matcher.hitEnd = true; + return false; + } + int c = Character.codePointAt(seq, x); + if (buf[j] != c && buf[j] != toLower(c)) + return false; + x += Character.charCount(c); + if (x > matcher.to) { + matcher.hitEnd = true; + return false; + } + } + return next.match(matcher, x, seq); + } + } + + /** + * Node class for a case insensitive sequence of literal characters. + * Uses unicode case folding. + */ + static final class SliceUS extends SliceIS { + SliceUS(int[] buf) { + super(buf); + } + int toLower(int c) { + return Character.toLowerCase(Character.toUpperCase(c)); + } + } + + private static boolean inRange(int lower, int ch, int upper) { + return lower <= ch && ch <= upper; + } + + /** + * Returns node for matching characters within an explicit value range. + */ + private static CharProperty rangeFor(final int lower, + final int upper) { + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return inRange(lower, ch, upper);}}; + } + + /** + * Returns node for matching characters within an explicit value + * range in a case insensitive manner. + */ + private CharProperty caseInsensitiveRangeFor(final int lower, + final int upper) { + if (has(UNICODE_CASE)) + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + if (inRange(lower, ch, upper)) + return true; + int up = Character.toUpperCase(ch); + return inRange(lower, up, upper) || + inRange(lower, Character.toLowerCase(up), upper);}}; + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return inRange(lower, ch, upper) || + ASCII.isAscii(ch) && + (inRange(lower, ASCII.toUpper(ch), upper) || + inRange(lower, ASCII.toLower(ch), upper)); + }}; + } + + /** + * Implements the Unicode category ALL and the dot metacharacter when + * in dotall mode. + */ + static final class All extends CharProperty { + boolean isSatisfiedBy(int ch) { + return true; + } + } + + /** + * Node class for the dot metacharacter when dotall is not enabled. + */ + static final class Dot extends CharProperty { + boolean isSatisfiedBy(int ch) { + return (ch != '\n' && ch != '\r' + && (ch|1) != '\u2029' + && ch != '\u0085'); + } + } + + /** + * Node class for the dot metacharacter when dotall is not enabled + * but UNIX_LINES is enabled. + */ + static final class UnixDot extends CharProperty { + boolean isSatisfiedBy(int ch) { + return ch != '\n'; + } + } + + /** + * The 0 or 1 quantifier. This one class implements all three types. + */ + static final class Ques extends Node { + Node atom; + int type; + Ques(Node node, int type) { + this.atom = node; + this.type = type; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + switch (type) { + case GREEDY: + return (atom.match(matcher, i, seq) && next.match(matcher, matcher.last, seq)) + || next.match(matcher, i, seq); + case LAZY: + return next.match(matcher, i, seq) + || (atom.match(matcher, i, seq) && next.match(matcher, matcher.last, seq)); + case POSSESSIVE: + if (atom.match(matcher, i, seq)) i = matcher.last; + return next.match(matcher, i, seq); + default: + return atom.match(matcher, i, seq) && next.match(matcher, matcher.last, seq); + } + } + boolean study(TreeInfo info) { + if (type != INDEPENDENT) { + int minL = info.minLength; + atom.study(info); + info.minLength = minL; + info.deterministic = false; + return next.study(info); + } else { + atom.study(info); + return next.study(info); + } + } + } + + /** + * Handles the curly-brace style repetition with a specified minimum and + * maximum occurrences. The * quantifier is handled as a special case. + * This class handles the three types. + */ + static final class Curly extends Node { + Node atom; + int type; + int cmin; + int cmax; + + Curly(Node node, int cmin, int cmax, int type) { + this.atom = node; + this.type = type; + this.cmin = cmin; + this.cmax = cmax; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int j; + for (j = 0; j < cmin; j++) { + if (atom.match(matcher, i, seq)) { + i = matcher.last; + continue; + } + return false; + } + if (type == GREEDY) + return match0(matcher, i, j, seq); + else if (type == LAZY) + return match1(matcher, i, j, seq); + else + return match2(matcher, i, j, seq); + } + // Greedy match. + // i is the index to start matching at + // j is the number of atoms that have matched + boolean match0(Matcher matcher, int i, int j, CharSequence seq) { + if (j >= cmax) { + // We have matched the maximum... continue with the rest of + // the regular expression + return next.match(matcher, i, seq); + } + int backLimit = j; + while (atom.match(matcher, i, seq)) { + // k is the length of this match + int k = matcher.last - i; + if (k == 0) // Zero length match + break; + // Move up index and number matched + i = matcher.last; + j++; + // We are greedy so match as many as we can + while (j < cmax) { + if (!atom.match(matcher, i, seq)) + break; + if (i + k != matcher.last) { + if (match0(matcher, matcher.last, j+1, seq)) + return true; + break; + } + i += k; + j++; + } + // Handle backing off if match fails + while (j >= backLimit) { + if (next.match(matcher, i, seq)) + return true; + i -= k; + j--; + } + return false; + } + return next.match(matcher, i, seq); + } + // Reluctant match. At this point, the minimum has been satisfied. + // i is the index to start matching at + // j is the number of atoms that have matched + boolean match1(Matcher matcher, int i, int j, CharSequence seq) { + for (;;) { + // Try finishing match without consuming any more + if (next.match(matcher, i, seq)) + return true; + // At the maximum, no match found + if (j >= cmax) + return false; + // Okay, must try one more atom + if (!atom.match(matcher, i, seq)) + return false; + // If we haven't moved forward then must break out + if (i == matcher.last) + return false; + // Move up index and number matched + i = matcher.last; + j++; + } + } + boolean match2(Matcher matcher, int i, int j, CharSequence seq) { + for (; j < cmax; j++) { + if (!atom.match(matcher, i, seq)) + break; + if (i == matcher.last) + break; + i = matcher.last; + } + return next.match(matcher, i, seq); + } + boolean study(TreeInfo info) { + // Save original info + int minL = info.minLength; + int maxL = info.maxLength; + boolean maxV = info.maxValid; + boolean detm = info.deterministic; + info.reset(); + + atom.study(info); + + int temp = info.minLength * cmin + minL; + if (temp < minL) { + temp = 0xFFFFFFF; // arbitrary large number + } + info.minLength = temp; + + if (maxV & info.maxValid) { + temp = info.maxLength * cmax + maxL; + info.maxLength = temp; + if (temp < maxL) { + info.maxValid = false; + } + } else { + info.maxValid = false; + } + + if (info.deterministic && cmin == cmax) + info.deterministic = detm; + else + info.deterministic = false; + + return next.study(info); + } + } + + /** + * Handles the curly-brace style repetition with a specified minimum and + * maximum occurrences in deterministic cases. This is an iterative + * optimization over the Prolog and Loop system which would handle this + * in a recursive way. The * quantifier is handled as a special case. + * If capture is true then this class saves group settings and ensures + * that groups are unset when backing off of a group match. + */ + static final class GroupCurly extends Node { + Node atom; + int type; + int cmin; + int cmax; + int localIndex; + int groupIndex; + boolean capture; + + GroupCurly(Node node, int cmin, int cmax, int type, int local, + int group, boolean capture) { + this.atom = node; + this.type = type; + this.cmin = cmin; + this.cmax = cmax; + this.localIndex = local; + this.groupIndex = group; + this.capture = capture; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] groups = matcher.groups; + int[] locals = matcher.locals; + int save0 = locals[localIndex]; + int save1 = 0; + int save2 = 0; + + if (capture) { + save1 = groups[groupIndex]; + save2 = groups[groupIndex+1]; + } + + // Notify GroupTail there is no need to setup group info + // because it will be set here + locals[localIndex] = -1; + + boolean ret = true; + for (int j = 0; j < cmin; j++) { + if (atom.match(matcher, i, seq)) { + if (capture) { + groups[groupIndex] = i; + groups[groupIndex+1] = matcher.last; + } + i = matcher.last; + } else { + ret = false; + break; + } + } + if (ret) { + if (type == GREEDY) { + ret = match0(matcher, i, cmin, seq); + } else if (type == LAZY) { + ret = match1(matcher, i, cmin, seq); + } else { + ret = match2(matcher, i, cmin, seq); + } + } + if (!ret) { + locals[localIndex] = save0; + if (capture) { + groups[groupIndex] = save1; + groups[groupIndex+1] = save2; + } + } + return ret; + } + // Aggressive group match + boolean match0(Matcher matcher, int i, int j, CharSequence seq) { + int[] groups = matcher.groups; + int save0 = 0; + int save1 = 0; + if (capture) { + save0 = groups[groupIndex]; + save1 = groups[groupIndex+1]; + } + for (;;) { + if (j >= cmax) + break; + if (!atom.match(matcher, i, seq)) + break; + int k = matcher.last - i; + if (k <= 0) { + if (capture) { + groups[groupIndex] = i; + groups[groupIndex+1] = i + k; + } + i = i + k; + break; + } + for (;;) { + if (capture) { + groups[groupIndex] = i; + groups[groupIndex+1] = i + k; + } + i = i + k; + if (++j >= cmax) + break; + if (!atom.match(matcher, i, seq)) + break; + if (i + k != matcher.last) { + if (match0(matcher, i, j, seq)) + return true; + break; + } + } + while (j > cmin) { + if (next.match(matcher, i, seq)) { + if (capture) { + groups[groupIndex+1] = i; + groups[groupIndex] = i - k; + } + i = i - k; + return true; + } + // backing off + if (capture) { + groups[groupIndex+1] = i; + groups[groupIndex] = i - k; + } + i = i - k; + j--; + } + break; + } + if (capture) { + groups[groupIndex] = save0; + groups[groupIndex+1] = save1; + } + return next.match(matcher, i, seq); + } + // Reluctant matching + boolean match1(Matcher matcher, int i, int j, CharSequence seq) { + for (;;) { + if (next.match(matcher, i, seq)) + return true; + if (j >= cmax) + return false; + if (!atom.match(matcher, i, seq)) + return false; + if (i == matcher.last) + return false; + if (capture) { + matcher.groups[groupIndex] = i; + matcher.groups[groupIndex+1] = matcher.last; + } + i = matcher.last; + j++; + } + } + // Possessive matching + boolean match2(Matcher matcher, int i, int j, CharSequence seq) { + for (; j < cmax; j++) { + if (!atom.match(matcher, i, seq)) { + break; + } + if (capture) { + matcher.groups[groupIndex] = i; + matcher.groups[groupIndex+1] = matcher.last; + } + if (i == matcher.last) { + break; + } + i = matcher.last; + } + return next.match(matcher, i, seq); + } + boolean study(TreeInfo info) { + // Save original info + int minL = info.minLength; + int maxL = info.maxLength; + boolean maxV = info.maxValid; + boolean detm = info.deterministic; + info.reset(); + + atom.study(info); + + int temp = info.minLength * cmin + minL; + if (temp < minL) { + temp = 0xFFFFFFF; // Arbitrary large number + } + info.minLength = temp; + + if (maxV & info.maxValid) { + temp = info.maxLength * cmax + maxL; + info.maxLength = temp; + if (temp < maxL) { + info.maxValid = false; + } + } else { + info.maxValid = false; + } + + if (info.deterministic && cmin == cmax) { + info.deterministic = detm; + } else { + info.deterministic = false; + } + + return next.study(info); + } + } + + /** + * A Guard node at the end of each atom node in a Branch. It + * serves the purpose of chaining the "match" operation to + * "next" but not the "study", so we can collect the TreeInfo + * of each atom node without including the TreeInfo of the + * "next". + */ + static final class BranchConn extends Node { + BranchConn() {}; + boolean match(Matcher matcher, int i, CharSequence seq) { + return next.match(matcher, i, seq); + } + boolean study(TreeInfo info) { + return info.deterministic; + } + } + + /** + * Handles the branching of alternations. Note this is also used for + * the ? quantifier to branch between the case where it matches once + * and where it does not occur. + */ + static final class Branch extends Node { + Node[] atoms = new Node[2]; + int size = 2; + Node conn; + Branch(Node first, Node second, Node branchConn) { + conn = branchConn; + atoms[0] = first; + atoms[1] = second; + } + + void add(Node node) { + if (size >= atoms.length) { + Node[] tmp = new Node[atoms.length*2]; + System.arraycopy(atoms, 0, tmp, 0, atoms.length); + atoms = tmp; + } + atoms[size++] = node; + } + + boolean match(Matcher matcher, int i, CharSequence seq) { + for (int n = 0; n < size; n++) { + if (atoms[n] == null) { + if (conn.next.match(matcher, i, seq)) + return true; + } else if (atoms[n].match(matcher, i, seq)) { + return true; + } + } + return false; + } + + boolean study(TreeInfo info) { + int minL = info.minLength; + int maxL = info.maxLength; + boolean maxV = info.maxValid; + + int minL2 = Integer.MAX_VALUE; //arbitrary large enough num + int maxL2 = -1; + for (int n = 0; n < size; n++) { + info.reset(); + if (atoms[n] != null) + atoms[n].study(info); + minL2 = Math.min(minL2, info.minLength); + maxL2 = Math.max(maxL2, info.maxLength); + maxV = (maxV & info.maxValid); + } + + minL += minL2; + maxL += maxL2; + + info.reset(); + conn.next.study(info); + + info.minLength += minL; + info.maxLength += maxL; + info.maxValid &= maxV; + info.deterministic = false; + return false; + } + } + + /** + * The GroupHead saves the location where the group begins in the locals + * and restores them when the match is done. + * + * The matchRef is used when a reference to this group is accessed later + * in the expression. The locals will have a negative value in them to + * indicate that we do not want to unset the group if the reference + * doesn't match. + */ + static final class GroupHead extends Node { + int localIndex; + GroupHead(int localCount) { + localIndex = localCount; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int save = matcher.locals[localIndex]; + matcher.locals[localIndex] = i; + boolean ret = next.match(matcher, i, seq); + matcher.locals[localIndex] = save; + return ret; + } + boolean matchRef(Matcher matcher, int i, CharSequence seq) { + int save = matcher.locals[localIndex]; + matcher.locals[localIndex] = ~i; // HACK + boolean ret = next.match(matcher, i, seq); + matcher.locals[localIndex] = save; + return ret; + } + } + + /** + * Recursive reference to a group in the regular expression. It calls + * matchRef because if the reference fails to match we would not unset + * the group. + */ + static final class GroupRef extends Node { + GroupHead head; + GroupRef(GroupHead head) { + this.head = head; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + return head.matchRef(matcher, i, seq) + && next.match(matcher, matcher.last, seq); + } + boolean study(TreeInfo info) { + info.maxValid = false; + info.deterministic = false; + return next.study(info); + } + } + + /** + * The GroupTail handles the setting of group beginning and ending + * locations when groups are successfully matched. It must also be able to + * unset groups that have to be backed off of. + * + * The GroupTail node is also used when a previous group is referenced, + * and in that case no group information needs to be set. + */ + static final class GroupTail extends Node { + int localIndex; + int groupIndex; + GroupTail(int localCount, int groupCount) { + localIndex = localCount; + groupIndex = groupCount + groupCount; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int tmp = matcher.locals[localIndex]; + if (tmp >= 0) { // This is the normal group case. + // Save the group so we can unset it if it + // backs off of a match. + int groupStart = matcher.groups[groupIndex]; + int groupEnd = matcher.groups[groupIndex+1]; + + matcher.groups[groupIndex] = tmp; + matcher.groups[groupIndex+1] = i; + if (next.match(matcher, i, seq)) { + return true; + } + matcher.groups[groupIndex] = groupStart; + matcher.groups[groupIndex+1] = groupEnd; + return false; + } else { + // This is a group reference case. We don't need to save any + // group info because it isn't really a group. + matcher.last = i; + return true; + } + } + } + + /** + * This sets up a loop to handle a recursive quantifier structure. + */ + static final class Prolog extends Node { + Loop loop; + Prolog(Loop loop) { + this.loop = loop; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + return loop.matchInit(matcher, i, seq); + } + boolean study(TreeInfo info) { + return loop.study(info); + } + } + + /** + * Handles the repetition count for a greedy Curly. The matchInit + * is called from the Prolog to save the index of where the group + * beginning is stored. A zero length group check occurs in the + * normal match but is skipped in the matchInit. + */ + static class Loop extends Node { + Node body; + int countIndex; // local count index in matcher locals + int beginIndex; // group beginning index + int cmin, cmax; + Loop(int countIndex, int beginIndex) { + this.countIndex = countIndex; + this.beginIndex = beginIndex; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + // Avoid infinite loop in zero-length case. + if (i > matcher.locals[beginIndex]) { + int count = matcher.locals[countIndex]; + + // This block is for before we reach the minimum + // iterations required for the loop to match + if (count < cmin) { + matcher.locals[countIndex] = count + 1; + boolean b = body.match(matcher, i, seq); + // If match failed we must backtrack, so + // the loop count should NOT be incremented + if (!b) + matcher.locals[countIndex] = count; + // Return success or failure since we are under + // minimum + return b; + } + // This block is for after we have the minimum + // iterations required for the loop to match + if (count < cmax) { + matcher.locals[countIndex] = count + 1; + boolean b = body.match(matcher, i, seq); + // If match failed we must backtrack, so + // the loop count should NOT be incremented + if (!b) + matcher.locals[countIndex] = count; + else + return true; + } + } + return next.match(matcher, i, seq); + } + boolean matchInit(Matcher matcher, int i, CharSequence seq) { + int save = matcher.locals[countIndex]; + boolean ret = false; + if (0 < cmin) { + matcher.locals[countIndex] = 1; + ret = body.match(matcher, i, seq); + } else if (0 < cmax) { + matcher.locals[countIndex] = 1; + ret = body.match(matcher, i, seq); + if (ret == false) + ret = next.match(matcher, i, seq); + } else { + ret = next.match(matcher, i, seq); + } + matcher.locals[countIndex] = save; + return ret; + } + boolean study(TreeInfo info) { + info.maxValid = false; + info.deterministic = false; + return false; + } + } + + /** + * Handles the repetition count for a reluctant Curly. The matchInit + * is called from the Prolog to save the index of where the group + * beginning is stored. A zero length group check occurs in the + * normal match but is skipped in the matchInit. + */ + static final class LazyLoop extends Loop { + LazyLoop(int countIndex, int beginIndex) { + super(countIndex, beginIndex); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + // Check for zero length group + if (i > matcher.locals[beginIndex]) { + int count = matcher.locals[countIndex]; + if (count < cmin) { + matcher.locals[countIndex] = count + 1; + boolean result = body.match(matcher, i, seq); + // If match failed we must backtrack, so + // the loop count should NOT be incremented + if (!result) + matcher.locals[countIndex] = count; + return result; + } + if (next.match(matcher, i, seq)) + return true; + if (count < cmax) { + matcher.locals[countIndex] = count + 1; + boolean result = body.match(matcher, i, seq); + // If match failed we must backtrack, so + // the loop count should NOT be incremented + if (!result) + matcher.locals[countIndex] = count; + return result; + } + return false; + } + return next.match(matcher, i, seq); + } + boolean matchInit(Matcher matcher, int i, CharSequence seq) { + int save = matcher.locals[countIndex]; + boolean ret = false; + if (0 < cmin) { + matcher.locals[countIndex] = 1; + ret = body.match(matcher, i, seq); + } else if (next.match(matcher, i, seq)) { + ret = true; + } else if (0 < cmax) { + matcher.locals[countIndex] = 1; + ret = body.match(matcher, i, seq); + } + matcher.locals[countIndex] = save; + return ret; + } + boolean study(TreeInfo info) { + info.maxValid = false; + info.deterministic = false; + return false; + } + } + + /** + * Refers to a group in the regular expression. Attempts to match + * whatever the group referred to last matched. + */ + static class BackRef extends Node { + int groupIndex; + BackRef(int groupCount) { + super(); + groupIndex = groupCount + groupCount; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int j = matcher.groups[groupIndex]; + int k = matcher.groups[groupIndex+1]; + + int groupSize = k - j; + + // If the referenced group didn't match, neither can this + if (j < 0) + return false; + + // If there isn't enough input left no match + if (i + groupSize > matcher.to) { + matcher.hitEnd = true; + return false; + } + + // Check each new char to make sure it matches what the group + // referenced matched last time around + for (int index=0; index matcher.to) { + matcher.hitEnd = true; + return false; + } + + // Check each new char to make sure it matches what the group + // referenced matched last time around + int x = i; + for (int index=0; index matcher.to) { + matcher.hitEnd = true; + return false; + } + if (atom.match(matcher, i, seq)) { + return next.match(matcher, matcher.last, seq); + } + i += countChars(seq, i, 1); + matcher.first++; + } + } + boolean study(TreeInfo info) { + atom.study(info); + info.maxValid = false; + info.deterministic = false; + return next.study(info); + } + } + + static final class Conditional extends Node { + Node cond, yes, not; + Conditional(Node cond, Node yes, Node not) { + this.cond = cond; + this.yes = yes; + this.not = not; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + if (cond.match(matcher, i, seq)) { + return yes.match(matcher, i, seq); + } else { + return not.match(matcher, i, seq); + } + } + boolean study(TreeInfo info) { + int minL = info.minLength; + int maxL = info.maxLength; + boolean maxV = info.maxValid; + info.reset(); + yes.study(info); + + int minL2 = info.minLength; + int maxL2 = info.maxLength; + boolean maxV2 = info.maxValid; + info.reset(); + not.study(info); + + info.minLength = minL + Math.min(minL2, info.minLength); + info.maxLength = maxL + Math.max(maxL2, info.maxLength); + info.maxValid = (maxV & maxV2 & info.maxValid); + info.deterministic = false; + return next.study(info); + } + } + + /** + * Zero width positive lookahead. + */ + static final class Pos extends Node { + Node cond; + Pos(Node cond) { + this.cond = cond; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int savedTo = matcher.to; + boolean conditionMatched = false; + + // Relax transparent region boundaries for lookahead + if (matcher.transparentBounds) + matcher.to = matcher.getTextLength(); + try { + conditionMatched = cond.match(matcher, i, seq); + } finally { + // Reinstate region boundaries + matcher.to = savedTo; + } + return conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * Zero width negative lookahead. + */ + static final class Neg extends Node { + Node cond; + Neg(Node cond) { + this.cond = cond; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int savedTo = matcher.to; + boolean conditionMatched = false; + + // Relax transparent region boundaries for lookahead + if (matcher.transparentBounds) + matcher.to = matcher.getTextLength(); + try { + if (i < matcher.to) { + conditionMatched = !cond.match(matcher, i, seq); + } else { + // If a negative lookahead succeeds then more input + // could cause it to fail! + matcher.requireEnd = true; + conditionMatched = !cond.match(matcher, i, seq); + } + } finally { + // Reinstate region boundaries + matcher.to = savedTo; + } + return conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * For use with lookbehinds; matches the position where the lookbehind + * was encountered. + */ + static Node lookbehindEnd = new Node() { + boolean match(Matcher matcher, int i, CharSequence seq) { + return i == matcher.lookbehindTo; + } + }; + + /** + * Zero width positive lookbehind. + */ + static class Behind extends Node { + Node cond; + int rmax, rmin; + Behind(Node cond, int rmax, int rmin) { + this.cond = cond; + this.rmax = rmax; + this.rmin = rmin; + } + + boolean match(Matcher matcher, int i, CharSequence seq) { + int savedFrom = matcher.from; + boolean conditionMatched = false; + int startIndex = (!matcher.transparentBounds) ? + matcher.from : 0; + int from = Math.max(i - rmax, startIndex); + // Set end boundary + int savedLBT = matcher.lookbehindTo; + matcher.lookbehindTo = i; + // Relax transparent region boundaries for lookbehind + if (matcher.transparentBounds) + matcher.from = 0; + for (int j = i - rmin; !conditionMatched && j >= from; j--) { + conditionMatched = cond.match(matcher, j, seq); + } + matcher.from = savedFrom; + matcher.lookbehindTo = savedLBT; + return conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * Zero width positive lookbehind, including supplementary + * characters or unpaired surrogates. + */ + static final class BehindS extends Behind { + BehindS(Node cond, int rmax, int rmin) { + super(cond, rmax, rmin); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int rmaxChars = countChars(seq, i, -rmax); + int rminChars = countChars(seq, i, -rmin); + int savedFrom = matcher.from; + int startIndex = (!matcher.transparentBounds) ? + matcher.from : 0; + boolean conditionMatched = false; + int from = Math.max(i - rmaxChars, startIndex); + // Set end boundary + int savedLBT = matcher.lookbehindTo; + matcher.lookbehindTo = i; + // Relax transparent region boundaries for lookbehind + if (matcher.transparentBounds) + matcher.from = 0; + + for (int j = i - rminChars; + !conditionMatched && j >= from; + j -= j>from ? countChars(seq, j, -1) : 1) { + conditionMatched = cond.match(matcher, j, seq); + } + matcher.from = savedFrom; + matcher.lookbehindTo = savedLBT; + return conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * Zero width negative lookbehind. + */ + static class NotBehind extends Node { + Node cond; + int rmax, rmin; + NotBehind(Node cond, int rmax, int rmin) { + this.cond = cond; + this.rmax = rmax; + this.rmin = rmin; + } + + boolean match(Matcher matcher, int i, CharSequence seq) { + int savedLBT = matcher.lookbehindTo; + int savedFrom = matcher.from; + boolean conditionMatched = false; + int startIndex = (!matcher.transparentBounds) ? + matcher.from : 0; + int from = Math.max(i - rmax, startIndex); + matcher.lookbehindTo = i; + // Relax transparent region boundaries for lookbehind + if (matcher.transparentBounds) + matcher.from = 0; + for (int j = i - rmin; !conditionMatched && j >= from; j--) { + conditionMatched = cond.match(matcher, j, seq); + } + // Reinstate region boundaries + matcher.from = savedFrom; + matcher.lookbehindTo = savedLBT; + return !conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * Zero width negative lookbehind, including supplementary + * characters or unpaired surrogates. + */ + static final class NotBehindS extends NotBehind { + NotBehindS(Node cond, int rmax, int rmin) { + super(cond, rmax, rmin); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int rmaxChars = countChars(seq, i, -rmax); + int rminChars = countChars(seq, i, -rmin); + int savedFrom = matcher.from; + int savedLBT = matcher.lookbehindTo; + boolean conditionMatched = false; + int startIndex = (!matcher.transparentBounds) ? + matcher.from : 0; + int from = Math.max(i - rmaxChars, startIndex); + matcher.lookbehindTo = i; + // Relax transparent region boundaries for lookbehind + if (matcher.transparentBounds) + matcher.from = 0; + for (int j = i - rminChars; + !conditionMatched && j >= from; + j -= j>from ? countChars(seq, j, -1) : 1) { + conditionMatched = cond.match(matcher, j, seq); + } + //Reinstate region boundaries + matcher.from = savedFrom; + matcher.lookbehindTo = savedLBT; + return !conditionMatched && next.match(matcher, i, seq); + } + } + + /** + * Returns the set union of two CharProperty nodes. + */ + private static CharProperty union(final CharProperty lhs, + final CharProperty rhs) { + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return lhs.isSatisfiedBy(ch) || rhs.isSatisfiedBy(ch);}}; + } + + /** + * Returns the set intersection of two CharProperty nodes. + */ + private static CharProperty intersection(final CharProperty lhs, + final CharProperty rhs) { + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return lhs.isSatisfiedBy(ch) && rhs.isSatisfiedBy(ch);}}; + } + + /** + * Returns the set difference of two CharProperty nodes. + */ + private static CharProperty setDifference(final CharProperty lhs, + final CharProperty rhs) { + return new CharProperty() { + boolean isSatisfiedBy(int ch) { + return ! rhs.isSatisfiedBy(ch) && lhs.isSatisfiedBy(ch);}}; + } + + /** + * Handles word boundaries. Includes a field to allow this one class to + * deal with the different types of word boundaries we can match. The word + * characters include underscores, letters, and digits. Non spacing marks + * can are also part of a word if they have a base character, otherwise + * they are ignored for purposes of finding word boundaries. + */ + static final class Bound extends Node { + static int LEFT = 0x1; + static int RIGHT= 0x2; + static int BOTH = 0x3; + static int NONE = 0x4; + int type; + boolean useUWORD; + Bound(int n, boolean useUWORD) { + type = n; + this.useUWORD = useUWORD; + } + + boolean isWord(int ch) { + return useUWORD ? UnicodeProp.WORD.is(ch) + : (ch == '_' || Character.isLetterOrDigit(ch)); + } + + int check(Matcher matcher, int i, CharSequence seq) { + int ch; + boolean left = false; + int startIndex = matcher.from; + int endIndex = matcher.to; + if (matcher.transparentBounds) { + startIndex = 0; + endIndex = matcher.getTextLength(); + } + if (i > startIndex) { + ch = Character.codePointBefore(seq, i); + left = (isWord(ch) || + ((Character.getType(ch) == Character.NON_SPACING_MARK) + && hasBaseCharacter(matcher, i-1, seq))); + } + boolean right = false; + if (i < endIndex) { + ch = Character.codePointAt(seq, i); + right = (isWord(ch) || + ((Character.getType(ch) == Character.NON_SPACING_MARK) + && hasBaseCharacter(matcher, i, seq))); + } else { + // Tried to access char past the end + matcher.hitEnd = true; + // The addition of another char could wreck a boundary + matcher.requireEnd = true; + } + return ((left ^ right) ? (right ? LEFT : RIGHT) : NONE); + } + boolean match(Matcher matcher, int i, CharSequence seq) { + return (check(matcher, i, seq) & type) > 0 + && next.match(matcher, i, seq); + } + } + + /** + * Non spacing marks only count as word characters in bounds calculations + * if they have a base character. + */ + private static boolean hasBaseCharacter(Matcher matcher, int i, + CharSequence seq) + { + int start = (!matcher.transparentBounds) ? + matcher.from : 0; + for (int x=i; x >= start; x--) { + int ch = Character.codePointAt(seq, x); + if (Character.isLetterOrDigit(ch)) + return true; + if (Character.getType(ch) == Character.NON_SPACING_MARK) + continue; + return false; + } + return false; + } + + /** + * Attempts to match a slice in the input using the Boyer-Moore string + * matching algorithm. The algorithm is based on the idea that the + * pattern can be shifted farther ahead in the search text if it is + * matched right to left. + *

+ * The pattern is compared to the input one character at a time, from + * the rightmost character in the pattern to the left. If the characters + * all match the pattern has been found. If a character does not match, + * the pattern is shifted right a distance that is the maximum of two + * functions, the bad character shift and the good suffix shift. This + * shift moves the attempted match position through the input more + * quickly than a naive one position at a time check. + *

+ * The bad character shift is based on the character from the text that + * did not match. If the character does not appear in the pattern, the + * pattern can be shifted completely beyond the bad character. If the + * character does occur in the pattern, the pattern can be shifted to + * line the pattern up with the next occurrence of that character. + *

+ * The good suffix shift is based on the idea that some subset on the right + * side of the pattern has matched. When a bad character is found, the + * pattern can be shifted right by the pattern length if the subset does + * not occur again in pattern, or by the amount of distance to the + * next occurrence of the subset in the pattern. + * + * Boyer-Moore search methods adapted from code by Amy Yu. + */ + static class BnM extends Node { + int[] buffer; + int[] lastOcc; + int[] optoSft; + + /** + * Pre calculates arrays needed to generate the bad character + * shift and the good suffix shift. Only the last seven bits + * are used to see if chars match; This keeps the tables small + * and covers the heavily used ASCII range, but occasionally + * results in an aliased match for the bad character shift. + */ + static Node optimize(Node node) { + if (!(node instanceof Slice)) { + return node; + } + + int[] src = ((Slice) node).buffer; + int patternLength = src.length; + // The BM algorithm requires a bit of overhead; + // If the pattern is short don't use it, since + // a shift larger than the pattern length cannot + // be used anyway. + if (patternLength < 4) { + return node; + } + int i, j, k; + int[] lastOcc = new int[128]; + int[] optoSft = new int[patternLength]; + // Precalculate part of the bad character shift + // It is a table for where in the pattern each + // lower 7-bit value occurs + for (i = 0; i < patternLength; i++) { + lastOcc[src[i]&0x7F] = i + 1; + } + // Precalculate the good suffix shift + // i is the shift amount being considered +NEXT: for (i = patternLength; i > 0; i--) { + // j is the beginning index of suffix being considered + for (j = patternLength - 1; j >= i; j--) { + // Testing for good suffix + if (src[j] == src[j-i]) { + // src[j..len] is a good suffix + optoSft[j-1] = i; + } else { + // No match. The array has already been + // filled up with correct values before. + continue NEXT; + } + } + // This fills up the remaining of optoSft + // any suffix can not have larger shift amount + // then its sub-suffix. Why??? + while (j > 0) { + optoSft[--j] = i; + } + } + // Set the guard value because of unicode compression + optoSft[patternLength-1] = 1; + if (node instanceof SliceS) + return new BnMS(src, lastOcc, optoSft, node.next); + return new BnM(src, lastOcc, optoSft, node.next); + } + BnM(int[] src, int[] lastOcc, int[] optoSft, Node next) { + this.buffer = src; + this.lastOcc = lastOcc; + this.optoSft = optoSft; + this.next = next; + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] src = buffer; + int patternLength = src.length; + int last = matcher.to - patternLength; + + // Loop over all possible match positions in text +NEXT: while (i <= last) { + // Loop over pattern from right to left + for (int j = patternLength - 1; j >= 0; j--) { + int ch = seq.charAt(i+j); + if (ch != src[j]) { + // Shift search to the right by the maximum of the + // bad character shift and the good suffix shift + i += Math.max(j + 1 - lastOcc[ch&0x7F], optoSft[j]); + continue NEXT; + } + } + // Entire pattern matched starting at i + matcher.first = i; + boolean ret = next.match(matcher, i + patternLength, seq); + if (ret) { + matcher.first = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + i++; + } + // BnM is only used as the leading node in the unanchored case, + // and it replaced its Start() which always searches to the end + // if it doesn't find what it's looking for, so hitEnd is true. + matcher.hitEnd = true; + return false; + } + boolean study(TreeInfo info) { + info.minLength += buffer.length; + info.maxValid = false; + return next.study(info); + } + } + + /** + * Supplementary support version of BnM(). Unpaired surrogates are + * also handled by this class. + */ + static final class BnMS extends BnM { + int lengthInChars; + + BnMS(int[] src, int[] lastOcc, int[] optoSft, Node next) { + super(src, lastOcc, optoSft, next); + for (int x = 0; x < buffer.length; x++) { + lengthInChars += Character.charCount(buffer[x]); + } + } + boolean match(Matcher matcher, int i, CharSequence seq) { + int[] src = buffer; + int patternLength = src.length; + int last = matcher.to - lengthInChars; + + // Loop over all possible match positions in text +NEXT: while (i <= last) { + // Loop over pattern from right to left + int ch; + for (int j = countChars(seq, i, patternLength), x = patternLength - 1; + j > 0; j -= Character.charCount(ch), x--) { + ch = Character.codePointBefore(seq, i+j); + if (ch != src[x]) { + // Shift search to the right by the maximum of the + // bad character shift and the good suffix shift + int n = Math.max(x + 1 - lastOcc[ch&0x7F], optoSft[x]); + i += countChars(seq, i, n); + continue NEXT; + } + } + // Entire pattern matched starting at i + matcher.first = i; + boolean ret = next.match(matcher, i + lengthInChars, seq); + if (ret) { + matcher.first = i; + matcher.groups[0] = matcher.first; + matcher.groups[1] = matcher.last; + return true; + } + i += countChars(seq, i, 1); + } + matcher.hitEnd = true; + return false; + } + } + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + + /** + * This must be the very first initializer. + */ + static Node accept = new Node(); + + static Node lastAccept = new LastNode(); + + private static class CharPropertyNames { + + static CharProperty charPropertyFor(String name) { + CharPropertyFactory m = map.get(name); + return m == null ? null : m.make(); + } + + private static abstract class CharPropertyFactory { + abstract CharProperty make(); + } + + private static void defCategory(String name, + final int typeMask) { + map.put(name, new CharPropertyFactory() { + CharProperty make() { return new Category(typeMask);}}); + } + + private static void defRange(String name, + final int lower, final int upper) { + map.put(name, new CharPropertyFactory() { + CharProperty make() { return rangeFor(lower, upper);}}); + } + + private static void defCtype(String name, + final int ctype) { + map.put(name, new CharPropertyFactory() { + CharProperty make() { return new Ctype(ctype);}}); + } + + private static abstract class CloneableProperty + extends CharProperty implements Cloneable + { + public CloneableProperty clone() { + try { + return (CloneableProperty) super.clone(); + } catch (CloneNotSupportedException e) { + throw new AssertionError(e); + } + } + } + + private static void defClone(String name, + final CloneableProperty p) { + map.put(name, new CharPropertyFactory() { + CharProperty make() { return p.clone();}}); + } + + private static final HashMap map + = new HashMap<>(); + + static { + // Unicode character property aliases, defined in + // http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt + defCategory("Cn", 1<-1 if the index is not known + */ + public PatternSyntaxException(String desc, String regex, int index) { + this.desc = desc; + this.pattern = regex; + this.index = index; + } + + /** + * Retrieves the error index. + * + * @return The approximate index in the pattern of the error, + * or -1 if the index is not known + */ + public int getIndex() { + return index; + } + + /** + * Retrieves the description of the error. + * + * @return The description of the error + */ + public String getDescription() { + return desc; + } + + /** + * Retrieves the erroneous regular-expression pattern. + * + * @return The erroneous pattern + */ + public String getPattern() { + return pattern; + } + + private static final String nl = "\n"; + + /** + * Returns a multi-line string containing the description of the syntax + * error and its index, the erroneous regular-expression pattern, and a + * visual indication of the error index within the pattern. + * + * @return The full detail message + */ + public String getMessage() { + StringBuffer sb = new StringBuffer(); + sb.append(desc); + if (index >= 0) { + sb.append(" near index "); + sb.append(index); + } + sb.append(nl); + sb.append(pattern); + if (index >= 0) { + sb.append(nl); + for (int i = 0; i < index; i++) sb.append(' '); + sb.append('^'); + } + return sb.toString(); + } + +} diff --git a/app/src/main/java/java/util/regex/UnicodeProp.java b/app/src/main/java/java/util/regex/UnicodeProp.java new file mode 100644 index 000000000..feac17f49 --- /dev/null +++ b/app/src/main/java/java/util/regex/UnicodeProp.java @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package java.util.regex; + +import java.util.HashMap; +import java.util.Locale; + +enum UnicodeProp { + + ALPHABETIC { + public boolean is(int ch) { + return Character.isAlphabetic(ch); + } + }, + + LETTER { + public boolean is(int ch) { + return Character.isLetter(ch); + } + }, + + IDEOGRAPHIC { + public boolean is(int ch) { + return Character.isIdeographic(ch); + } + }, + + LOWERCASE { + public boolean is(int ch) { + return Character.isLowerCase(ch); + } + }, + + UPPERCASE { + public boolean is(int ch) { + return Character.isUpperCase(ch); + } + }, + + TITLECASE { + public boolean is(int ch) { + return Character.isTitleCase(ch); + } + }, + + WHITE_SPACE { + // \p{Whitespace} + public boolean is(int ch) { + return ((((1 << Character.SPACE_SEPARATOR) | + (1 << Character.LINE_SEPARATOR) | + (1 << Character.PARAGRAPH_SEPARATOR)) >> Character.getType(ch)) & 1) + != 0 || (ch >= 0x9 && ch <= 0xd) || (ch == 0x85); + } + }, + + CONTROL { + // \p{gc=Control} + public boolean is(int ch) { + return Character.getType(ch) == Character.CONTROL; + } + }, + + PUNCTUATION { + // \p{gc=Punctuation} + public boolean is(int ch) { + return ((((1 << Character.CONNECTOR_PUNCTUATION) | + (1 << Character.DASH_PUNCTUATION) | + (1 << Character.START_PUNCTUATION) | + (1 << Character.END_PUNCTUATION) | + (1 << Character.OTHER_PUNCTUATION) | + (1 << Character.INITIAL_QUOTE_PUNCTUATION) | + (1 << Character.FINAL_QUOTE_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0; + } + }, + + HEX_DIGIT { + // \p{gc=Decimal_Number} + // \p{Hex_Digit} -> PropList.txt: Hex_Digit + public boolean is(int ch) { + return DIGIT.is(ch) || + (ch >= 0x0030 && ch <= 0x0039) || + (ch >= 0x0041 && ch <= 0x0046) || + (ch >= 0x0061 && ch <= 0x0066) || + (ch >= 0xFF10 && ch <= 0xFF19) || + (ch >= 0xFF21 && ch <= 0xFF26) || + (ch >= 0xFF41 && ch <= 0xFF46); + } + }, + + ASSIGNED { + public boolean is(int ch) { + return Character.getType(ch) != Character.UNASSIGNED; + } + }, + + NONCHARACTER_CODE_POINT { + // PropList.txt:Noncharacter_Code_Point + public boolean is(int ch) { + return (ch & 0xfffe) == 0xfffe || (ch >= 0xfdd0 && ch <= 0xfdef); + } + }, + + DIGIT { + // \p{gc=Decimal_Number} + public boolean is(int ch) { + return Character.isDigit(ch); + } + }, + + ALNUM { + // \p{alpha} + // \p{digit} + public boolean is(int ch) { + return ALPHABETIC.is(ch) || DIGIT.is(ch); + } + }, + + BLANK { + // \p{Whitespace} -- + // [\N{LF} \N{VT} \N{FF} \N{CR} \N{NEL} -> 0xa, 0xb, 0xc, 0xd, 0x85 + // \p{gc=Line_Separator} + // \p{gc=Paragraph_Separator}] + public boolean is(int ch) { + return Character.getType(ch) == Character.SPACE_SEPARATOR || + ch == 0x9; // \N{HT} + } + }, + + GRAPH { + // [^ + // \p{space} + // \p{gc=Control} + // \p{gc=Surrogate} + // \p{gc=Unassigned}] + public boolean is(int ch) { + return ((((1 << Character.SPACE_SEPARATOR) | + (1 << Character.LINE_SEPARATOR) | + (1 << Character.PARAGRAPH_SEPARATOR) | + (1 << Character.CONTROL) | + (1 << Character.SURROGATE) | + (1 << Character.UNASSIGNED)) >> Character.getType(ch)) & 1) + == 0; + } + }, + + PRINT { + // \p{graph} + // \p{blank} + // -- \p{cntrl} + public boolean is(int ch) { + return (GRAPH.is(ch) || BLANK.is(ch)) && !CONTROL.is(ch); + } + }, + + WORD { + // \p{alpha} + // \p{gc=Mark} + // \p{digit} + // \p{gc=Connector_Punctuation} + + public boolean is(int ch) { + return ALPHABETIC.is(ch) || + ((((1 << Character.NON_SPACING_MARK) | + (1 << Character.ENCLOSING_MARK) | + (1 << Character.COMBINING_SPACING_MARK) | + (1 << Character.DECIMAL_DIGIT_NUMBER) | + (1 << Character.CONNECTOR_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0; + } + }; + + private final static HashMap posix = new HashMap<>(); + private final static HashMap aliases = new HashMap<>(); + static { + posix.put("ALPHA", "ALPHABETIC"); + posix.put("LOWER", "LOWERCASE"); + posix.put("UPPER", "UPPERCASE"); + posix.put("SPACE", "WHITE_SPACE"); + posix.put("PUNCT", "PUNCTUATION"); + posix.put("XDIGIT","HEX_DIGIT"); + posix.put("ALNUM", "ALNUM"); + posix.put("CNTRL", "CONTROL"); + posix.put("DIGIT", "DIGIT"); + posix.put("BLANK", "BLANK"); + posix.put("GRAPH", "GRAPH"); + posix.put("PRINT", "PRINT"); + + aliases.put("WHITESPACE", "WHITE_SPACE"); + aliases.put("HEXDIGIT","HEX_DIGIT"); + aliases.put("NONCHARACTERCODEPOINT", "NONCHARACTER_CODE_POINT"); + } + + public static UnicodeProp forName(String propName) { + propName = propName.toUpperCase(Locale.ENGLISH); + String alias = aliases.get(propName); + if (alias != null) + propName = alias; + try { + return valueOf (propName); + } catch (IllegalArgumentException x) {} + return null; + } + + public static UnicodeProp forPOSIXName(String propName) { + propName = posix.get(propName.toUpperCase(Locale.ENGLISH)); + if (propName == null) + return null; + return valueOf (propName); + } + + public abstract boolean is(int ch); +} diff --git a/app/src/main/java/javax/accessibility/Accessible.java b/app/src/main/java/javax/accessibility/Accessible.java new file mode 100644 index 000000000..b10da15bd --- /dev/null +++ b/app/src/main/java/javax/accessibility/Accessible.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +package javax.accessibility; + +/** + * Interface Accessible is the main interface for the accessibility package. + * All components that support + * the accessibility package must implement this interface. + * It contains a single method, {@link #getAccessibleContext}, which + * returns an instance of the class {@link AccessibleContext}. + * + * @author Peter Korn + * @author Hans Muller + * @author Willie Walker + */ +public interface Accessible { + + /** + * Returns the AccessibleContext associated with this object. In most + * cases, the return value should not be null if the object implements + * interface Accessible. If a component developer creates a subclass + * of an object that implements Accessible, and that subclass + * is not Accessible, the developer should override the + * getAccessibleContext method to return null. + */ + public AccessibleContext getAccessibleContext(); +} diff --git a/app/src/main/java/javax/accessibility/AccessibleContext.java b/app/src/main/java/javax/accessibility/AccessibleContext.java new file mode 100644 index 000000000..4533081a8 --- /dev/null +++ b/app/src/main/java/javax/accessibility/AccessibleContext.java @@ -0,0 +1,5 @@ +package javax.accessibility; + +public abstract class AccessibleContext +{ +} diff --git a/app/src/main/java/javax/accessibility/AccessibleText.java b/app/src/main/java/javax/accessibility/AccessibleText.java new file mode 100644 index 000000000..db05e5726 --- /dev/null +++ b/app/src/main/java/javax/accessibility/AccessibleText.java @@ -0,0 +1,188 @@ +/* + * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.accessibility; + + +import java.util.*; +import java.awt.*; +//import javax.swing.text.*; + + +/** + *

The AccessibleText interface should be implemented by all + * classes that present textual information on the display. This interface + * provides the standard mechanism for an assistive technology to access + * that text via its content, attributes, and spatial location. + * Applications can determine if an object supports the AccessibleText + * interface by first obtaining its AccessibleContext (see {@link Accessible}) + * and then calling the {@link AccessibleContext#getAccessibleText} method of + * AccessibleContext. If the return value is not null, the object supports this + * interface. + * + * @see Accessible + * @see Accessible#getAccessibleContext + * @see AccessibleContext + * @see AccessibleContext#getAccessibleText + * + * @author Peter Korn + */ +public interface AccessibleText { + + /** + * Constant used to indicate that the part of the text that should be + * retrieved is a character. + * + * @see #getAtIndex + * @see #getAfterIndex + * @see #getBeforeIndex + */ + public static final int CHARACTER = 1; + + /** + * Constant used to indicate that the part of the text that should be + * retrieved is a word. + * + * @see #getAtIndex + * @see #getAfterIndex + * @see #getBeforeIndex + */ + public static final int WORD = 2; + + /** + * Constant used to indicate that the part of the text that should be + * retrieved is a sentence. + * + * A sentence is a string of words which expresses an assertion, + * a question, a command, a wish, an exclamation, or the performance + * of an action. In English locales, the string usually begins with + * a capital letter and concludes with appropriate end punctuation; + * such as a period, question or exclamation mark. Other locales may + * use different capitalization and/or punctuation. + * + * @see #getAtIndex + * @see #getAfterIndex + * @see #getBeforeIndex + */ + public static final int SENTENCE = 3; + + /** + * Given a point in local coordinates, return the zero-based index + * of the character under that Point. If the point is invalid, + * this method returns -1. + * + * @param p the Point in local coordinates + * @return the zero-based index of the character under Point p; if + * Point is invalid return -1. + */ + public int getIndexAtPoint(Point p); + + /** + * Determines the bounding box of the character at the given + * index into the string. The bounds are returned in local + * coordinates. If the index is invalid an empty rectangle is returned. + * + * @param i the index into the String + * @return the screen coordinates of the character's bounding box, + * if index is invalid return an empty rectangle. + */ + public Rectangle getCharacterBounds(int i); + + /** + * Returns the number of characters (valid indicies) + * + * @return the number of characters + */ + public int getCharCount(); + + /** + * Returns the zero-based offset of the caret. + * + * Note: That to the right of the caret will have the same index + * value as the offset (the caret is between two characters). + * @return the zero-based offset of the caret. + */ + public int getCaretPosition(); + + /** + * Returns the String at a given index. + * + * @param part the CHARACTER, WORD, or SENTENCE to retrieve + * @param index an index within the text + * @return the letter, word, or sentence + */ + public String getAtIndex(int part, int index); + + /** + * Returns the String after a given index. + * + * @param part the CHARACTER, WORD, or SENTENCE to retrieve + * @param index an index within the text + * @return the letter, word, or sentence + */ + public String getAfterIndex(int part, int index); + + /** + * Returns the String before a given index. + * + * @param part the CHARACTER, WORD, or SENTENCE to retrieve + * @param index an index within the text + * @return the letter, word, or sentence + */ + public String getBeforeIndex(int part, int index); + + /** + * Returns the AttributeSet for a given character at a given index + * + * @param i the zero-based index into the text + * @return the AttributeSet of the character + */ + //public AttributeSet getCharacterAttribute(int i); + + /** + * Returns the start offset within the selected text. + * If there is no selection, but there is + * a caret, the start and end offsets will be the same. + * + * @return the index into the text of the start of the selection + */ + public int getSelectionStart(); + + /** + * Returns the end offset within the selected text. + * If there is no selection, but there is + * a caret, the start and end offsets will be the same. + * + * @return the index into teh text of the end of the selection + */ + public int getSelectionEnd(); + + /** + * Returns the portion of the text that is selected. + * + * @return the String portion of the text that is selected + */ + public String getSelectedText(); +} diff --git a/app/src/main/java/javax/imageio/IIOException.java b/app/src/main/java/javax/imageio/IIOException.java new file mode 100644 index 000000000..c77716c43 --- /dev/null +++ b/app/src/main/java/javax/imageio/IIOException.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Rustem V. Rafikov + * @version $Revision: 1.3 $ + */ + +package javax.imageio; + +import java.io.IOException; + +/** + * The IIOException class indicates errors in reading/writing operations. + * + * @since Android 1.0 + */ +public class IIOException extends IOException { + + /** + * The Constant serialVersionUID. + */ + private static final long serialVersionUID = -3216210718638985251L; + + /** + * Instantiates a new IIOException. + * + * @param message + * the detailed message. + */ + public IIOException(String message) { + super(message); + } + + /** + * Instantiates a new IIOException. + * + * @param message + * the detailed message. + * @param cause + * the cause of this exception. + */ + public IIOException(String message, Throwable cause) { + super(message); + initCause(cause); + } +} diff --git a/app/src/main/java/javax/imageio/ImageIO.java b/app/src/main/java/javax/imageio/ImageIO.java new file mode 100644 index 000000000..118aed443 --- /dev/null +++ b/app/src/main/java/javax/imageio/ImageIO.java @@ -0,0 +1,68 @@ +package javax.imageio; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.awt.image.BufferedImage; +import java.awt.image.RenderedImage; +import java.io.*; +import java.awt.mod.*; +import net.kdt.pojavlaunch.*; + +public class ImageIO { + public static void setUseCache(boolean set) { + } + + public static BufferedImage read(InputStream is) throws IOException { + return makeBufferedImage(BitmapFactory.decodeStream(is)); + } + + public static BufferedImage read(File input) throws IOException { + return makeBufferedImage(BitmapFactory.decodeFile(input.getAbsolutePath())); + } + + public static BufferedImage read(URL input) throws IOException { + InputStream is = input.openStream(); + Bitmap bmp = BitmapFactory.decodeStream(is); + is.close(); + return makeBufferedImage(bmp); + } + + private static BufferedImage makeBufferedImage(Bitmap bmp) { + return new BufferedImage(bmp); + } + + public static boolean write(RenderedImage renderedImage, String str, File file) throws IOException { + // MOD: Modified to fix blank image result and compatible with Android. + System.out.println("ImageIO.write stub " + file); + + if (file == null) { + throw new IllegalArgumentException("output cannot be NULL"); + } + if (file.exists()) { + file.delete(); + } + if (renderedImage instanceof BufferedImage) { + try { + if (file.getParentFile() == null || !file.getParentFile().exists()) { + file = new File(System.getProperty("user.home", Tools.MAIN_PATH), file.getAbsolutePath()); + } + FileOutputStream fileOutputStream = new FileOutputStream(file); + Bitmap.CompressFormat format = null; + if (str.equalsIgnoreCase("jpg")) format = Bitmap.CompressFormat.JPEG; + if (str.equalsIgnoreCase("png")) format = Bitmap.CompressFormat.PNG; + // if (str.equalsIgnoreCase("gif")) format = Bitmap.CompressFormat.GIF; + boolean rt = ModdingKit.bufferToBitmap((BufferedImage) renderedImage).compress(format, 100, fileOutputStream); + fileOutputStream.close(); + return rt; + } catch (Exception e) { + e.printStackTrace(); + } + } + return false; + } +} + diff --git a/app/src/main/java/javax/swing/JComponent.java b/app/src/main/java/javax/swing/JComponent.java new file mode 100644 index 000000000..98c650e23 --- /dev/null +++ b/app/src/main/java/javax/swing/JComponent.java @@ -0,0 +1,13 @@ +package javax.swing; + +import java.awt.*; +import java.io.*; + +public abstract class JComponent extends Container implements Serializable +{ + private static final long serialVersionUID = -7908749299918704233L; + public JComponent() + { + super(); + } +} diff --git a/app/src/main/java/javax/swing/JOptionPane.java b/app/src/main/java/javax/swing/JOptionPane.java new file mode 100644 index 000000000..53fc429a0 --- /dev/null +++ b/app/src/main/java/javax/swing/JOptionPane.java @@ -0,0 +1,11 @@ +package javax.swing; + +import java.awt.Component; + +public class JOptionPane +{ + public static void showMessageDialog(Component parentComponent , Object title, String message, int messageType) + { + + } +} diff --git a/app/src/main/java/javax/swing/JPanel.java b/app/src/main/java/javax/swing/JPanel.java new file mode 100644 index 000000000..1c1221ce9 --- /dev/null +++ b/app/src/main/java/javax/swing/JPanel.java @@ -0,0 +1,18 @@ +package javax.swing; + +import java.awt.*; +import javax.accessibility.*; + +public class JPanel extends JComponent implements Accessible +{ + + @Override + public AccessibleContext getAccessibleContext() + { + // TODO: Implement this method + return new AccessibleContext(){}; + } + + public void setPreferredSize(Dimension d) { + } +} diff --git a/app/src/main/java/junit/extensions/ActiveTestSuite.java b/app/src/main/java/junit/extensions/ActiveTestSuite.java new file mode 100644 index 000000000..6fec37f60 --- /dev/null +++ b/app/src/main/java/junit/extensions/ActiveTestSuite.java @@ -0,0 +1,64 @@ +package junit.extensions; + +import junit.framework.*; + +/** + * A TestSuite for active Tests. It runs each + * test in a separate thread and waits until all + * threads have terminated. + * -- Aarhus Radisson Scandinavian Center 11th floor + */ +public class ActiveTestSuite extends TestSuite { + private volatile int fActiveTestDeathCount; + + public ActiveTestSuite() { + } + + public ActiveTestSuite(Class theClass) { + super(theClass); + } + + public ActiveTestSuite(String name) { + super (name); + } + + public ActiveTestSuite(Class theClass, String name) { + super(theClass, name); + } + + public void run(TestResult result) { + fActiveTestDeathCount= 0; + super.run(result); + waitUntilFinished(); + } + + public void runTest(final Test test, final TestResult result) { + Thread t= new Thread() { + public void run() { + try { + // inlined due to limitation in VA/Java + //ActiveTestSuite.super.runTest(test, result); + test.run(result); + } finally { + ActiveTestSuite.this.runFinished(test); + } + } + }; + t.start(); + } + + synchronized void waitUntilFinished() { + while (fActiveTestDeathCount < testCount()) { + try { + wait(); + } catch (InterruptedException e) { + return; // ignore + } + } + } + + synchronized public void runFinished(Test test) { + fActiveTestDeathCount++; + notifyAll(); + } +} diff --git a/app/src/main/java/junit/extensions/ExceptionTestCase.java b/app/src/main/java/junit/extensions/ExceptionTestCase.java new file mode 100644 index 000000000..2f05ae31e --- /dev/null +++ b/app/src/main/java/junit/extensions/ExceptionTestCase.java @@ -0,0 +1,46 @@ +package junit.extensions; + +import junit.framework.*; + +/** + * A TestCase that expects an Exception of class fExpected to be thrown. + * The other way to check that an expected exception is thrown is: + *

+ * try {
+ *   shouldThrow();
+ * }
+ * catch (SpecialException e) {
+ *   return;
+ * }
+ * fail("Expected SpecialException");
+ * 
+ * + * To use ExceptionTestCase, create a TestCase like: + *
+ * new ExceptionTestCase("testShouldThrow", SpecialException.class);
+ * 
+ */ +public class ExceptionTestCase extends TestCase { + Class fExpected; + + public ExceptionTestCase(String name, Class exception) { + super(name); + fExpected= exception; + } + /** + * Execute the test method expecting that an Exception of + * class fExpected or one of its subclasses will be thrown + */ + protected void runTest() throws Throwable { + try { + super.runTest(); + } + catch (Exception e) { + if (fExpected.isAssignableFrom(e.getClass())) + return; + else + throw e; + } + fail("Expected exception " + fExpected); + } +} diff --git a/app/src/main/java/junit/extensions/RepeatedTest.java b/app/src/main/java/junit/extensions/RepeatedTest.java new file mode 100644 index 000000000..a4c4cb092 --- /dev/null +++ b/app/src/main/java/junit/extensions/RepeatedTest.java @@ -0,0 +1,31 @@ +package junit.extensions; + +import junit.framework.*; + +/** + * A Decorator that runs a test repeatedly. + * + */ +public class RepeatedTest extends TestDecorator { + private int fTimesRepeat; + + public RepeatedTest(Test test, int repeat) { + super(test); + if (repeat < 0) + throw new IllegalArgumentException("Repetition count must be > 0"); + fTimesRepeat= repeat; + } + public int countTestCases() { + return super.countTestCases()*fTimesRepeat; + } + public void run(TestResult result) { + for (int i= 0; i < fTimesRepeat; i++) { + if (result.shouldStop()) + break; + super.run(result); + } + } + public String toString() { + return super.toString()+"(repeated)"; + } +} diff --git a/app/src/main/java/junit/extensions/TestDecorator.java b/app/src/main/java/junit/extensions/TestDecorator.java new file mode 100644 index 000000000..740168754 --- /dev/null +++ b/app/src/main/java/junit/extensions/TestDecorator.java @@ -0,0 +1,38 @@ +package junit.extensions; + +import junit.framework.*; + +/** + * A Decorator for Tests. Use TestDecorator as the base class + * for defining new test decorators. Test decorator subclasses + * can be introduced to add behaviour before or after a test + * is run. + * + */ +public class TestDecorator extends Assert implements Test { + protected Test fTest; + + public TestDecorator(Test test) { + fTest= test; + } + /** + * The basic run behaviour. + */ + public void basicRun(TestResult result) { + fTest.run(result); + } + public int countTestCases() { + return fTest.countTestCases(); + } + public void run(TestResult result) { + basicRun(result); + } + + public String toString() { + return fTest.toString(); + } + + public Test getTest() { + return fTest; + } +} diff --git a/app/src/main/java/junit/extensions/TestSetup.java b/app/src/main/java/junit/extensions/TestSetup.java new file mode 100644 index 000000000..2bac86e1a --- /dev/null +++ b/app/src/main/java/junit/extensions/TestSetup.java @@ -0,0 +1,37 @@ +package junit.extensions; + +import junit.framework.*; + +/** + * A Decorator to set up and tear down additional fixture state. + * Subclass TestSetup and insert it into your tests when you want + * to set up additional state once before the tests are run. + */ +public class TestSetup extends TestDecorator { + + public TestSetup(Test test) { + super(test); + } + public void run(final TestResult result) { + Protectable p= new Protectable() { + public void protect() throws Exception { + setUp(); + basicRun(result); + tearDown(); + } + }; + result.runProtected(this, p); + } + /** + * Sets up the fixture. Override to set up additional fixture + * state. + */ + protected void setUp() throws Exception { + } + /** + * Tears down the fixture. Override to tear down the additional + * fixture state. + */ + protected void tearDown() throws Exception { + } +} diff --git a/app/src/main/java/junit/framework/Assert.java b/app/src/main/java/junit/framework/Assert.java new file mode 100644 index 000000000..d9b4df145 --- /dev/null +++ b/app/src/main/java/junit/framework/Assert.java @@ -0,0 +1,291 @@ +package junit.framework; + +/** + * A set of assert methods. Messages are only displayed when an assert fails. + */ + +public class Assert { + /** + * Protect constructor since it is a static only class + */ + protected Assert() { + } + + /** + * Asserts that a condition is true. If it isn't it throws + * an AssertionFailedError with the given message. + */ + static public void assertTrue(String message, boolean condition) { + if (!condition) + fail(message); + } + /** + * Asserts that a condition is true. If it isn't it throws + * an AssertionFailedError. + */ + static public void assertTrue(boolean condition) { + assertTrue(null, condition); + } + /** + * Asserts that a condition is false. If it isn't it throws + * an AssertionFailedError with the given message. + */ + static public void assertFalse(String message, boolean condition) { + assertTrue(message, !condition); + } + /** + * Asserts that a condition is false. If it isn't it throws + * an AssertionFailedError. + */ + static public void assertFalse(boolean condition) { + assertFalse(null, condition); + } + /** + * Fails a test with the given message. + */ + static public void fail(String message) { + throw new AssertionFailedError(message); + } + /** + * Fails a test with no message. + */ + static public void fail() { + fail(null); + } + /** + * Asserts that two objects are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, Object expected, Object actual) { + if (expected == null && actual == null) + return; + if (expected != null && expected.equals(actual)) + return; + failNotEquals(message, expected, actual); + } + /** + * Asserts that two objects are equal. If they are not + * an AssertionFailedError is thrown. + */ + static public void assertEquals(Object expected, Object actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two Strings are equal. + */ + static public void assertEquals(String message, String expected, String actual) { + if (expected == null && actual == null) + return; + if (expected != null && expected.equals(actual)) + return; + throw new ComparisonFailure(message, expected, actual); + } + /** + * Asserts that two Strings are equal. + */ + static public void assertEquals(String expected, String actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two doubles are equal concerning a delta. If they are not + * an AssertionFailedError is thrown with the given message. If the expected + * value is infinity then the delta value is ignored. + */ + static public void assertEquals(String message, double expected, double actual, double delta) { + // handle infinity specially since subtracting to infinite values gives NaN and the + // the following test fails + if (Double.isInfinite(expected)) { + if (!(expected == actual)) + failNotEquals(message, new Double(expected), new Double(actual)); + } else if (!(Math.abs(expected-actual) <= delta)) // Because comparison with NaN always returns false + failNotEquals(message, new Double(expected), new Double(actual)); + } + /** + * Asserts that two doubles are equal concerning a delta. If the expected + * value is infinity then the delta value is ignored. + */ + static public void assertEquals(double expected, double actual, double delta) { + assertEquals(null, expected, actual, delta); + } + /** + * Asserts that two floats are equal concerning a delta. If they are not + * an AssertionFailedError is thrown with the given message. If the expected + * value is infinity then the delta value is ignored. + */ + static public void assertEquals(String message, float expected, float actual, float delta) { + // handle infinity specially since subtracting to infinite values gives NaN and the + // the following test fails + if (Float.isInfinite(expected)) { + if (!(expected == actual)) + failNotEquals(message, new Float(expected), new Float(actual)); + } else if (!(Math.abs(expected-actual) <= delta)) + failNotEquals(message, new Float(expected), new Float(actual)); + } + /** + * Asserts that two floats are equal concerning a delta. If the expected + * value is infinity then the delta value is ignored. + */ + static public void assertEquals(float expected, float actual, float delta) { + assertEquals(null, expected, actual, delta); + } + /** + * Asserts that two longs are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, long expected, long actual) { + assertEquals(message, new Long(expected), new Long(actual)); + } + /** + * Asserts that two longs are equal. + */ + static public void assertEquals(long expected, long actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two booleans are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, boolean expected, boolean actual) { + assertEquals(message, new Boolean(expected), new Boolean(actual)); + } + /** + * Asserts that two booleans are equal. + */ + static public void assertEquals(boolean expected, boolean actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two bytes are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, byte expected, byte actual) { + assertEquals(message, new Byte(expected), new Byte(actual)); + } + /** + * Asserts that two bytes are equal. + */ + static public void assertEquals(byte expected, byte actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two chars are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, char expected, char actual) { + assertEquals(message, new Character(expected), new Character(actual)); + } + /** + * Asserts that two chars are equal. + */ + static public void assertEquals(char expected, char actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two shorts are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, short expected, short actual) { + assertEquals(message, new Short(expected), new Short(actual)); + } + /** + * Asserts that two shorts are equal. + */ + static public void assertEquals(short expected, short actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that two ints are equal. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertEquals(String message, int expected, int actual) { + assertEquals(message, new Integer(expected), new Integer(actual)); + } + /** + * Asserts that two ints are equal. + */ + static public void assertEquals(int expected, int actual) { + assertEquals(null, expected, actual); + } + /** + * Asserts that an object isn't null. + */ + static public void assertNotNull(Object object) { + assertNotNull(null, object); + } + /** + * Asserts that an object isn't null. If it is + * an AssertionFailedError is thrown with the given message. + */ + static public void assertNotNull(String message, Object object) { + assertTrue(message, object != null); + } + /** + * Asserts that an object is null. + */ + static public void assertNull(Object object) { + assertNull(null, object); + } + /** + * Asserts that an object is null. If it is not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertNull(String message, Object object) { + assertTrue(message, object == null); + } + /** + * Asserts that two objects refer to the same object. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertSame(String message, Object expected, Object actual) { + if (expected == actual) + return; + failNotSame(message, expected, actual); + } + /** + * Asserts that two objects refer to the same object. If they are not + * the same an AssertionFailedError is thrown. + */ + static public void assertSame(Object expected, Object actual) { + assertSame(null, expected, actual); + } + /** + * Asserts that two objects refer to the same object. If they are not + * an AssertionFailedError is thrown with the given message. + */ + static public void assertNotSame(String message, Object expected, Object actual) { + if (expected == actual) + failSame(message); + } + /** + * Asserts that two objects refer to the same object. If they are not + * the same an AssertionFailedError is thrown. + */ + static public void assertNotSame(Object expected, Object actual) { + assertNotSame(null, expected, actual); + } + + static private void failSame(String message) { + String formatted= ""; + if (message != null) + formatted= message+" "; + fail(formatted+"expected not same"); + } + + static private void failNotSame(String message, Object expected, Object actual) { + String formatted= ""; + if (message != null) + formatted= message+" "; + fail(formatted+"expected same:<"+expected+"> was not:<"+actual+">"); + } + + static private void failNotEquals(String message, Object expected, Object actual) { + fail(format(message, expected, actual)); + } + + static String format(String message, Object expected, Object actual) { + String formatted= ""; + if (message != null) + formatted= message+" "; + return formatted+"expected:<"+expected+"> but was:<"+actual+">"; + } +} diff --git a/app/src/main/java/junit/framework/AssertionFailedError.java b/app/src/main/java/junit/framework/AssertionFailedError.java new file mode 100644 index 000000000..a2798e2fc --- /dev/null +++ b/app/src/main/java/junit/framework/AssertionFailedError.java @@ -0,0 +1,13 @@ +package junit.framework; + +/** + * Thrown when an assertion failed. + */ +public class AssertionFailedError extends Error { + + public AssertionFailedError () { + } + public AssertionFailedError (String message) { + super (message); + } +} diff --git a/app/src/main/java/junit/framework/ComparisonFailure.java b/app/src/main/java/junit/framework/ComparisonFailure.java new file mode 100644 index 000000000..e7b8d37c0 --- /dev/null +++ b/app/src/main/java/junit/framework/ComparisonFailure.java @@ -0,0 +1,68 @@ +package junit.framework; + +/** + * Thrown when an assert equals for Strings failed. + * + * Inspired by a patch from Alex Chaffee mailto:alex@purpletech.com + */ +public class ComparisonFailure extends AssertionFailedError { + private String fExpected; + private String fActual; + + /** + * Constructs a comparison failure. + * @param message the identifying message or null + * @param expected the expected string value + * @param actual the actual string value + */ + public ComparisonFailure (String message, String expected, String actual) { + super (message); + fExpected= expected; + fActual= actual; + } + + /** + * Returns "..." in place of common prefix and "..." in + * place of common suffix between expected and actual. + * + * @see java.lang.Throwable#getMessage() + */ + public String getMessage() { + if (fExpected == null || fActual == null) + return Assert.format(super.getMessage(), fExpected, fActual); + + int end= Math.min(fExpected.length(), fActual.length()); + + int i= 0; + for(; i < end; i++) { + if (fExpected.charAt(i) != fActual.charAt(i)) + break; + } + int j= fExpected.length()-1; + int k= fActual.length()-1; + for (; k >= i && j >= i; k--,j--) { + if (fExpected.charAt(j) != fActual.charAt(k)) + break; + } + String actual, expected; + + // equal strings + if (j < i && k < i) { + expected= fExpected; + actual= fActual; + } else { + expected= fExpected.substring(i, j+1); + actual= fActual.substring(i, k+1); + if (i <= end && i > 0) { + expected= "..."+expected; + actual= "..."+actual; + } + + if (j < fExpected.length()-1) + expected= expected+"..."; + if (k < fActual.length()-1) + actual= actual+"..."; + } + return Assert.format(super.getMessage(), expected, actual); + } +} diff --git a/app/src/main/java/junit/framework/Protectable.java b/app/src/main/java/junit/framework/Protectable.java new file mode 100644 index 000000000..d3b7aea4f --- /dev/null +++ b/app/src/main/java/junit/framework/Protectable.java @@ -0,0 +1,14 @@ +package junit.framework; + +/** + * A Protectable can be run and can throw a Throwable. + * + * @see TestResult + */ +public interface Protectable { + + /** + * Run the the following method protected. + */ + public abstract void protect() throws Throwable; +} diff --git a/app/src/main/java/junit/framework/Test.java b/app/src/main/java/junit/framework/Test.java new file mode 100644 index 000000000..1cddaff91 --- /dev/null +++ b/app/src/main/java/junit/framework/Test.java @@ -0,0 +1,17 @@ +package junit.framework; + +/** + * A Test can be run and collect its results. + * + * @see TestResult + */ +public interface Test { + /** + * Counts the number of test cases that will be run by this test. + */ + public abstract int countTestCases(); + /** + * Runs a test and collects its result in a TestResult instance. + */ + public abstract void run(TestResult result); +} diff --git a/app/src/main/java/junit/framework/TestCase.java b/app/src/main/java/junit/framework/TestCase.java new file mode 100644 index 000000000..0a16c94e9 --- /dev/null +++ b/app/src/main/java/junit/framework/TestCase.java @@ -0,0 +1,197 @@ +package junit.framework; + +import java.lang.reflect.*; + +/** + * A test case defines the fixture to run multiple tests. To define a test case
+ * 1) implement a subclass of TestCase
+ * 2) define instance variables that store the state of the fixture
+ * 3) initialize the fixture state by overriding setUp
+ * 4) clean-up after a test by overriding tearDown.
+ * Each test runs in its own fixture so there + * can be no side effects among test runs. + * Here is an example: + *
+ * public class MathTest extends TestCase {
+ *     protected double fValue1;
+ *     protected double fValue2;
+ *
+ *    protected void setUp() {
+ *         fValue1= 2.0;
+ *         fValue2= 3.0;
+ *     }
+ * }
+ * 
+ * + * For each test implement a method which interacts + * with the fixture. Verify the expected results with assertions specified + * by calling assertTrue with a boolean. + *
+ *    public void testAdd() {
+ *        double result= fValue1 + fValue2;
+ *        assertTrue(result == 5.0);
+ *    }
+ * 
+ * Once the methods are defined you can run them. The framework supports + * both a static type safe and more dynamic way to run a test. + * In the static way you override the runTest method and define the method to + * be invoked. A convenient way to do so is with an anonymous inner class. + *
+ * TestCase test= new MathTest("add") {
+ *        public void runTest() {
+ *            testAdd();
+ *        }
+ * };
+ * test.run();
+ * 
+ * The dynamic way uses reflection to implement runTest. It dynamically finds + * and invokes a method. + * In this case the name of the test case has to correspond to the test method + * to be run. + *
+ * TestCase= new MathTest("testAdd");
+ * test.run();
+ * 
+ * The tests to be run can be collected into a TestSuite. JUnit provides + * different test runners which can run a test suite and collect the results. + * A test runner either expects a static method suite as the entry + * point to get a test to run or it will extract the suite automatically. + *
+ * public static Test suite() {
+ *      suite.addTest(new MathTest("testAdd"));
+ *      suite.addTest(new MathTest("testDivideByZero"));
+ *      return suite;
+ *  }
+ * 
+ * @see TestResult + * @see TestSuite + */ + +public abstract class TestCase extends Assert implements Test { + /** + * the name of the test case + */ + private String fName; + + /** + * No-arg constructor to enable serialization. This method + * is not intended to be used by mere mortals without calling setName(). + */ + public TestCase() { + fName= null; + } + /** + * Constructs a test case with the given name. + */ + public TestCase(String name) { + fName= name; + } + /** + * Counts the number of test cases executed by run(TestResult result). + */ + public int countTestCases() { + return 1; + } + /** + * Creates a default TestResult object + * + * @see TestResult + */ + protected TestResult createResult() { + return new TestResult(); + } + /** + * A convenience method to run this test, collecting the results with a + * default TestResult object. + * + * @see TestResult + */ + public TestResult run() { + TestResult result= createResult(); + run(result); + return result; + } + /** + * Runs the test case and collects the results in TestResult. + */ + public void run(TestResult result) { + result.run(this); + } + /** + * Runs the bare test sequence. + * @exception Throwable if any exception is thrown + */ + public void runBare() throws Throwable { + setUp(); + try { + runTest(); + } + finally { + tearDown(); + } + } + /** + * Override to run the test and assert its state. + * @exception Throwable if any exception is thrown + */ + protected void runTest() throws Throwable { + assertNotNull(fName); + Method runMethod= null; + try { + // use getMethod to get all public inherited + // methods. getDeclaredMethods returns all + // methods of this class but excludes the + // inherited ones. + runMethod= getClass().getMethod(fName, (Class[]) null); + } catch (NoSuchMethodException e) { + fail("Method \""+fName+"\" not found"); + } + if (!Modifier.isPublic(runMethod.getModifiers())) { + fail("Method \""+fName+"\" should be public"); + } + + try { + runMethod.invoke(this, (Object[]) new Class[0]); + } + catch (InvocationTargetException e) { + e.fillInStackTrace(); + throw e.getTargetException(); + } + catch (IllegalAccessException e) { + e.fillInStackTrace(); + throw e; + } + } + /** + * Sets up the fixture, for example, open a network connection. + * This method is called before a test is executed. + */ + protected void setUp() throws Exception { + } + /** + * Tears down the fixture, for example, close a network connection. + * This method is called after a test is executed. + */ + protected void tearDown() throws Exception { + } + /** + * Returns a string representation of the test case + */ + public String toString() { + return getName() + "(" + getClass().getName() + ")"; + } + /** + * Gets the name of a TestCase + * @return returns a String + */ + public String getName() { + return fName; + } + /** + * Sets the name of a TestCase + * @param name The name to set + */ + public void setName(String name) { + fName= name; + } +} diff --git a/app/src/main/java/junit/framework/TestFailure.java b/app/src/main/java/junit/framework/TestFailure.java new file mode 100644 index 000000000..328b499d0 --- /dev/null +++ b/app/src/main/java/junit/framework/TestFailure.java @@ -0,0 +1,57 @@ +package junit.framework; + +import java.io.PrintWriter; +import java.io.StringWriter; + + +/** + * A TestFailure collects a failed test together with + * the caught exception. + * @see TestResult + */ +public class TestFailure extends Object { + protected Test fFailedTest; + protected Throwable fThrownException; + + + /** + * Constructs a TestFailure with the given test and exception. + */ + public TestFailure(Test failedTest, Throwable thrownException) { + fFailedTest= failedTest; + fThrownException= thrownException; + } + /** + * Gets the failed test. + */ + public Test failedTest() { + return fFailedTest; + } + /** + * Gets the thrown exception. + */ + public Throwable thrownException() { + return fThrownException; + } + /** + * Returns a short description of the failure. + */ + public String toString() { + StringBuffer buffer= new StringBuffer(); + buffer.append(fFailedTest+": "+fThrownException.getMessage()); + return buffer.toString(); + } + public String trace() { + StringWriter stringWriter= new StringWriter(); + PrintWriter writer= new PrintWriter(stringWriter); + thrownException().printStackTrace(writer); + StringBuffer buffer= stringWriter.getBuffer(); + return buffer.toString(); + } + public String exceptionMessage() { + return thrownException().getMessage(); + } + public boolean isFailure() { + return thrownException() instanceof AssertionFailedError; + } +} diff --git a/app/src/main/java/junit/framework/TestListener.java b/app/src/main/java/junit/framework/TestListener.java new file mode 100644 index 000000000..cbb3b8652 --- /dev/null +++ b/app/src/main/java/junit/framework/TestListener.java @@ -0,0 +1,23 @@ +package junit.framework; + +/** + * A Listener for test progress + */ +public interface TestListener { + /** + * An error occurred. + */ + public void addError(Test test, Throwable t); + /** + * A failure occurred. + */ + public void addFailure(Test test, AssertionFailedError t); + /** + * A test ended. + */ + public void endTest(Test test); + /** + * A test started. + */ + public void startTest(Test test); +} diff --git a/app/src/main/java/junit/framework/TestResult.java b/app/src/main/java/junit/framework/TestResult.java new file mode 100644 index 000000000..fbf25a90a --- /dev/null +++ b/app/src/main/java/junit/framework/TestResult.java @@ -0,0 +1,166 @@ +package junit.framework; + +import java.util.Vector; +import java.util.Enumeration; + +/** + * A TestResult collects the results of executing + * a test case. It is an instance of the Collecting Parameter pattern. + * The test framework distinguishes between failures and errors. + * A failure is anticipated and checked for with assertions. Errors are + * unanticipated problems like an ArrayIndexOutOfBoundsException. + * + * @see Test + */ +public class TestResult extends Object { + protected Vector fFailures; + protected Vector fErrors; + protected Vector fListeners; + protected int fRunTests; + private boolean fStop; + + public TestResult() { + fFailures= new Vector(); + fErrors= new Vector(); + fListeners= new Vector(); + fRunTests= 0; + fStop= false; + } + /** + * Adds an error to the list of errors. The passed in exception + * caused the error. + */ + public synchronized void addError(Test test, Throwable t) { + fErrors.addElement(new TestFailure(test, t)); + for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) { + ((TestListener)e.nextElement()).addError(test, t); + } + } + /** + * Adds a failure to the list of failures. The passed in exception + * caused the failure. + */ + public synchronized void addFailure(Test test, AssertionFailedError t) { + fFailures.addElement(new TestFailure(test, t)); + for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) { + ((TestListener)e.nextElement()).addFailure(test, t); + } + } + /** + * Registers a TestListener + */ + public synchronized void addListener(TestListener listener) { + fListeners.addElement(listener); + } + /** + * Unregisters a TestListener + */ + public synchronized void removeListener(TestListener listener) { + fListeners.removeElement(listener); + } + /** + * Returns a copy of the listeners. + */ + private synchronized Vector cloneListeners() { + return (Vector)fListeners.clone(); + } + /** + * Informs the result that a test was completed. + */ + public void endTest(Test test) { + for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) { + ((TestListener)e.nextElement()).endTest(test); + } + } + /** + * Gets the number of detected errors. + */ + public synchronized int errorCount() { + return fErrors.size(); + } + /** + * Returns an Enumeration for the errors + */ + public synchronized Enumeration errors() { + return fErrors.elements(); + } + /** + * Gets the number of detected failures. + */ + public synchronized int failureCount() { + return fFailures.size(); + } + /** + * Returns an Enumeration for the failures + */ + public synchronized Enumeration failures() { + return fFailures.elements(); + } + /** + * Runs a TestCase. + */ + protected void run(final TestCase test) { + startTest(test); + Protectable p= new Protectable() { + public void protect() throws Throwable { + test.runBare(); + } + }; + runProtected(test, p); + + endTest(test); + } + /** + * Gets the number of run tests. + */ + public synchronized int runCount() { + return fRunTests; + } + /** + * Runs a TestCase. + */ + public void runProtected(final Test test, Protectable p) { + try { + p.protect(); + } + catch (AssertionFailedError e) { + addFailure(test, e); + } + catch (ThreadDeath e) { // don't catch ThreadDeath by accident + throw e; + } + catch (Throwable e) { + addError(test, e); + } + } + /** + * Checks whether the test run should stop + */ + public synchronized boolean shouldStop() { + return fStop; + } + /** + * Informs the result that a test will be started. + */ + public void startTest(Test test) { + final int count= test.countTestCases(); + synchronized(this) { + fRunTests+= count; + } + for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) { + ((TestListener)e.nextElement()).startTest(test); + } + } + /** + * Marks that the test run should stop. + */ + public synchronized void stop() { + fStop= true; + } + /** + * Returns whether the entire test was successful or not. + */ + public synchronized boolean wasSuccessful() { + return failureCount() == 0 && errorCount() == 0; + } +} diff --git a/app/src/main/java/junit/framework/TestSuite.java b/app/src/main/java/junit/framework/TestSuite.java new file mode 100644 index 000000000..72bdaf3e9 --- /dev/null +++ b/app/src/main/java/junit/framework/TestSuite.java @@ -0,0 +1,265 @@ +package junit.framework; + +import java.util.Vector; +import java.util.Enumeration; +import java.io.PrintWriter;import java.io.StringWriter;import java.lang.reflect.*; +import java.lang.reflect.Constructor; + +/** + * A TestSuite is a Composite of Tests. + * It runs a collection of test cases. Here is an example using + * the dynamic test definition. + *
+ * TestSuite suite= new TestSuite();
+ * suite.addTest(new MathTest("testAdd"));
+ * suite.addTest(new MathTest("testDivideByZero"));
+ * 
+ * Alternatively, a TestSuite can extract the tests to be run automatically. + * To do so you pass the class of your TestCase class to the + * TestSuite constructor. + *
+ * TestSuite suite= new TestSuite(MathTest.class);
+ * 
+ * This constructor creates a suite with all the methods + * starting with "test" that take no arguments. + * + * @see Test + */ +public class TestSuite implements Test { + + private Vector fTests= new Vector(10); + private String fName; + + /** + * Constructs an empty TestSuite. + */ + public TestSuite() { + } + + /** + * Constructs a TestSuite from the given class with the given name. + * @see TestSuite#TestSuite(Class) + */ + public TestSuite(Class theClass, String name) { + this(theClass); + setName(name); + } + + /** + * Constructs a TestSuite from the given class. Adds all the methods + * starting with "test" as test cases to the suite. + * Parts of this method was written at 2337 meters in the Huffihutte, + * Kanton Uri + */ + public TestSuite(final Class theClass) { + fName= theClass.getName(); + try { + getTestConstructor(theClass); // Avoid generating multiple error messages + } catch (NoSuchMethodException e) { + addTest(warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()")); + return; + } + + if (!Modifier.isPublic(theClass.getModifiers())) { + addTest(warning("Class "+theClass.getName()+" is not public")); + return; + } + + Class superClass= theClass; + Vector names= new Vector(); + while (Test.class.isAssignableFrom(superClass)) { + Method[] methods= superClass.getDeclaredMethods(); + for (int i= 0; i < methods.length; i++) { + addTestMethod(methods[i], names, theClass); + } + superClass= superClass.getSuperclass(); + } + if (fTests.size() == 0) + addTest(warning("No tests found in "+theClass.getName())); + } + + /** + * Constructs an empty TestSuite. + */ + public TestSuite(String name) { + setName(name); + } + + /** + * Adds a test to the suite. + */ + public void addTest(Test test) { + fTests.addElement(test); + } + + /** + * Adds the tests from the given class to the suite + */ + public void addTestSuite(Class testClass) { + addTest(new TestSuite(testClass)); + } + + private void addTestMethod(Method m, Vector names, Class theClass) { + String name= m.getName(); + if (names.contains(name)) + return; + if (! isPublicTestMethod(m)) { + if (isTestMethod(m)) + addTest(warning("Test method isn't public: "+m.getName())); + return; + } + names.addElement(name); + addTest(createTest(theClass, name)); + } + + /** + * ...as the moon sets over the early morning Merlin, Oregon + * mountains, our intrepid adventurers type... + */ + static public Test createTest(Class theClass, String name) { + Constructor constructor; + try { + constructor= getTestConstructor(theClass); + } catch (NoSuchMethodException e) { + return warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()"); + } + Object test; + try { + if (constructor.getParameterTypes().length == 0) { + test= constructor.newInstance(new Object[0]); + if (test instanceof TestCase) + ((TestCase) test).setName(name); + } else { + test= constructor.newInstance(new Object[]{name}); + } + } catch (InstantiationException e) { + return(warning("Cannot instantiate test case: "+name+" ("+exceptionToString(e)+")")); + } catch (InvocationTargetException e) { + return(warning("Exception in constructor: "+name+" ("+exceptionToString(e.getTargetException())+")")); + } catch (IllegalAccessException e) { + return(warning("Cannot access test case: "+name+" ("+exceptionToString(e)+")")); + } + return (Test) test; + } + + /** + * Converts the stack trace into a string + */ + private static String exceptionToString(Throwable t) { + StringWriter stringWriter= new StringWriter(); + PrintWriter writer= new PrintWriter(stringWriter); + t.printStackTrace(writer); + return stringWriter.toString(); + + } + + /** + * Counts the number of test cases that will be run by this test. + */ + public int countTestCases() { + int count= 0; + for (Enumeration e= tests(); e.hasMoreElements(); ) { + Test test= (Test)e.nextElement(); + count= count + test.countTestCases(); + } + return count; + } + + /** + * Gets a constructor which takes a single String as + * its argument or a no arg constructor. + */ + public static Constructor getTestConstructor(Class theClass) throws NoSuchMethodException { + Class[] args= { String.class }; + try { + return theClass.getConstructor(args); + } catch (NoSuchMethodException e) { + // fall through + } + return theClass.getConstructor(new Class[0]); + } + + private boolean isPublicTestMethod(Method m) { + return isTestMethod(m) && Modifier.isPublic(m.getModifiers()); + } + + private boolean isTestMethod(Method m) { + String name= m.getName(); + Class[] parameters= m.getParameterTypes(); + Class returnType= m.getReturnType(); + return parameters.length == 0 && name.startsWith("test") && returnType.equals(Void.TYPE); + } + + /** + * Runs the tests and collects their result in a TestResult. + */ + public void run(TestResult result) { + for (Enumeration e= tests(); e.hasMoreElements(); ) { + if (result.shouldStop() ) + break; + Test test= (Test)e.nextElement(); + runTest(test, result); + } + } + + public void runTest(Test test, TestResult result) { + test.run(result); + } + + /** + * Returns the test at the given index + */ + public Test testAt(int index) { + return (Test)fTests.elementAt(index); + } + + /** + * Returns the number of tests in this suite + */ + public int testCount() { + return fTests.size(); + } + + /** + * Returns the tests as an enumeration + */ + public Enumeration tests() { + return fTests.elements(); + } + + /** + */ + public String toString() { + if (getName() != null) + return getName(); + return super.toString(); + } + + /** + * Sets the name of the suite. + * @param name The name to set + */ + public void setName(String name) { + fName= name; + } + + /** + * Returns the name of the suite. Not all + * test suites have a name and this method + * can return null. + */ + public String getName() { + return fName; + } + + /** + * Returns a test which will fail and log a warning message. + */ + private static Test warning(final String message) { + return new TestCase("warning") { + protected void runTest() { + fail(message); + } + }; + } +} diff --git a/app/src/main/java/junit/runner/BaseTestRunner.java b/app/src/main/java/junit/runner/BaseTestRunner.java new file mode 100644 index 000000000..1cdc32e06 --- /dev/null +++ b/app/src/main/java/junit/runner/BaseTestRunner.java @@ -0,0 +1,323 @@ +package junit.runner; + +import junit.framework.*; +import java.lang.reflect.*; +import java.text.NumberFormat; +import java.io.*; +import java.util.*; + +/** + * Base class for all test runners. + * This class was born live on stage in Sardinia during XP2000. + */ +public abstract class BaseTestRunner implements TestListener { + public static final String SUITE_METHODNAME= "suite"; + + private static Properties fPreferences; + static int fgMaxMessageLength= 500; + static boolean fgFilterStack= true; + boolean fLoading= true; + + /* + * Implementation of TestListener + */ + public synchronized void startTest(Test test) { + testStarted(test.toString()); + } + + protected static void setPreferences(Properties preferences) { + fPreferences= preferences; + } + + protected static Properties getPreferences() { + if (fPreferences == null) { + fPreferences= new Properties(); + fPreferences.put("loading", "true"); + fPreferences.put("filterstack", "true"); + readPreferences(); + } + return fPreferences; + } + + public static void savePreferences() throws IOException { + FileOutputStream fos= new FileOutputStream(getPreferencesFile()); + try { + getPreferences().store(fos, ""); + } finally { + fos.close(); + } + } + + public void setPreference(String key, String value) { + getPreferences().setProperty(key, value); + } + + public synchronized void endTest(Test test) { + testEnded(test.toString()); + } + + public synchronized void addError(final Test test, final Throwable t) { + testFailed(TestRunListener.STATUS_ERROR, test, t); + } + + public synchronized void addFailure(final Test test, final AssertionFailedError t) { + testFailed(TestRunListener.STATUS_FAILURE, test, t); + } + + // TestRunListener implementation + + public abstract void testStarted(String testName); + + public abstract void testEnded(String testName); + + public abstract void testFailed(int status, Test test, Throwable t); + + /** + * Returns the Test corresponding to the given suite. This is + * a template method, subclasses override runFailed(), clearStatus(). + */ + public Test getTest(String suiteClassName) { + if (suiteClassName.length() <= 0) { + clearStatus(); + return null; + } + Class testClass= null; + try { + testClass= loadSuiteClass(suiteClassName); + } catch (ClassNotFoundException e) { + String clazz= e.getMessage(); + if (clazz == null) + clazz= suiteClassName; + runFailed("Class not found \""+clazz+"\""); + return null; + } catch(Exception e) { + runFailed("Error: "+e.toString()); + return null; + } + Method suiteMethod= null; + try { + suiteMethod= testClass.getMethod(SUITE_METHODNAME, new Class[0]); + } catch(Exception e) { + // try to extract a test suite automatically + clearStatus(); + return new TestSuite(testClass); + } + if (! Modifier.isStatic(suiteMethod.getModifiers())) { + runFailed("Suite() method must be static"); + return null; + } + Test test= null; + try { + test= (Test)suiteMethod.invoke(null, (Object[]) new Class[0]); // static method + if (test == null) + return test; + } + catch (InvocationTargetException e) { + runFailed("Failed to invoke suite():" + e.getTargetException().toString()); + return null; + } + catch (IllegalAccessException e) { + runFailed("Failed to invoke suite():" + e.toString()); + return null; + } + + clearStatus(); + return test; + } + + /** + * Returns the formatted string of the elapsed time. + */ + public String elapsedTimeAsString(long runTime) { + return NumberFormat.getInstance().format((double)runTime/1000); + } + + /** + * Processes the command line arguments and + * returns the name of the suite class to run or null + */ + protected String processArguments(String[] args) { + String suiteName= null; + for (int i= 0; i < args.length; i++) { + if (args[i].equals("-noloading")) { + setLoading(false); + } else if (args[i].equals("-nofilterstack")) { + fgFilterStack= false; + } else if (args[i].equals("-c")) { + if (args.length > i+1) + suiteName= extractClassName(args[i+1]); + else + System.out.println("Missing Test class name"); + i++; + } else { + suiteName= args[i]; + } + } + return suiteName; + } + + /** + * Sets the loading behaviour of the test runner + */ + public void setLoading(boolean enable) { + fLoading= enable; + } + /** + * Extract the class name from a String in VA/Java style + */ + public String extractClassName(String className) { + if(className.startsWith("Default package for")) + return className.substring(className.lastIndexOf(".")+1); + return className; + } + + /** + * Truncates a String to the maximum length. + */ + public static String truncate(String s) { + if (fgMaxMessageLength != -1 && s.length() > fgMaxMessageLength) + s= s.substring(0, fgMaxMessageLength)+"..."; + return s; + } + + /** + * Override to define how to handle a failed loading of + * a test suite. + */ + protected abstract void runFailed(String message); + + /** + * Returns the loaded Class for a suite name. + */ + protected Class loadSuiteClass(String suiteClassName) throws ClassNotFoundException { + return getLoader().load(suiteClassName); + } + + /** + * Clears the status message. + */ + protected void clearStatus() { // Belongs in the GUI TestRunner class + } + + /** + * Returns the loader to be used. + */ + public TestSuiteLoader getLoader() { + if (useReloadingTestSuiteLoader()) + return new ReloadingTestSuiteLoader(); + return new StandardTestSuiteLoader(); + } + + protected boolean useReloadingTestSuiteLoader() { + return getPreference("loading").equals("true") && !inVAJava() && fLoading; + } + + private static File getPreferencesFile() { + String home= System.getProperty("user.home"); + return new File(home, "junit.properties"); + } + + private static void readPreferences() { + InputStream is= null; + try { + is= new FileInputStream(getPreferencesFile()); + setPreferences(new Properties(getPreferences())); + getPreferences().load(is); + } catch (IOException e) { + try { + if (is != null) + is.close(); + } catch (IOException e1) { + } + } + } + + public static String getPreference(String key) { + return getPreferences().getProperty(key); + } + + public static int getPreference(String key, int dflt) { + String value= getPreference(key); + int intValue= dflt; + if (value == null) + return intValue; + try { + intValue= Integer.parseInt(value); + } catch (NumberFormatException ne) { + } + return intValue; + } + + public static boolean inVAJava() { + try { + Class.forName("com.ibm.uvm.tools.DebugSupport"); + } + catch (Exception e) { + return false; + } + return true; + } + + /** + * Returns a filtered stack trace + */ + public static String getFilteredTrace(Throwable t) { + StringWriter stringWriter= new StringWriter(); + PrintWriter writer= new PrintWriter(stringWriter); + t.printStackTrace(writer); + StringBuffer buffer= stringWriter.getBuffer(); + String trace= buffer.toString(); + return BaseTestRunner.getFilteredTrace(trace); + } + + /** + * Filters stack frames from internal JUnit classes + */ + public static String getFilteredTrace(String stack) { + if (showStackRaw()) + return stack; + + StringWriter sw= new StringWriter(); + PrintWriter pw= new PrintWriter(sw); + StringReader sr= new StringReader(stack); + BufferedReader br= new BufferedReader(sr); + + String line; + try { + while ((line= br.readLine()) != null) { + if (!filterLine(line)) + pw.println(line); + } + } catch (Exception IOException) { + return stack; // return the stack unfiltered + } + return sw.toString(); + } + + protected static boolean showStackRaw() { + return !getPreference("filterstack").equals("true") || fgFilterStack == false; + } + + static boolean filterLine(String line) { + String[] patterns= new String[] { + "junit.framework.TestCase", + "junit.framework.TestResult", + "junit.framework.TestSuite", + "junit.framework.Assert.", // don't filter AssertionFailure + "junit.swingui.TestRunner", + "junit.awtui.TestRunner", + "junit.textui.TestRunner", + "java.lang.reflect.Method.invoke(" + }; + for (int i= 0; i < patterns.length; i++) { + if (line.indexOf(patterns[i]) > 0) + return true; + } + return false; + } + + static { + fgMaxMessageLength= getPreference("maxmessage", fgMaxMessageLength); + } + +} diff --git a/app/src/main/java/junit/runner/ClassPathTestCollector.java b/app/src/main/java/junit/runner/ClassPathTestCollector.java new file mode 100644 index 000000000..ec3e390df --- /dev/null +++ b/app/src/main/java/junit/runner/ClassPathTestCollector.java @@ -0,0 +1,80 @@ +package junit.runner; + +import java.util.*; +import java.io.*; + +/** + * An implementation of a TestCollector that consults the + * class path. It considers all classes on the class path + * excluding classes in JARs. It leaves it up to subclasses + * to decide whether a class is a runnable Test. + * + * @see TestCollector + */ +public abstract class ClassPathTestCollector implements TestCollector { + + static final int SUFFIX_LENGTH= ".class".length(); + + public ClassPathTestCollector() { + } + + public Enumeration collectTests() { + String classPath= System.getProperty("java.class.path"); + Hashtable result = collectFilesInPath(classPath); + return result.elements(); + } + + public Hashtable collectFilesInPath(String classPath) { + Hashtable result= collectFilesInRoots(splitClassPath(classPath)); + return result; + } + + Hashtable collectFilesInRoots(Vector roots) { + Hashtable result= new Hashtable(100); + Enumeration e= roots.elements(); + while (e.hasMoreElements()) + gatherFiles(new File((String)e.nextElement()), "", result); + return result; + } + + void gatherFiles(File classRoot, String classFileName, Hashtable result) { + File thisRoot= new File(classRoot, classFileName); + if (thisRoot.isFile()) { + if (isTestClass(classFileName)) { + String className= classNameFromFile(classFileName); + result.put(className, className); + } + return; + } + String[] contents= thisRoot.list(); + if (contents != null) { + for (int i= 0; i < contents.length; i++) + gatherFiles(classRoot, classFileName+File.separatorChar+contents[i], result); + } + } + + Vector splitClassPath(String classPath) { + Vector result= new Vector(); + String separator= System.getProperty("path.separator"); + StringTokenizer tokenizer= new StringTokenizer(classPath, separator); + while (tokenizer.hasMoreTokens()) + result.addElement(tokenizer.nextToken()); + return result; + } + + protected boolean isTestClass(String classFileName) { + return + classFileName.endsWith(".class") && + classFileName.indexOf('$') < 0 && + classFileName.indexOf("Test") > 0; + } + + protected String classNameFromFile(String classFileName) { + // convert /a/b.class to a.b + String s= classFileName.substring(0, classFileName.length()-SUFFIX_LENGTH); + String s2= s.replace(File.separatorChar, '.'); + if (s2.startsWith(".")) + return s2.substring(1); + return s2; + } +} diff --git a/app/src/main/java/junit/runner/FailureDetailView.java b/app/src/main/java/junit/runner/FailureDetailView.java new file mode 100644 index 000000000..8a56b39f7 --- /dev/null +++ b/app/src/main/java/junit/runner/FailureDetailView.java @@ -0,0 +1,23 @@ +package junit.runner; + +import java.awt.Component; + +import junit.framework.*; + +/** + * A view to show a details about a failure + */ +public interface FailureDetailView { + /** + * Returns the component used to present the TraceView + */ + public Component getComponent(); + /** + * Shows details of a TestFailure + */ + public void showFailure(TestFailure failure); + /** + * Clears the view + */ + public void clear(); +} diff --git a/app/src/main/java/junit/runner/LoadingTestCollector.java b/app/src/main/java/junit/runner/LoadingTestCollector.java new file mode 100644 index 000000000..e22a249a9 --- /dev/null +++ b/app/src/main/java/junit/runner/LoadingTestCollector.java @@ -0,0 +1,69 @@ +package junit.runner; + +import java.lang.reflect.*; +import junit.runner.*; +import junit.framework.*; + +/** + * An implementation of a TestCollector that loads + * all classes on the class path and tests whether + * it is assignable from Test or provides a static suite method. + * @see TestCollector + */ +public class LoadingTestCollector extends ClassPathTestCollector { + + TestCaseClassLoader fLoader; + + public LoadingTestCollector() { + fLoader= new TestCaseClassLoader(); + } + + protected boolean isTestClass(String classFileName) { + try { + if (classFileName.endsWith(".class")) { + Class testClass= classFromFile(classFileName); + return (testClass != null) && isTestClass(testClass); + } + } + catch (ClassNotFoundException expected) { + } + catch (NoClassDefFoundError notFatal) { + } + return false; + } + + Class classFromFile(String classFileName) throws ClassNotFoundException { + String className= classNameFromFile(classFileName); + if (!fLoader.isExcluded(className)) + return fLoader.loadClass(className, false); + return null; + } + + boolean isTestClass(Class testClass) { + if (hasSuiteMethod(testClass)) + return true; + if (Test.class.isAssignableFrom(testClass) && + Modifier.isPublic(testClass.getModifiers()) && + hasPublicConstructor(testClass)) + return true; + return false; + } + + boolean hasSuiteMethod(Class testClass) { + try { + testClass.getMethod(BaseTestRunner.SUITE_METHODNAME, new Class[0]); + } catch(Exception e) { + return false; + } + return true; + } + + boolean hasPublicConstructor(Class testClass) { + try { + TestSuite.getTestConstructor(testClass); + } catch(NoSuchMethodException e) { + return false; + } + return true; + } +} diff --git a/app/src/main/java/junit/runner/ReloadingTestSuiteLoader.java b/app/src/main/java/junit/runner/ReloadingTestSuiteLoader.java new file mode 100644 index 000000000..c8853158d --- /dev/null +++ b/app/src/main/java/junit/runner/ReloadingTestSuiteLoader.java @@ -0,0 +1,19 @@ +package junit.runner; + +/** + * A TestSuite loader that can reload classes. + */ +public class ReloadingTestSuiteLoader implements TestSuiteLoader { + + public Class load(String suiteClassName) throws ClassNotFoundException { + return createLoader().loadClass(suiteClassName, true); + } + + public Class reload(Class aClass) throws ClassNotFoundException { + return createLoader().loadClass(aClass.getName(), true); + } + + protected TestCaseClassLoader createLoader() { + return new TestCaseClassLoader(); + } +} diff --git a/app/src/main/java/junit/runner/SimpleTestCollector.java b/app/src/main/java/junit/runner/SimpleTestCollector.java new file mode 100644 index 000000000..3527bd9c4 --- /dev/null +++ b/app/src/main/java/junit/runner/SimpleTestCollector.java @@ -0,0 +1,20 @@ +package junit.runner; + +/** + * An implementation of a TestCollector that considers + * a class to be a test class when it contains the + * pattern "Test" in its name + * @see TestCollector + */ +public class SimpleTestCollector extends ClassPathTestCollector { + + public SimpleTestCollector() { + } + + protected boolean isTestClass(String classFileName) { + return + classFileName.endsWith(".class") && + classFileName.indexOf('$') < 0 && + classFileName.indexOf("Test") > 0; + } +} diff --git a/app/src/main/java/junit/runner/Sorter.java b/app/src/main/java/junit/runner/Sorter.java new file mode 100644 index 000000000..bb4cd4968 --- /dev/null +++ b/app/src/main/java/junit/runner/Sorter.java @@ -0,0 +1,38 @@ +package junit.runner; + +import java.util.*; + +import junit.runner.*; + +/** + * A custom quick sort with support to customize the swap behaviour. + * NOTICE: We can't use the the sorting support from the JDK 1.2 collection + * classes because of the JDK 1.1.7 compatibility. + */ +public class Sorter { + public static interface Swapper { + public void swap(Vector values, int left, int right); + } + + public static void sortStrings(Vector values , int left, int right, Swapper swapper) { + int oleft= left; + int oright= right; + String mid= (String)values.elementAt((left + right) / 2); + do { + while (((String)(values.elementAt(left))).compareTo(mid) < 0) + left++; + while (mid.compareTo((String)(values.elementAt(right))) < 0) + right--; + if (left <= right) { + swapper.swap(values, left, right); + left++; + right--; + } + } while (left <= right); + + if (oleft < right) + sortStrings(values, oleft, right, swapper); + if (left < oright) + sortStrings(values, left, oright, swapper); + } +} diff --git a/app/src/main/java/junit/runner/StandardTestSuiteLoader.java b/app/src/main/java/junit/runner/StandardTestSuiteLoader.java new file mode 100644 index 000000000..e560a91b6 --- /dev/null +++ b/app/src/main/java/junit/runner/StandardTestSuiteLoader.java @@ -0,0 +1,19 @@ +package junit.runner; + +/** + * The standard test suite loader. It can only load the same class once. + */ +public class StandardTestSuiteLoader implements TestSuiteLoader { + /** + * Uses the system class loader to load the test class + */ + public Class load(String suiteClassName) throws ClassNotFoundException { + return Class.forName(suiteClassName); + } + /** + * Uses the system class loader to load the test class + */ + public Class reload(Class aClass) throws ClassNotFoundException { + return aClass; + } +} diff --git a/app/src/main/java/junit/runner/TestCaseClassLoader.java b/app/src/main/java/junit/runner/TestCaseClassLoader.java new file mode 100644 index 000000000..339a2b697 --- /dev/null +++ b/app/src/main/java/junit/runner/TestCaseClassLoader.java @@ -0,0 +1,226 @@ +package junit.runner; + +import java.util.*; +import java.io.*; +import java.net.URL; +import java.util.zip.*; + +/** + * A custom class loader which enables the reloading + * of classes for each test run. The class loader + * can be configured with a list of package paths that + * should be excluded from loading. The loading + * of these packages is delegated to the system class + * loader. They will be shared across test runs. + *

+ * The list of excluded package paths is specified in + * a properties file "excluded.properties" that is located in + * the same place as the TestCaseClassLoader class. + *

+ * Known limitation: the TestCaseClassLoader cannot load classes + * from jar files. + */ + + +public class TestCaseClassLoader extends ClassLoader { + /** scanned class path */ + private Vector fPathItems; + /** default excluded paths */ + private String[] defaultExclusions= { + "junit.framework.", + "junit.extensions.", + "junit.runner." + }; + /** name of excluded properties file */ + static final String EXCLUDED_FILE= "excluded.properties"; + /** excluded paths */ + private Vector fExcluded; + + /** + * Constructs a TestCaseLoader. It scans the class path + * and the excluded package paths + */ + public TestCaseClassLoader() { + this(System.getProperty("java.class.path")); + } + + /** + * Constructs a TestCaseLoader. It scans the class path + * and the excluded package paths + */ + public TestCaseClassLoader(String classPath) { + scanPath(classPath); + readExcludedPackages(); + } + + private void scanPath(String classPath) { + String separator= System.getProperty("path.separator"); + fPathItems= new Vector(10); + StringTokenizer st= new StringTokenizer(classPath, separator); + while (st.hasMoreTokens()) { + fPathItems.addElement(st.nextToken()); + } + } + + public URL getResource(String name) { + return ClassLoader.getSystemResource(name); + } + + public InputStream getResourceAsStream(String name) { + return ClassLoader.getSystemResourceAsStream(name); + } + + public boolean isExcluded(String name) { + for (int i= 0; i < fExcluded.size(); i++) { + if (name.startsWith((String) fExcluded.elementAt(i))) { + return true; + } + } + return false; + } + + public synchronized Class loadClass(String name, boolean resolve) + throws ClassNotFoundException { + + Class c= findLoadedClass(name); + if (c != null) + return c; + // + // Delegate the loading of excluded classes to the + // standard class loader. + // + if (isExcluded(name)) { + try { + c= findSystemClass(name); + return c; + } catch (ClassNotFoundException e) { + // keep searching + } + } + if (c == null) { + byte[] data= lookupClassData(name); + if (data == null) + throw new ClassNotFoundException(); + c= defineClass(name, data, 0, data.length); + } + if (resolve) + resolveClass(c); + return c; + } + + private byte[] lookupClassData(String className) throws ClassNotFoundException { + byte[] data= null; + for (int i= 0; i < fPathItems.size(); i++) { + String path= (String) fPathItems.elementAt(i); + String fileName= className.replace('.', '/')+".class"; + if (isJar(path)) { + data= loadJarData(path, fileName); + } else { + data= loadFileData(path, fileName); + } + if (data != null) + return data; + } + throw new ClassNotFoundException(className); + } + + boolean isJar(String pathEntry) { + return pathEntry.endsWith(".jar") || + pathEntry.endsWith(".zip") || + pathEntry.endsWith(".apk"); + } + + private byte[] loadFileData(String path, String fileName) { + File file= new File(path, fileName); + if (file.exists()) { + return getClassData(file); + } + return null; + } + + private byte[] getClassData(File f) { + try { + FileInputStream stream= new FileInputStream(f); + ByteArrayOutputStream out= new ByteArrayOutputStream(1000); + byte[] b= new byte[1000]; + int n; + while ((n= stream.read(b)) != -1) + out.write(b, 0, n); + stream.close(); + out.close(); + return out.toByteArray(); + + } catch (IOException e) { + } + return null; + } + + private byte[] loadJarData(String path, String fileName) { + ZipFile zipFile= null; + InputStream stream= null; + File archive= new File(path); + if (!archive.exists()) + return null; + try { + zipFile= new ZipFile(archive); + } catch(IOException io) { + return null; + } + ZipEntry entry= zipFile.getEntry(fileName); + if (entry == null) + return null; + int size= (int) entry.getSize(); + try { + stream= zipFile.getInputStream(entry); + byte[] data= new byte[size]; + int pos= 0; + while (pos < size) { + int n= stream.read(data, pos, data.length - pos); + pos += n; + } + zipFile.close(); + return data; + } catch (IOException e) { + } finally { + try { + if (stream != null) + stream.close(); + } catch (IOException e) { + } + } + return null; + } + + private void readExcludedPackages() { + fExcluded= new Vector(10); + for (int i= 0; i < defaultExclusions.length; i++) + fExcluded.addElement(defaultExclusions[i]); + + InputStream is= getClass().getResourceAsStream(EXCLUDED_FILE); + if (is == null) + return; + Properties p= new Properties(); + try { + p.load(is); + } + catch (IOException e) { + return; + } finally { + try { + is.close(); + } catch (IOException e) { + } + } + for (Enumeration e= p.propertyNames(); e.hasMoreElements(); ) { + String key= (String)e.nextElement(); + if (key.startsWith("excluded.")) { + String path= p.getProperty(key); + path= path.trim(); + if (path.endsWith("*")) + path= path.substring(0, path.length()-1); + if (path.length() > 0) + fExcluded.addElement(path); + } + } + } +} diff --git a/app/src/main/java/junit/runner/TestCollector.java b/app/src/main/java/junit/runner/TestCollector.java new file mode 100644 index 000000000..bd4837a2f --- /dev/null +++ b/app/src/main/java/junit/runner/TestCollector.java @@ -0,0 +1,16 @@ +package junit.runner; + +import java.util.*; + + +/** + * Collects Test class names to be presented + * by the TestSelector. + * @see TestSelector + */ +public interface TestCollector { + /** + * Returns an enumeration of Strings with qualified class names + */ + public Enumeration collectTests(); +} diff --git a/app/src/main/java/junit/runner/TestRunListener.java b/app/src/main/java/junit/runner/TestRunListener.java new file mode 100644 index 000000000..0d81df42f --- /dev/null +++ b/app/src/main/java/junit/runner/TestRunListener.java @@ -0,0 +1,19 @@ +package junit.runner; +/** + * A listener interface for observing the + * execution of a test run. Unlike TestListener, + * this interface using only primitive objects, + * making it suitable for remote test execution. + */ + public interface TestRunListener { + /* test status constants*/ + public static final int STATUS_ERROR= 1; + public static final int STATUS_FAILURE= 2; + + public void testRunStarted(String testSuiteName, int testCount); + public void testRunEnded(long elapsedTime); + public void testRunStopped(long elapsedTime); + public void testStarted(String testName); + public void testEnded(String testName); + public void testFailed(int status, String testName, String trace); +} diff --git a/app/src/main/java/junit/runner/TestSuiteLoader.java b/app/src/main/java/junit/runner/TestSuiteLoader.java new file mode 100644 index 000000000..1bd0cd47e --- /dev/null +++ b/app/src/main/java/junit/runner/TestSuiteLoader.java @@ -0,0 +1,9 @@ +package junit.runner; + +/** + * An interface to define how a test suite should be loaded. + */ +public interface TestSuiteLoader { + abstract public Class load(String suiteClassName) throws ClassNotFoundException; + abstract public Class reload(Class aClass) throws ClassNotFoundException; +} diff --git a/app/src/main/java/junit/runner/Version.java b/app/src/main/java/junit/runner/Version.java new file mode 100644 index 000000000..f29242850 --- /dev/null +++ b/app/src/main/java/junit/runner/Version.java @@ -0,0 +1,14 @@ +package junit.runner; + +/** + * This class defines the current version of JUnit + */ +public class Version { + private Version() { + // don't instantiate + } + + public static String id() { + return "3.8.1"; + } +} diff --git a/app/src/main/java/junit/runner/excluded.properties b/app/src/main/java/junit/runner/excluded.properties new file mode 100644 index 000000000..a936e9a10 --- /dev/null +++ b/app/src/main/java/junit/runner/excluded.properties @@ -0,0 +1,12 @@ +# +# The list of excluded package paths for the TestCaseClassLoader +# +excluded.0=sun.* +excluded.1=com.sun.* +excluded.2=org.omg.* +excluded.3=javax.* +excluded.4=sunw.* +excluded.5=java.* +excluded.6=org.w3c.dom.* +excluded.7=org.xml.sax.* +excluded.8=net.jini.* diff --git a/app/src/main/java/junit/runner/logo.gif b/app/src/main/java/junit/runner/logo.gif new file mode 100644 index 000000000..d0e154738 Binary files /dev/null and b/app/src/main/java/junit/runner/logo.gif differ diff --git a/app/src/main/java/junit/runner/smalllogo.gif b/app/src/main/java/junit/runner/smalllogo.gif new file mode 100644 index 000000000..7b25eaf6a Binary files /dev/null and b/app/src/main/java/junit/runner/smalllogo.gif differ diff --git a/app/src/main/java/junit/textui/ResultPrinter.java b/app/src/main/java/junit/textui/ResultPrinter.java new file mode 100644 index 000000000..80ed413f4 --- /dev/null +++ b/app/src/main/java/junit/textui/ResultPrinter.java @@ -0,0 +1,139 @@ + +package junit.textui; + +import java.io.PrintStream; +import java.text.NumberFormat; +import java.util.Enumeration; + +import junit.framework.AssertionFailedError; +import junit.framework.Test; +import junit.framework.TestFailure; +import junit.framework.TestListener; +import junit.framework.TestResult; +import junit.runner.BaseTestRunner; + +public class ResultPrinter implements TestListener { + PrintStream fWriter; + int fColumn= 0; + + public ResultPrinter(PrintStream writer) { + fWriter= writer; + } + + /* API for use by textui.TestRunner + */ + + synchronized void print(TestResult result, long runTime) { + printHeader(runTime); + printErrors(result); + printFailures(result); + printFooter(result); + } + + void printWaitPrompt() { + getWriter().println(); + getWriter().println(" to continue"); + } + + /* Internal methods + */ + + protected void printHeader(long runTime) { + getWriter().println(); + getWriter().println("Time: "+elapsedTimeAsString(runTime)); + } + + protected void printErrors(TestResult result) { + printDefects(result.errors(), result.errorCount(), "error"); + } + + protected void printFailures(TestResult result) { + printDefects(result.failures(), result.failureCount(), "failure"); + } + + protected void printDefects(Enumeration booBoos, int count, String type) { + if (count == 0) return; + if (count == 1) + getWriter().println("There was " + count + " " + type + ":"); + else + getWriter().println("There were " + count + " " + type + "s:"); + for (int i= 1; booBoos.hasMoreElements(); i++) { + printDefect((TestFailure) booBoos.nextElement(), i); + } + } + + public void printDefect(TestFailure booBoo, int count) { // only public for testing purposes + printDefectHeader(booBoo, count); + printDefectTrace(booBoo); + } + + protected void printDefectHeader(TestFailure booBoo, int count) { + // I feel like making this a println, then adding a line giving the throwable a chance to print something + // before we get to the stack trace. + getWriter().print(count + ") " + booBoo.failedTest()); + } + + protected void printDefectTrace(TestFailure booBoo) { + getWriter().print(BaseTestRunner.getFilteredTrace(booBoo.trace())); + } + + protected void printFooter(TestResult result) { + if (result.wasSuccessful()) { + getWriter().println(); + getWriter().print("OK"); + getWriter().println (" (" + result.runCount() + " test" + (result.runCount() == 1 ? "": "s") + ")"); + + } else { + getWriter().println(); + getWriter().println("FAILURES!!!"); + getWriter().println("Tests run: "+result.runCount()+ + ", Failures: "+result.failureCount()+ + ", Errors: "+result.errorCount()); + } + getWriter().println(); + } + + + /** + * Returns the formatted string of the elapsed time. + * Duplicated from BaseTestRunner. Fix it. + */ + protected String elapsedTimeAsString(long runTime) { + return NumberFormat.getInstance().format((double)runTime/1000); + } + + public PrintStream getWriter() { + return fWriter; + } + /** + * @see junit.framework.TestListener#addError(Test, Throwable) + */ + public void addError(Test test, Throwable t) { + getWriter().print("E"); + } + + /** + * @see junit.framework.TestListener#addFailure(Test, AssertionFailedError) + */ + public void addFailure(Test test, AssertionFailedError t) { + getWriter().print("F"); + } + + /** + * @see junit.framework.TestListener#endTest(Test) + */ + public void endTest(Test test) { + } + + /** + * @see junit.framework.TestListener#startTest(Test) + */ + public void startTest(Test test) { + getWriter().print("."); + if (fColumn++ >= 40) { + getWriter().println(); + fColumn= 0; + } + } + +} diff --git a/app/src/main/java/junit/textui/TestRunner.java b/app/src/main/java/junit/textui/TestRunner.java new file mode 100644 index 000000000..79065e879 --- /dev/null +++ b/app/src/main/java/junit/textui/TestRunner.java @@ -0,0 +1,189 @@ +package junit.textui; + + +import java.io.PrintStream; + +import junit.framework.*; +import junit.runner.*; + +/** + * A command line based tool to run tests. + *

+ * java junit.textui.TestRunner [-wait] TestCaseClass
+ * 
+ * TestRunner expects the name of a TestCase class as argument. + * If this class defines a static suite method it + * will be invoked and the returned test is run. Otherwise all + * the methods starting with "test" having no arguments are run. + *

+ * When the wait command line argument is given TestRunner + * waits until the users types RETURN. + *

+ * TestRunner prints a trace as the tests are executed followed by a + * summary at the end. + */ +public class TestRunner extends BaseTestRunner { + private ResultPrinter fPrinter; + + public static final int SUCCESS_EXIT= 0; + public static final int FAILURE_EXIT= 1; + public static final int EXCEPTION_EXIT= 2; + + /** + * Constructs a TestRunner. + */ + public TestRunner() { + this(System.out); + } + + /** + * Constructs a TestRunner using the given stream for all the output + */ + public TestRunner(PrintStream writer) { + this(new ResultPrinter(writer)); + } + + /** + * Constructs a TestRunner using the given ResultPrinter all the output + */ + public TestRunner(ResultPrinter printer) { + fPrinter= printer; + } + + /** + * Runs a suite extracted from a TestCase subclass. + */ + static public void run(Class testClass) { + run(new TestSuite(testClass)); + } + + /** + * Runs a single test and collects its results. + * This method can be used to start a test run + * from your program. + *

+	 * public static void main (String[] args) {
+	 *     test.textui.TestRunner.run(suite());
+	 * }
+	 * 
+ */ + static public TestResult run(Test test) { + TestRunner runner= new TestRunner(); + return runner.doRun(test); + } + + /** + * Runs a single test and waits until the user + * types RETURN. + */ + static public void runAndWait(Test suite) { + TestRunner aTestRunner= new TestRunner(); + aTestRunner.doRun(suite, true); + } + + /** + * Always use the StandardTestSuiteLoader. Overridden from + * BaseTestRunner. + */ + public TestSuiteLoader getLoader() { + return new StandardTestSuiteLoader(); + } + + public void testFailed(int status, Test test, Throwable t) { + } + + public void testStarted(String testName) { + } + + public void testEnded(String testName) { + } + + /** + * Creates the TestResult to be used for the test run. + */ + protected TestResult createTestResult() { + return new TestResult(); + } + + public TestResult doRun(Test test) { + return doRun(test, false); + } + + public TestResult doRun(Test suite, boolean wait) { + TestResult result= createTestResult(); + result.addListener(fPrinter); + long startTime= System.currentTimeMillis(); + suite.run(result); + long endTime= System.currentTimeMillis(); + long runTime= endTime-startTime; + fPrinter.print(result, runTime); + + pause(wait); + return result; + } + + protected void pause(boolean wait) { + if (!wait) return; + fPrinter.printWaitPrompt(); + try { + System.in.read(); + } + catch(Exception e) { + } + } + + public static void main(String args[]) { + TestRunner aTestRunner= new TestRunner(); + try { + TestResult r= aTestRunner.start(args); + if (!r.wasSuccessful()) + System.exit(FAILURE_EXIT); + System.exit(SUCCESS_EXIT); + } catch(Exception e) { + System.err.println(e.getMessage()); + System.exit(EXCEPTION_EXIT); + } + } + + /** + * Starts a test run. Analyzes the command line arguments + * and runs the given test suite. + */ + protected TestResult start(String args[]) throws Exception { + String testCase= ""; + boolean wait= false; + + for (int i= 0; i < args.length; i++) { + if (args[i].equals("-wait")) + wait= true; + else if (args[i].equals("-c")) + testCase= extractClassName(args[++i]); + else if (args[i].equals("-v")) + System.err.println("JUnit "+Version.id()+" by Kent Beck and Erich Gamma"); + else + testCase= args[i]; + } + + if (testCase.equals("")) + throw new Exception("Usage: TestRunner [-wait] testCaseName, where name is the name of the TestCase class"); + + try { + Test suite= getTest(testCase); + return doRun(suite, wait); + } + catch(Exception e) { + throw new Exception("Could not create and run test suite: "+e); + } + } + + protected void runFailed(String message) { + System.err.println(message); + System.exit(FAILURE_EXIT); + } + + public void setPrinter(ResultPrinter printer) { + fPrinter= printer; + } + + +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/AccInfo.java b/app/src/main/java/net/kdt/pojavlaunch/AccInfo.java new file mode 100644 index 000000000..ece891357 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/AccInfo.java @@ -0,0 +1,25 @@ +package net.kdt.pojavlaunch; + +public class AccInfo +{ + private String content; + public static AccInfo create(String path) + { + return new AccInfo(path); + } + private AccInfo(String path) + { + try + { + content = Tools.read(path); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + public String getUuid() + { + return null; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java new file mode 100644 index 000000000..f141ec385 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java @@ -0,0 +1,138 @@ +package net.kdt.pojavlaunch; + +import android.util.*; +import android.view.*; +import java.util.*; +import org.lwjgl.input.*; +import org.lwjgl.opengl.*; + +public class AndroidLWJGLKeycode { + private static final Map androidToLwjglMap; + static { + androidToLwjglMap = new ArrayMap(); + androidToLwjglMap.put(KeyEvent.KEYCODE_0, Keyboard.KEY_0); + androidToLwjglMap.put(KeyEvent.KEYCODE_1, Keyboard.KEY_1); + androidToLwjglMap.put(KeyEvent.KEYCODE_2, Keyboard.KEY_2); + androidToLwjglMap.put(KeyEvent.KEYCODE_3, Keyboard.KEY_3); + androidToLwjglMap.put(KeyEvent.KEYCODE_4, Keyboard.KEY_4); + androidToLwjglMap.put(KeyEvent.KEYCODE_5, Keyboard.KEY_5); + androidToLwjglMap.put(KeyEvent.KEYCODE_6, Keyboard.KEY_6); + androidToLwjglMap.put(KeyEvent.KEYCODE_7, Keyboard.KEY_7); + androidToLwjglMap.put(KeyEvent.KEYCODE_8, Keyboard.KEY_8); + androidToLwjglMap.put(KeyEvent.KEYCODE_9, Keyboard.KEY_9); + androidToLwjglMap.put(KeyEvent.KEYCODE_A, Keyboard.KEY_A); + androidToLwjglMap.put(KeyEvent.KEYCODE_B, Keyboard.KEY_B); + androidToLwjglMap.put(KeyEvent.KEYCODE_C, Keyboard.KEY_C); + androidToLwjglMap.put(KeyEvent.KEYCODE_D, Keyboard.KEY_D); + androidToLwjglMap.put(KeyEvent.KEYCODE_E, Keyboard.KEY_E); + androidToLwjglMap.put(KeyEvent.KEYCODE_F, Keyboard.KEY_F); + androidToLwjglMap.put(KeyEvent.KEYCODE_G, Keyboard.KEY_G); + androidToLwjglMap.put(KeyEvent.KEYCODE_H, Keyboard.KEY_H); + androidToLwjglMap.put(KeyEvent.KEYCODE_I, Keyboard.KEY_I); + androidToLwjglMap.put(KeyEvent.KEYCODE_J, Keyboard.KEY_J); + androidToLwjglMap.put(KeyEvent.KEYCODE_K, Keyboard.KEY_K); + androidToLwjglMap.put(KeyEvent.KEYCODE_L, Keyboard.KEY_L); + androidToLwjglMap.put(KeyEvent.KEYCODE_M, Keyboard.KEY_M); + androidToLwjglMap.put(KeyEvent.KEYCODE_N, Keyboard.KEY_M); + androidToLwjglMap.put(KeyEvent.KEYCODE_O, Keyboard.KEY_O); + androidToLwjglMap.put(KeyEvent.KEYCODE_P, Keyboard.KEY_P); + androidToLwjglMap.put(KeyEvent.KEYCODE_Q, Keyboard.KEY_Q); + androidToLwjglMap.put(KeyEvent.KEYCODE_R, Keyboard.KEY_R); + androidToLwjglMap.put(KeyEvent.KEYCODE_S, Keyboard.KEY_S); + androidToLwjglMap.put(KeyEvent.KEYCODE_T, Keyboard.KEY_T); + androidToLwjglMap.put(KeyEvent.KEYCODE_U, Keyboard.KEY_U); + androidToLwjglMap.put(KeyEvent.KEYCODE_V, Keyboard.KEY_V); + androidToLwjglMap.put(KeyEvent.KEYCODE_W, Keyboard.KEY_W); + androidToLwjglMap.put(KeyEvent.KEYCODE_X, Keyboard.KEY_X); + androidToLwjglMap.put(KeyEvent.KEYCODE_Y, Keyboard.KEY_Y); + androidToLwjglMap.put(KeyEvent.KEYCODE_Z, Keyboard.KEY_Z); + androidToLwjglMap.put(KeyEvent.KEYCODE_ALT_LEFT, Keyboard.KEY_LMENU); + androidToLwjglMap.put(KeyEvent.KEYCODE_ALT_RIGHT, Keyboard.KEY_RMENU); + androidToLwjglMap.put(KeyEvent.KEYCODE_BACK, Keyboard.KEY_ESCAPE); // Might not be correctly! + androidToLwjglMap.put(KeyEvent.KEYCODE_BACKSLASH, Keyboard.KEY_BACKSLASH); + // androidToLwjglMap.put(KeyEvent.keyCode_del, Keyboard.KEY_DELETE); + androidToLwjglMap.put(KeyEvent.KEYCODE_BREAK, Keyboard.KEY_PAUSE); + androidToLwjglMap.put(KeyEvent.KEYCODE_CAPS_LOCK, Keyboard.KEY_CAPITAL); + androidToLwjglMap.put(KeyEvent.KEYCODE_COMMA, Keyboard.KEY_COMMA); + androidToLwjglMap.put(KeyEvent.KEYCODE_CTRL_LEFT, Keyboard.KEY_LCONTROL); + androidToLwjglMap.put(KeyEvent.KEYCODE_CTRL_RIGHT, Keyboard.KEY_RCONTROL); + androidToLwjglMap.put(KeyEvent.KEYCODE_DEL, Keyboard.KEY_BACK); // Backspace + androidToLwjglMap.put(KeyEvent.KEYCODE_ENTER, Keyboard.KEY_RETURN); + androidToLwjglMap.put(KeyEvent.KEYCODE_EQUALS, Keyboard.KEY_EQUALS); + androidToLwjglMap.put(KeyEvent.KEYCODE_ESCAPE, Keyboard.KEY_ESCAPE); + androidToLwjglMap.put(KeyEvent.KEYCODE_F1, Keyboard.KEY_F1); + androidToLwjglMap.put(KeyEvent.KEYCODE_F2, Keyboard.KEY_F2); + androidToLwjglMap.put(KeyEvent.KEYCODE_F3, Keyboard.KEY_F3); + androidToLwjglMap.put(KeyEvent.KEYCODE_F4, Keyboard.KEY_F4); + androidToLwjglMap.put(KeyEvent.KEYCODE_F5, Keyboard.KEY_F5); + androidToLwjglMap.put(KeyEvent.KEYCODE_F6, Keyboard.KEY_F6); + androidToLwjglMap.put(KeyEvent.KEYCODE_F7, Keyboard.KEY_F7); + androidToLwjglMap.put(KeyEvent.KEYCODE_F8, Keyboard.KEY_F8); + androidToLwjglMap.put(KeyEvent.KEYCODE_F9, Keyboard.KEY_F9); + androidToLwjglMap.put(KeyEvent.KEYCODE_F10, Keyboard.KEY_F10); + androidToLwjglMap.put(KeyEvent.KEYCODE_F11, Keyboard.KEY_F11); + androidToLwjglMap.put(KeyEvent.KEYCODE_F12, Keyboard.KEY_F12); + androidToLwjglMap.put(KeyEvent.KEYCODE_FUNCTION, Keyboard.KEY_FUNCTION); + androidToLwjglMap.put(KeyEvent.KEYCODE_FORWARD, Keyboard.KEY_UP); // Might not be correctly; + androidToLwjglMap.put(KeyEvent.KEYCODE_GRAVE, Keyboard.KEY_GRAVE); + androidToLwjglMap.put(KeyEvent.KEYCODE_HOME, Keyboard.KEY_HOME); + androidToLwjglMap.put(KeyEvent.KEYCODE_INSERT, Keyboard.KEY_INSERT); + androidToLwjglMap.put(KeyEvent.KEYCODE_KANA, Keyboard.KEY_KANA); + androidToLwjglMap.put(KeyEvent.KEYCODE_LEFT_BRACKET, Keyboard.KEY_LBRACKET); + androidToLwjglMap.put(KeyEvent.KEYCODE_MINUS, Keyboard.KEY_MINUS); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUM_LOCK, Keyboard.KEY_NUMLOCK); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_0, Keyboard.KEY_NUMPAD0); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_1, Keyboard.KEY_NUMPAD1); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_2, Keyboard.KEY_NUMPAD2); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_3, Keyboard.KEY_NUMPAD3); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_4, Keyboard.KEY_NUMPAD4); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_5, Keyboard.KEY_NUMPAD5); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_6, Keyboard.KEY_NUMPAD6); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_7, Keyboard.KEY_NUMPAD7); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_8, Keyboard.KEY_NUMPAD8); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_9, Keyboard.KEY_NUMPAD9); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_ENTER, Keyboard.KEY_NUMPADENTER); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_EQUALS, Keyboard.KEY_NUMPADEQUALS); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_COMMA, Keyboard.KEY_NUMPADCOMMA); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_ADD, Keyboard.KEY_ADD); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_DIVIDE, Keyboard.KEY_DIVIDE); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_DOT, Keyboard.KEY_PERIOD); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_MULTIPLY, Keyboard.KEY_MULTIPLY); + androidToLwjglMap.put(KeyEvent.KEYCODE_NUMPAD_SUBTRACT, Keyboard.KEY_SUBTRACT); + androidToLwjglMap.put(KeyEvent.KEYCODE_PAGE_DOWN, Keyboard.KEY_NEXT); + androidToLwjglMap.put(KeyEvent.KEYCODE_PAGE_UP, Keyboard.KEY_PRIOR); + androidToLwjglMap.put(KeyEvent.KEYCODE_PERIOD, Keyboard.KEY_PERIOD); + androidToLwjglMap.put(KeyEvent.KEYCODE_PLUS, Keyboard.KEY_ADD); + androidToLwjglMap.put(KeyEvent.KEYCODE_POWER, Keyboard.KEY_POWER); + androidToLwjglMap.put(KeyEvent.KEYCODE_RIGHT_BRACKET, Keyboard.KEY_RBRACKET); + androidToLwjglMap.put(KeyEvent.KEYCODE_SEMICOLON, Keyboard.KEY_SEMICOLON); + androidToLwjglMap.put(KeyEvent.KEYCODE_SHIFT_LEFT, Keyboard.KEY_LSHIFT); + androidToLwjglMap.put(KeyEvent.KEYCODE_SHIFT_RIGHT, Keyboard.KEY_RSHIFT); + androidToLwjglMap.put(KeyEvent.KEYCODE_SLASH, Keyboard.KEY_SLASH); + androidToLwjglMap.put(KeyEvent.KEYCODE_SLEEP, Keyboard.KEY_SLEEP); + androidToLwjglMap.put(KeyEvent.KEYCODE_SPACE, Keyboard.KEY_SPACE); + androidToLwjglMap.put(KeyEvent.KEYCODE_SYSRQ, Keyboard.KEY_SYSRQ); + androidToLwjglMap.put(KeyEvent.KEYCODE_TAB, Keyboard.KEY_TAB); + androidToLwjglMap.put(KeyEvent.KEYCODE_YEN, Keyboard.KEY_YEN); + } + + public static void execKey(MainActivity mainActivity, KeyEvent keyEvent, int i, boolean isDown) { + for (Map.Entry perKey : androidToLwjglMap.entrySet()) { + if (perKey.getKey() == i) { + mainActivity.sendKeyPress(perKey.getValue(), isDown); + } + } + + if (!AndroidDisplay.grab) { + try { + // Old method works without dead chars: + if (isDown) { + mainActivity.sendKeyPress((char) keyEvent.getUnicodeChar()); + } + } catch (Throwable th) { + th.printStackTrace(); + } + } + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/ArchitectureCheck.java b/app/src/main/java/net/kdt/pojavlaunch/ArchitectureCheck.java new file mode 100644 index 000000000..87e247a77 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/ArchitectureCheck.java @@ -0,0 +1,21 @@ +package net.kdt.pojavlaunch; + +public class ArchitectureCheck +{ + public static String getArch() { + String arch = System.getProperty("os.arch"); + String archConverted = null; + + if (arch.equals("aarch64") || + arch.endsWith("v8a") || + arch.startsWith("arm64")) { + archConverted = "arm64"; + } else if (arch.startsWith("arm") || arch.endsWith("v7a")) { + archConverted = "arm32"; + } else if (arch.startsWith("x86") || arch.startsWith("amd")) { + archConverted = "x86"; + } + + return archConverted; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/AsyncThread.java b/app/src/main/java/net/kdt/pojavlaunch/AsyncThread.java new file mode 100644 index 000000000..4bc4777ee --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/AsyncThread.java @@ -0,0 +1,40 @@ +package net.kdt.pojavlaunch; + +import android.support.annotation.*; + +public abstract class AsyncThread extends Thread +{ + private boolean isCancelled = true; + + @WorkerThread + protected abstract Result doInBackground(Params... params); + + @MainThread + protected void onPreExecute() {} + + @SuppressWarnings({"UnusedDeclaration"}) + @MainThread + protected void onPostExecute(Result result) {} + + @SuppressWarnings({"UnusedDeclaration"}) + @MainThread + protected void onProgressUpdate(Progress... values) {} + + @SuppressWarnings({"UnusedParameters"}) + @MainThread + protected void onCancelled(Result result) { + onCancelled(); + } + + @MainThread + protected void onCancelled() {} + + public final boolean isCancelled() { + return isCancelled; + } + + public final boolean cancel() { + super.stop(); + return true; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/CancelException.java b/app/src/main/java/net/kdt/pojavlaunch/CancelException.java new file mode 100644 index 000000000..58b9cf995 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/CancelException.java @@ -0,0 +1,14 @@ +package net.kdt.pojavlaunch; + +public class CancelException extends RuntimeException +{ + @Override + public CancelException() { + super(); + } + + @Override + public CancelException(String msg) { + super(msg); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/ClassesNotFoundException.java b/app/src/main/java/net/kdt/pojavlaunch/ClassesNotFoundException.java new file mode 100644 index 000000000..62cd31170 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/ClassesNotFoundException.java @@ -0,0 +1,14 @@ +package net.kdt.pojavlaunch; + +public class ClassesNotFoundException extends ClassNotFoundException +{ + private static String mMessage = "Failed to find a class from classes list"; + public ClassesNotFoundException() + { + super(mMessage); + } + public ClassesNotFoundException(String message) + { + super(message + ":" + mMessage); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/DroidToJavaKey.java b/app/src/main/java/net/kdt/pojavlaunch/DroidToJavaKey.java new file mode 100644 index 000000000..898f8809c --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/DroidToJavaKey.java @@ -0,0 +1,50 @@ +package net.kdt.pojavlaunch; + +import android.text.method.*; +import android.view.*; +import android.view.inputmethod.*; +import org.lwjgl.opengl.*; +import org.lwjgl.input.*; + +public class DroidToJavaKey { + private static StringBuilder mComposing = new StringBuilder(); + private static long mMetaState; + + public static void execKey(MainActivity mainActivity, KeyEvent keyEvent, int i, boolean status) { + /* + if (i >= KeyEvent.KEYCODE_F1 && i <= KeyEvent.KEYCODE_F12) { + mainActivity.sendKeyPress(i - 72, status); + } else if (i == KeyEvent.KEYCODE_DEL) { + mainActivity.sendKeyPress(Keyboard.KEY_DELETE, status); + } else if (i == KeyEvent.KEYCODE_ENTER) { + mainActivity.sendKeyPress(Keyboard.KEY_RETURN, status); + } else if (i == KeyEvent.KEYCODE_SHIFT_LEFT) { + mainActivity.sendKeyPress(Keyboard.KEY_LSHIFT, status); + } else if (i == KeyEvent.KEYCODE_SHIFT_RIGHT) { + mainActivity.sendKeyPress(Keyboard.KEY_RSHIFT, status); + } else if (i == KeyEvent.KEYCODE_DPAD_LEFT) { + mainActivity.sendKeyPress(Keyboard.KEY_LEFT, status); + } else if (i == KeyEvent.KEYCODE_DPAD_UP) { + mainActivity.sendKeyPress(Keyboard.KEY_UP, status); + } else if (i == keyEvent.KEYCODE_DPAD_RIGHT) { + mainActivity.sendKeyPress(Keyboard.KEY_RIGHT, status); + } else if (i == KeyEvent.KEYCODE_DPAD_DOWN) { + mainActivity.sendKeyPress(Keyboard.KEY_DOWN, status); + } else if (i >= KeyEvent.KEYCODE_BUTTON_1 && i <= KeyEvent.KEYCODE_BUTTON_16) { + mainActivity.sendKeyPress(i - 188, status); + } + + if (!AndroidDisplay.grab) { + try { + // Old method works without dead chars: + mainActivity.sendKeyPress(keyEvent.getDisplayLabel(), status); + } catch (Throwable th) { + th.printStackTrace(); + } + } + */ + + mainActivity.sendKeyPress(keyEvent.getDisplayLabel(), status); + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/FakeAccount.java b/app/src/main/java/net/kdt/pojavlaunch/FakeAccount.java new file mode 100644 index 000000000..ef5a66aa6 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/FakeAccount.java @@ -0,0 +1,70 @@ +package net.kdt.pojavlaunch; +import java.security.*; +import java.util.*; + +public class FakeAccount +{ + public static String[] generate() + { + String[] arr = { + UUID.randomUUID().toString(), + new RandomString(32).nextString() + }; + return arr; + } + private static class RandomString { + + /** + * Generate a random string. + */ + public String nextString() { + for (int idx = 0; idx < buf.length; ++idx) + buf[idx] = symbols[random.nextInt(symbols.length)]; + return new String(buf); + } + + public static final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + public static final String lower = upper.toLowerCase(Locale.ROOT); + + public static final String digits = "0123456789"; + + public static final String alphanum = upper + lower + digits; + + private final Random random; + + private final char[] symbols; + + private final char[] buf; + + public RandomString(int length, Random random, String symbols) { + if (length < 1) throw new IllegalArgumentException(); + if (symbols.length() < 2) throw new IllegalArgumentException(); + this.random = Objects.requireNonNull(random); + this.symbols = symbols.toCharArray(); + this.buf = new char[length]; + } + + /** + * Create an alphanumeric string generator. + */ + public RandomString(int length, Random random) { + this(length, random, alphanum); + } + + /** + * Create an alphanumeric strings from a secure generator. + */ + public RandomString(int length) { + this(length, new SecureRandom()); + } + + /** + * Create session identifiers. + */ + public RandomString() { + this(21); + } + + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/FakeURLClassLoader.java b/app/src/main/java/net/kdt/pojavlaunch/FakeURLClassLoader.java new file mode 100644 index 000000000..94fd49e94 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/FakeURLClassLoader.java @@ -0,0 +1,25 @@ +package net.kdt.pojavlaunch; +import java.net.*; +import java.io.*; +import dalvik.system.*; + +public class FakeURLClassLoader extends URLClassLoader +{ + private DexClassLoader m; + public FakeURLClassLoader(java.lang.String dexPath, java.lang.String optimizedDirectory, java.lang.String librarySearchPath, java.lang.ClassLoader parent) throws MalformedURLException { + super(new URL[] { new File("test.jar").toURI().toURL() }, null); + + m = new DexClassLoader(dexPath, optimizedDirectory, librarySearchPath, parent); + } + + @Override + public java.lang.String findLibrary(String name) { + return m.findLibrary(name); + } + + @Override + public Class loadClass(String name) throws ClassNotFoundException + { + return m.loadClass(name); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/FontChanger.java b/app/src/main/java/net/kdt/pojavlaunch/FontChanger.java new file mode 100644 index 000000000..ba89f5079 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/FontChanger.java @@ -0,0 +1,46 @@ +package net.kdt.pojavlaunch; + +import android.content.res.*; +import android.graphics.*; +import android.view.*; +import android.widget.*; + +public class FontChanger +{ + private Typeface typeface; + + public FontChanger(Typeface typeface) + { + this.typeface = typeface; + } + + public FontChanger(AssetManager assets, String assetsFontFileName) + { + typeface = Typeface.createFromAsset(assets, assetsFontFileName); + } + + public ViewGroup replaceFonts(ViewGroup viewTree) + { + View child; + for(int i = 0; i < viewTree.getChildCount(); ++i) + { + child = viewTree.getChildAt(i); + if(child instanceof ViewGroup) + { + // recursive call + replaceFonts((ViewGroup)child); + } + else if(child instanceof TextView) + { + // base case + replaceFont((TextView) child); + } + } + return viewTree; + } + + public View replaceFont(TextView view) { + view.setTypeface(typeface); + return view; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/InstallerTask.java b/app/src/main/java/net/kdt/pojavlaunch/InstallerTask.java new file mode 100644 index 000000000..5e6b84f2c --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/InstallerTask.java @@ -0,0 +1,52 @@ +package net.kdt.pojavlaunch; +import android.os.*; + +public class InstallerTask extends AsyncTask +{ + @Override + protected String doInBackground(String[] p1) + { + try + { + downloadLibraries(p1[0]); + dexMinecraftLibs(); + downloadMinecraft(p1[0]); + dexMinecraftClient(p1[0]); + downloadAssets(p1[0]); + } + catch (Exception e) + { + return e.getMessage(); + } + return null; + } + @Override + protected void onPostExecute(String result) + { + super.onPostExecute(result); + + if(result == null){ + //No errors + } + } + private void downloadLibraries(String versionName) throws Exception + { + + } + private void dexMinecraftLibs() throws Exception + { + + } + private void downloadMinecraft(String versionName) throws Exception + { + + } + private void dexMinecraftClient(String version) throws Exception + { + + } + private void downloadAssets(String versionName) throws Exception + { + + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/JAssetInfo.java b/app/src/main/java/net/kdt/pojavlaunch/JAssetInfo.java new file mode 100644 index 000000000..6b228d187 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/JAssetInfo.java @@ -0,0 +1,8 @@ +package net.kdt.pojavlaunch; + +public class JAssetInfo +{ + public String hash; + public int size; + //public String objects; +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/JAssets.java b/app/src/main/java/net/kdt/pojavlaunch/JAssets.java new file mode 100644 index 000000000..98b777df6 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/JAssets.java @@ -0,0 +1,8 @@ +package net.kdt.pojavlaunch; + +import java.util.Map; + +public class JAssets { + public Map objects; +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java b/app/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java new file mode 100644 index 000000000..5de964084 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/JMinecraftVersionList.java @@ -0,0 +1,24 @@ +package net.kdt.pojavlaunch; + +import java.util.Map; + +public class JMinecraftVersionList { + public static final String TYPE_OLD_ALPHA = "old_alpha"; + public static final String TYPE_OLD_BETA = "old_beta"; + public static final String TYPE_RELEASE = "release"; + public static final String TYPE_SNAPSHOT = "snapshot"; + public Map latest; + public Version[] versions; + + public static class Version extends OfflineVersion { + public String url; + } + + public static class OfflineVersion { + public String id; + public String releaseTime; + public String time; + public String type; + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/JVersion.java b/app/src/main/java/net/kdt/pojavlaunch/JVersion.java new file mode 100644 index 000000000..183ab9961 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/JVersion.java @@ -0,0 +1,43 @@ +package net.kdt.pojavlaunch; + +public class JVersion extends Object +{ + private String version; + private JVersion(String version) + { + this.version = version; + } + public static JVersion from(String version) + { + return new JVersion(version); + } + public boolean isVersionCode() + { + return !version.contains("."); + } + public JVersion toVersionCode() + { + if(!isVersionCode()){ + version = version.replace(".", ""); + return this; + } else throw new RuntimeException("Can't convert version code to itself"); + } + public JVersion toVersionName() + { + if(isVersionCode()){ + StringBuilder charList = new StringBuilder(); + for(int i=0; i 0) { + return getResources().getString(id, val); + } else { + return getResources().getString(id); + } + } + + private void viewInit() { + setContentView(R.layout.launcher_main); + + fullTab = (LinearLayout) findViewById(R.id.launchermainFragmentTabView); + tabLayout = (TabLayout) findViewById(R.id.launchermainTabLayout); + viewPager = (ViewPager) findViewById(R.id.launchermainTabPager); + + consoleView = new ConsoleFragment(); + crashView = new CrashFragment(); + + viewPageAdapter = new ViewPagerAdapter(getSupportFragmentManager()); + + viewPageAdapter.addFragment(new LauncherFragment(), getStr(R.string.mcl_tab_news)); + viewPageAdapter.addFragment(consoleView, getStr(R.string.mcl_tab_console)); + viewPageAdapter.addFragment(crashView, getStr(R.string.mcl_tab_crash)); + + viewPager.setAdapter(viewPageAdapter); + tabLayout.setupWithViewPager(viewPager); + + tvUsernameView = (TextView) findId(R.id.launcherMainUsernameView); + tvVersion = (TextView) findId(R.id.launcherMainVersionView); + + try { + profilePath = PojavProfile.getCurrentProfilePath(this); + profile = PojavProfile.getCurrentProfileContent(this); + + tvUsernameView.setText(profile.getUsername()); + } catch(Exception e) { + //Tools.throwError(this, e); + e.printStackTrace(); + toast(getStr(R.string.toast_login_error) + " " + e.getMessage()); + finish(); + } + + //showProfileInfo(); + + List versions = new ArrayList(); + final File fVers = new File(Tools.versnDir); + + try { + if (fVers.listFiles().length < 1) { + throw new Exception(getStr(R.string.error_no_version)); + } + + for (File fVer : fVers.listFiles()) { + versions.add(fVer.getName()); + } + } catch (Exception e) { + versions.add(getStr(R.string.error_title) + ":"); + versions.add(e.getMessage()); + + } finally { + availableVersions = versions.toArray(new String[0]); + } + + //availableVersions; + + ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, availableVersions); + adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); + versionSelector = (Spinner) findId(R.id.launcherMainSelectVersion); + versionSelector.setAdapter(adapter); + + new AsyncTask>(){ + + @Override + protected ArrayList doInBackground(Void[] p1) + { + try{ + versionList = new Gson().fromJson(DownloadUtils.downloadString("https://launchermeta.mojang.com/mc/game/version_manifest.json"), JMinecraftVersionList.class); + ArrayList versionStringList = filter(versionList.versions, fVers.listFiles()); + + return versionStringList; + } catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + @Override + protected void onPostExecute(ArrayList result) + { + super.onPostExecute(result); + + final PopupMenu popup = new PopupMenu(MCLauncherActivity.this, versionSelector); + popup.getMenuInflater().inflate(R.menu.menu_versionopt, popup.getMenu()); + + if(result != null && result.size() > 0) { + ArrayAdapter adapter = new ArrayAdapter(MCLauncherActivity.this, android.R.layout.simple_spinner_item, result); + adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); + versionSelector.setAdapter(adapter); + versionSelector.setSelection(selectAt(result.toArray(new String[0]), profile.getVersion())); + } else { + versionSelector.setSelection(selectAt(availableVersions, profile.getVersion())); + } + versionSelector.setOnItemSelectedListener(new OnItemSelectedListener(){ + + @Override + public void onItemSelected(AdapterView p1, View p2, int p3, long p4) + { + String version = p1.getItemAtPosition(p3).toString(); + profile.setVersion(version); + + PojavProfile.setCurrentProfile(MCLauncherActivity.this, profile); + if (PojavProfile.isFileType(MCLauncherActivity.this)) { + PojavProfile.setCurrentProfile(MCLauncherActivity.this, MCProfile.build(profile)); + } + + tvVersion.setText(getStr(R.string.mcl_version_msg, version)); + } + + @Override + public void onNothingSelected(AdapterView p1) + { + // TODO: Implement this method + } + }); + versionSelector.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){ + @Override + public boolean onItemLongClick(AdapterView p1, View p2, int p3, long p4) + { + // Implement copy, remove, reinstall,... + popup.show(); + return true; + } + }); + + popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + public boolean onMenuItemClick(MenuItem item) { + return true; + } + }); + + tvVersion.setText(getStr(R.string.mcl_version_msg) + versionSelector.getSelectedItem()); + } + }.execute(); + + + launchProgress = (ProgressBar) findId(R.id.progressDownloadBar); + launchTextStatus = (TextView) findId(R.id.progressDownloadText); + LinearLayout exitLayout = (LinearLayout) findId(R.id.launcherMainExitbtns); + switchUsrBtn = (Button) exitLayout.getChildAt(0); + logoutBtn = (Button) exitLayout.getChildAt(1); + + leftView = (LinearLayout) findId(R.id.launcherMainLeftLayout); + playButton = (Button) findId(R.id.launcherMainPlayButton); + rightView = (ViewGroup) findId(R.id.launcherMainRightLayout); + + statusIsLaunching(false); + } + + @Override + protected void onPostResume() + { + super.onPostResume(); + } + + private float updateWidthHeight() { + float leftRightWidth = (float) AndroidDisplay.windowWidth / 100f * 32f; + float playButtonWidth = AndroidDisplay.windowWidth - leftRightWidth * 2f; + LinearLayout.LayoutParams leftRightParams = new LinearLayout.LayoutParams((int) leftRightWidth, dpToPixel(AndroidDisplay.windowHeight / 9)); + LinearLayout.LayoutParams playButtonParams = new LinearLayout.LayoutParams((int) playButtonWidth, dpToPixel(AndroidDisplay.windowHeight / 9)); + leftView.setLayoutParams(leftRightParams); + rightView.setLayoutParams(leftRightParams); + playButton.setLayoutParams(playButtonParams); + + return leftRightWidth; + } + + private JMinecraftVersionList.OfflineVersion findVersion(String version) { + if (versionList != null) { + for (JMinecraftVersionList.Version valueVer: versionList.versions) { + if (valueVer.id.equals(version)) { + return valueVer; + } + } + } + + // If offline or custom version. + try { + return new Gson().fromJson(Tools.read(Tools.versnDir + "/" + version + "/" + version + ".json"), JMinecraftVersionList.OfflineVersion.class); + } catch (Exception e) { + throw new RuntimeException(getStr(R.string.error_load_version) + version); + } + } + + private ArrayList filter(JMinecraftVersionList.Version[] list1, File[] list2) { + ArrayList output = new ArrayList(); + + for (JMinecraftVersionList.Version value1: list1) { + output.add(value1.id); + } + + for (File value2: list2) { + if (!output.contains(value2.getName())) { + output.add(value2.getName()); + } + } + + return output; + } + + private void toast(final String str) { + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + Toast.makeText(MCLauncherActivity.this, str, Toast.LENGTH_SHORT).show(); + } + }); + } + + public void mcaccSwitchUser(View view) + { + showProfileInfo(); + } + + public void mcaccLogout(View view) + { + //PojavProfile.reset(); + finish(); + } + + private void showProfileInfo() + { + /* + new AlertDialog.Builder(this) + .setTitle("Info player") + .setMessage( + "AccessToken=" + profile.getAccessToken() + "\n" + + "ClientID=" + profile.getClientID() + "\n" + + "ProfileID=" + profile.getProfileID() + "\n" + + "Username=" + profile.getUsername() + "\n" + + "Version=" + profile.getVersion() + ).show(); + */ + } + + private void selectTabPage(int pageIndex){ + if (tabLayout.getSelectedTabPosition() != pageIndex) { + tabLayout.setScrollPosition(pageIndex,0f,true); + viewPager.setCurrentItem(pageIndex); + } + } + + @Override + protected void onResumeFragments() + { + super.onResumeFragments(); + try{ + final ProgressDialog barrier = new ProgressDialog(this); + barrier.setMessage("Waiting"); + barrier.setProgressStyle(barrier.STYLE_SPINNER); + barrier.setCancelable(false); + barrier.show(); + + new Thread(new Runnable(){ + + @Override + public void run() + { + while (consoleView == null) { + try { + Thread.sleep(20); + } catch (Throwable th) {} + } + + try { + Thread.sleep(100); + } catch (Throwable th) {} + + runOnUiThread(new Runnable() { + @Override + public void run() + { + try { + consoleView.putLog(""); + barrier.dismiss(); + } catch (Throwable th) { + startActivity(getIntent()); + finish(); + } + } + }); + } + }).start(); + + File lastCrashFile = Tools.lastFileModified(Tools.crashPath); + if(CrashFragment.isNewCrash(lastCrashFile) || !CrashFragment.lastCrashSaved.isEmpty()){ + crashView.resetCrashLog = false; + selectTabPage(2); + } else throw new Exception(); + } catch(Throwable e){ + selectTabPage(tabLayout.getSelectedTabPosition()); + } + } + + public int selectAt(String[] strArr, String select) + { + int count = 0; + for(String str : strArr){ + if(str.equals(select)){ + return count; + } + else{ + count++; + } + } + return -1; + } + + @Override + protected void onResume() + { + super.onResume(); + } + + private int dpToPixel(int sizeInDP) + { + return (int) TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, sizeInDP, getResources() + .getDisplayMetrics()); + } + private boolean canBack = false; + private void statusIsLaunching(boolean isLaunching) + { + LinearLayout.LayoutParams reparam = new LinearLayout.LayoutParams((int) updateWidthHeight(), LinearLayout.LayoutParams.WRAP_CONTENT); + ViewGroup.MarginLayoutParams lmainTabParam = (ViewGroup.MarginLayoutParams) fullTab.getLayoutParams(); + int launchVisibility = isLaunching ? View.VISIBLE : View.GONE; + launchProgress.setVisibility(launchVisibility); + launchTextStatus.setVisibility(launchVisibility); + lmainTabParam.bottomMargin = reparam.height; + leftView.setLayoutParams(reparam); + + switchUsrBtn.setEnabled(!isLaunching); + logoutBtn.setEnabled(!isLaunching); + versionSelector.setEnabled(!isLaunching); + canBack = !isLaunching; + } + @Override + public void onBackPressed() + { + if (canBack) { + super.onBackPressed(); + } + } + + private GameRunnerTask mTask; + + public void launchGame(View v) + { + if (!canBack && isAssetsProcessing) { + isAssetsProcessing = false; + statusIsLaunching(false); + } else if (canBack) { + v.setEnabled(false); + mTask = new GameRunnerTask(); + mTask.execute(profile.getVersion()); + crashView.resetCrashLog = true; + } + } + + public class GameRunnerTask extends AsyncTask + { + private String convertStr; + private boolean launchWithError = false; + + @Override + protected void onPreExecute() + { + launchProgress.setMax(39); + statusIsLaunching(true); + } + + private int maxSubProgress = 1; + private int valSubProgress = 1; + @Override + protected Throwable doInBackground(final String[] p1) + { + //Version name + try { + final StringBuilder currentLog = new StringBuilder(); + LoggerJava.LoggerOutputStream logOut = new LoggerJava.LoggerOutputStream(System.out, new LoggerJava.OnCharPrintListener(){ + @Override + public void onCharPrint(char c) + { + currentLog.append(c); + } + }); + LoggerJava.LoggerOutputStream logErr = new LoggerJava.LoggerOutputStream(System.err, new LoggerJava.OnCharPrintListener(){ + @Override + public void onCharPrint(char c) + { + currentLog.append(c); + } + }); + System.setOut(new PrintStream(logOut)); + System.setErr(new PrintStream(logErr)); + + final String downVName = "/" + p1[0] + "/" + p1[0]; + + //Downloading libraries + String inputPath = Tools.versnDir + downVName + "_orig.jar"; + String multidojClientPath = Tools.versnDir + "/" + p1[0] + "/multidoj"; + String patchedFile = multidojClientPath + "/patched" + p1[0] + ".jar"; + + try { + //com.android.dx.mod.Main.debug = true; + + String verJsonDir = Tools.versnDir + downVName + ".json"; + + JMinecraftVersionList.OfflineVersion verInfo = findVersion(p1[0]); + + if (verInfo instanceof JMinecraftVersionList.Version) { + publishProgress("6", "Downloading " + p1[0] + " configuration..."); + Tools.downloadFile( + ((JMinecraftVersionList.Version) verInfo).url, + verJsonDir, + true + ); + } + + zeroProgress(); + + MinecraftVersion verFile = LibrariesManager.getVersionInfo(verJsonDir); + DependentLibrary[] libList = verFile.libraries; + setMax(libList.length * 2 + 5); + + String libPathURL; + File outUndexLib, outDexedLib, outFinishConvert; + + for (final DependentLibrary libItem: libList) { + + if (libItem.name.startsWith("com.google.code.gson:gson") || + libItem.name.startsWith("org.lwjgl.lwjgl:lwjgl") || + libItem.name.startsWith("com.mojang:realms") || + libItem.name.startsWith("net.java.jinput") || + libItem.name.startsWith("tv.twitch") + ) { // They are a blacklist!!! + publishProgress("2", "Ignored " + libItem.name); + //Thread.sleep(100); + } else { + currentLog.setLength(0); + + String[] libInfo = libItem.name.split(":"); + outUndexLib = new File(Tools.libraries + "/" + Tools.artifactToPath(libInfo[0], libInfo[1], libInfo[2]).replace(".jar", "_orig.jar")); + outUndexLib.getParentFile().mkdirs(); + //if (!oker) throw new RuntimeException(".thehell: " + outUndexLib.getParent()); + outDexedLib = new File(Tools.libraries + "/" + Tools.artifactToPath(libInfo[0], libInfo[1], libInfo[2])); // Don't add ".jar" + outFinishConvert = new File(outDexedLib.getParentFile(), "multidoj/finish"); + if (!outFinishConvert.exists()) { + libPathURL = libItem.downloads.artifact.url; + Log.d(Tools.APP_NAME, "Downloading " + libPathURL + " TO FILE " + outUndexLib.getAbsolutePath()); + publishProgress("1", getStr(R.string.mcl_launch_download_lib, libItem.name)); + + + if (!outUndexLib.exists()) { + //toast(outUndexLib.getAbsolutePath()); + Tools.downloadFile( + libPathURL, + outUndexLib.getAbsolutePath(), + true + ); + } + + convertStr = getStr(R.string.mcl_launch_convert_lib, libItem.name); + publishProgress("1", convertStr); + + Tools.runDx(MCLauncherActivity.this, outUndexLib.getAbsolutePath(), outDexedLib.getAbsolutePath(), new MultidojManager.Listen(){ + + @Override + public void onReceived(String step, int maxProg, int currProg) + { + maxSubProgress = maxProg; + valSubProgress = currProg; + publishProgress("0", convertStr + ": (" + currProg + "/" + maxProg + ") " + step, ""); + } + }); + /* + if (!new File(outDexedLib + "/finish").exists()) { + toast("Unable to convert library " + libItem.name + " but still continue. Is it a wrong check?"); + //throw new RuntimeException("Unable to convert library " + libItem.name); + } + */ + + if (!outFinishConvert.exists()) { + Error dxError = new Error("DX Error log recorded:\n" + currentLog.toString()); + dxError.setStackTrace(new StackTraceElement[0]); + throw new RuntimeException(getStr(R.string.error_convert_lib, libItem.name)).initCause(dxError); + } + + outUndexLib.delete(); + } + } + } + + publishProgress("5", getStr(R.string.mcl_launch_download_client) + p1[0]); + outFinishConvert = new File(multidojClientPath, "finish"); + if (!new File(patchedFile).exists()) { + // publishProgress("-1", "DEBUG: PatchedFile=" + patchedPath + ";NonExists!"); + multidojClientPath = findUnpatch(multidojClientPath); + File outFile = new File(multidojClientPath); + if (!outFile.exists() || !outFinishConvert.exists()) { + // publishProgress("-1", "DEBUG: OutFile=" + outFile + ", OutFinish=" + outFinishConvert + ";NonExists!"); + if (!new File(inputPath).exists()) { + currentLog.setLength(0); + + Tools.downloadFile( + verFile.downloads.values().toArray(new MinecraftClientInfo[0])[0].url, + inputPath, + true + ); + + convertStr = getStr(R.string.mcl_launch_convert_client, p1[0]); + publishProgress("5", convertStr); + addProgress = 0; + Tools.runDx(MCLauncherActivity.this, inputPath, new File(multidojClientPath).getParent(), new MultidojManager.Listen(){ + + @Override + public void onReceived(String step, int maxProg, int currProg) + { + maxSubProgress = maxProg; + valSubProgress = currProg; + publishProgress("0", convertStr + " (" + currProg + "/" + maxProg + ") " + step, ""); + } + }); + if (!outFinishConvert.exists()) { + Error dxError = new Error("DX Error log recorded:\n" + currentLog.toString()); + dxError.setStackTrace(new StackTraceElement[0]); + throw new RuntimeException(getStr(R.string.error_convert_client, p1[0])).initCause(dxError); + } + + multidojClientPath = findUnpatch(outFile.getParent()); + + patchAndCleanJar(p1[0], multidojClientPath, patchedFile); + } + } else { + patchAndCleanJar(p1[0], multidojClientPath, patchedFile); + } + } + } catch (Exception e) { + launchWithError = true; + return e; + } + + publishProgress("7", getStr(R.string.mcl_launch_cleancache)); + new File(inputPath).delete(); + new File(multidojClientPath).delete(); + + File unsignedFile = new File(inputPath); + unsignedFile.delete(); + + for (File f : new File(Tools.versnDir).listFiles()) { + if(f.getName().endsWith(".part")) { + Log.d(Tools.APP_NAME, "Cleaning cache: " + f); + f.delete(); + } + } + + isAssetsProcessing = true; + playButton.post(new Runnable(){ + + @Override + public void run() + { + playButton.setText("Skip"); + playButton.setEnabled(true); + } + }); + publishProgress("9", getStr(R.string.mcl_launch_download_assets)); + try { + downloadAssets(p1[0], new File(Tools.ASSETS_PATH)); + } catch (Exception e) { + // Ignore it + launchWithError = false; + } finally { + isAssetsProcessing = false; + } + } catch(Throwable th){ + return th; + } + return null; + } + private int addProgress = 0; // 34 + + public void zeroProgress() + { + addProgress = 0; + } + + public void setMax(final int value) + { + launchProgress.post(new Runnable(){ + + @Override + public void run() + { + launchProgress.setMax(value); + } + }); + } + + private String findUnpatch(String path) { + // publishProgress("-1", "DEBUG: FindmultidojClientPath=" + path + ", ORIG=" + orig + ";NonExists!"); + File[] fcp = new File(path).listFiles(new FilenameFilter(){ + @Override + public boolean accept(File f, String name) + { + // publishProgress("-1", "DEBUG: FindUnpatch=" + f); + return name.startsWith("resources") && name.endsWith(".jar"); + } + }); + return (fcp != null && fcp.length > 0 && fcp[0] != null) ? + fcp[0].getAbsolutePath() : + path + "/null"; + } + + private void patchAndCleanJar(String version, String in, String out) throws Exception { + publishProgress("1", getStr(R.string.mcl_launch_patch_client, version)); + JarSigner.sign(in, out); + new File(in).delete(); + + Tools.clearDuplicateFiles(new File(out).getParentFile()); + } + + @Override + protected void onProgressUpdate(String... p1) + { + int addedProg = Integer.parseInt(p1[0]); + if (addedProg != -1) { + addProgress = addProgress + addedProg; + launchProgress.setProgress(addProgress); + + launchTextStatus.setText(p1[1]); + } + + if (p1.length < 3) consoleView.putLog(p1[1] + (p1.length < 3 ? "\n" : "")); + } + + @Override + protected void onPostExecute(Throwable p1) + { + playButton.setText("Play"); + playButton.setEnabled(true); + launchProgress.setMax(100); + launchProgress.setProgress(0); + statusIsLaunching(false); + if(p1 != null) { + p1.printStackTrace(); + Tools.showError(MCLauncherActivity.this, p1); + } + if(!launchWithError) { + CrashFragment.lastCrashSaved = null; + + try { + /* + List jvmArgs = ManagementFactory.getRuntimeMXBean().getInputArguments(); + jvmArgs.add("-Xms128M"); + jvmArgs.add("-Xmx1G"); + */ + startActivity(new Intent(MCLauncherActivity.this, MainActivity.class)); + } + catch (Throwable e) { + Tools.showError(MCLauncherActivity.this, e); + } + + /* + FloatingIntent maini = new FloatingIntent(MCLauncherActivity.this, MainActivity.class); + maini.startFloatingActivity(); + */ + } + + mTask = null; + } + + private Gson gsonss = new Gson(); + public static final String MINECRAFT_RES = "http://resources.download.minecraft.net/"; + + public JAssets downloadIndex(String versionName, File output) throws Exception { + String versionJson = DownloadUtils.downloadString("http://s3.amazonaws.com/Minecraft.Download/indexes/" + versionName + ".json"); + JAssets version = gsonss.fromJson(versionJson, JAssets.class); + output.getParentFile().mkdirs(); + Tools.write(output.getAbsolutePath(), versionJson.getBytes(Charset.forName("UTF-8"))); + return version; + } + public void downloadAsset(JAssetInfo asset, File objectsDir) throws IOException, Throwable { + String assetPath = asset.hash.substring(0, 2) + "/" + asset.hash; + File outFile = new File(objectsDir, assetPath); + if (!outFile.exists()) { + DownloadUtils.downloadFile(MINECRAFT_RES + assetPath, outFile); + } + } + + public void downloadAssets(String assetsVersion, File outputDir) throws IOException, Throwable { + File hasDownloadedFile = new File(outputDir, "downloaded/" + assetsVersion + ".downloaded"); + if (!hasDownloadedFile.exists()) { + System.out.println("Assets begin time: " + System.currentTimeMillis()); + JAssets assets = downloadIndex(assetsVersion, new File(outputDir, "indexes/" + assetsVersion + ".json")); + Map assetsObjects = assets.objects; + launchProgress.setMax(assetsObjects.size()); + zeroProgress(); + File objectsDir = new File(outputDir, "objects"); + int downloadedSs = 0; + for (JAssetInfo asset : assetsObjects.values()) { + if (!isAssetsProcessing) { + return; + } + + downloadAsset(asset, objectsDir); + publishProgress("1", getStr(R.string.mcl_launch_downloading, assetsObjects.keySet().toArray(new String[0])[downloadedSs])); + downloadedSs++; + } + hasDownloadedFile.getParentFile().mkdirs(); + hasDownloadedFile.createNewFile(); + System.out.println("Assets end time: " + System.currentTimeMillis()); + } + } + } + public View findId(int id) + { + return findViewById(id); + } + private void mkToast(final String str) + { + runOnUiThread(new Runnable() { + public void run() { + Toast.makeText(MCLauncherActivity.this, str, Toast.LENGTH_LONG).show(); + } + }); + } + + public void modManager() + { + File file1 = new File(Tools.mpModEnable); + File file2 = new File(Tools.mpModDisable); + File file3 = new File(Tools.mpModAddNewMo); + file1.mkdirs(); + file2.mkdir(); + try + { + file3.createNewFile(); + } + catch (IOException e){} + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Mods manager (Forge)"); + builder.setPositiveButton(android.R.string.cancel, null); + + AlertDialog dialog = builder.create(); + + MFileListView flv = new MFileListView(this, dialog); + flv.listFileAt(Tools.mainpath + "/ModsManager"); + flv.setFileSelectedListener(new MFileSelectedListener(){ + + @Override + public void onFileLongClick(File file, String path, String nane, String extension) + { + // TODO: Implement this method + } + @Override + public void onFileSelected(File file, String path, String nane, String extension) + { + // TODO: Implement this method + if(extension.equals(".jar")){ + + } + else{ + openSelect(); + } + } + }); + dialog.setView(flv); + dialog.show(); + } + public void openSelect() + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Select a mod to add"); + builder.setPositiveButton(android.R.string.cancel, null); + + AlertDialog dialog = builder.create(); + FileListView flv = new FileListView(this); + + dialog.setView(flv); + dialog.show(); + } + + public void launcherMenu(View view) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.mcl_options); + builder.setItems(R.array.mcl_options, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + switch(p2){ + case 0:{ // Mods manager + modManager(); + } break; + case 1:{ // Check update + checkUpdate(); + } break; + case 2:{ // About + final AlertDialog.Builder aboutB = new AlertDialog.Builder(MCLauncherActivity.this); + aboutB.setTitle(R.string.mcl_option_about); + aboutB.setMessage("" + + + Tools.APP_NAME + " BETA (Minecraft Java launcher for Android), version " + Tools.usingVerName + "\n" + + " - by Tran Khanh Duy (based from \"Boardwalk\" app)\n" + + //"© 2019 Khanh Duy Tran\n" + + "Using libraries:\n" + + " • LWJGL " + org.lwjgl.Sys.getVersion() + "\n" + + //" • Boardwalk memory manager (not used now).\n" + + " • gl4es: OpenGL for OpenGL ES devices by lunixbochs and ptitSeb.\n" + + " • dx: tool to convert java bytecode to dex.\n" + + " • Java AWT Implementation includes:\n" + + " - Boardwalk's makeshift.\n" + + " - OpenJDK 7 codes implementation.\n" + + " - Developer codes (copy text, open browser,...)\n" + + "\n" + + "* Notes:\n" + + " - This app is under development and will not be stable.\n" + + //"* This app will unstable on Android 7.0 or higher devices.\n" + + " - This app only use LWJGL2 and didn't have a JRE8 desugar so 1.13 or above versions will not supported.\n" + + " - This app is not affiliated with Minecraft, Mojang or Microsoft.\n" + + ); + aboutB.setPositiveButton(android.R.string.ok, null); + aboutB.show(); + } break; + } + } + }); + builder.show(); + } + + public void updateAppProcess(final String ver) + { + new Thread(new Runnable(){ + + @Override + public void run() + { + try + { + DownloadUtils.downloadFile(Tools.mhomeUrl + "/installer_" + ver + ".jar", new File(Tools.worksDir + "/installer.jar")); + startActivity(new Intent(MCLauncherActivity.this, UpdateAppActivity.class)); + } + catch (Throwable e) + { + e.printStackTrace(); + mkToast("Download failed: " + e.getMessage()); + } + } + }).start(); + } + public void checkUpdate() + { + final ProgressDialog progUp = new ProgressDialog(this); + progUp.setMessage(getStr(R.string.mcl_option_checkupdate)); + progUp.setCancelable(false); + progUp.show(); + + new Thread(new Runnable(){ + + @Override + public void run() + { + final AlertDialog.Builder alUp = new AlertDialog.Builder(MCLauncherActivity.this); + alUp.setTitle(R.string.mcl_option_checkupdate); + + try { + final int myVer = Tools.usingVerCode; + final String myChamVer = Tools.usingVerName; + + String[] totalNewVer = DownloadUtils.downloadString(Tools.mhomeUrl + "/minever.txt").split(";"); + final int newVer = Integer.parseInt(totalNewVer[1]); + final String newChamVer = totalNewVer[0]; + + //int myVer = 102; + + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + if(newVer != -1){ + boolean isAvailable = myVer < newVer; + + String isNewVerAvailable = + isAvailable ? + "New version available!\nSee changelog at 'Launcher News' tab." : + "This is the latest version!"; + + if (myVer > newVer) { + isNewVerAvailable = "This is an unreleased version or unofficial version?"; + } + + alUp.setMessage( + "Current version: " + myChamVer + "\n" + + "Latest version: " + newChamVer + "\n" + + isNewVerAvailable + ); + if(isAvailable){ + alUp.setPositiveButton("Update", new DialogInterface.OnClickListener(){ + @Override + public void onClick(DialogInterface p1, int p2) + { + updateAppProcess(newChamVer); + } + }); + } + } + else{ + alUp.setMessage("Failed to check for update. Reason: No internet connection"); + } + alUp.setNegativeButton(android.R.string.cancel, null); + alUp.show(); + } + }); + } catch (final Exception e) { + Log.d(Tools.APP_NAME + ".CheckUpdateError", e.getMessage()); + e.printStackTrace(); + + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + alUp.setMessage("Failed to check for update. Reason: " + e.getMessage()); + alUp.show(); + } + }); + } finally { + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + progUp.dismiss(); + } + }); + + } + } + }).start(); + } + + private class ViewPagerAdapter extends FragmentPagerAdapter { + + List fragmentList = new ArrayList<>(); + List fragmentTitles = new ArrayList<>(); + + public ViewPagerAdapter(FragmentManager fragmentManager) { + super(fragmentManager); + } + + @Override + public Fragment getItem(int position) { + return fragmentList.get(position); + } + + @Override + public int getCount() { + return fragmentList.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return fragmentTitles.get(position); + } + + public void addFragment(Fragment fragment, String name) { + fragmentList.add(fragment); + fragmentTitles.add(name); + } + + public void setFragment(int index, Fragment fragment, String name) { + fragmentList.set(index, fragment); + fragmentTitles.set(index, name); + } + + public void removeFragment(int index) { + fragmentList.remove(index); + fragmentTitles.remove(index); + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java b/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java new file mode 100644 index 000000000..846ec790c --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/MCProfile.java @@ -0,0 +1,183 @@ +package net.kdt.pojavlaunch; + +import android.app.*; +import android.content.*; +import android.util.*; +import android.view.*; +import com.kdt.mojangauth.*; +import java.io.*; + +public class MCProfile +{ + private static String[] emptyBuilder = new String[]{ + "1.9", //Version + "ProfileIDEmpty", + "AccessToken", + "AccessTokenEmpty", + "Steve" + }; + + public static void launch(Activity ctx, Object o) + { + PojavProfile.setCurrentProfile(ctx, o); + + Intent intent = new Intent(ctx, PojavV2ActivityManager.getLauncherRemakeVer(ctx)); //MCLauncherActivity.class); + ctx.startActivity(intent); + } + + public static void updateTokens(final Activity ctx, final String pofFilePath, RefreshListener listen) throws Exception + { + new RefreshTokenTask(ctx, listen).execute(pofFilePath); + } + + public static String build(MCProfile.Builder builder) + { + //System.out.println("build THE VER = " + builder.getVersion()); + + try { + byte[] bFull = toString(builder).getBytes("UTF-8"); + Tools.write(Tools.mpProfiles + "/" + builder.getUsername(), bFull); + } catch (Exception e) { + e.printStackTrace(); + } + + return Tools.mpProfiles + "/" + builder.getUsername(); + } + + public static MCProfile.Builder load(String pofFilePath) + { + try { + //String th = new String(new byte[]{-128}); + String pofContent = Tools.read(pofFilePath); + return parse(pofContent); + } catch (Exception e) { + throw new RuntimeException("Unable to load Profile " + pofFilePath, e); + } + } + + public static MCProfile.Builder parse(String content) { + MCProfile.Builder builder = new MCProfile.Builder(); + + String[] profileInfos = content.split(":"); + + String cltk = profileInfos[0]; + String prtk = profileInfos[1]; + String acct = profileInfos[2]; + String name = profileInfos[3]; + String vers = profileInfos[4]; + String isAc = profileInfos[5]; + + //System.out.println("parse THE VER = " + vers); + + builder.setClientID(cltk); + builder.setProfileID(prtk); + builder.setAccessToken(acct); + builder.setUsername(name); + builder.setVersion(vers); + builder.setIsAccount(Boolean.parseBoolean(isAc)); + + return builder; + } + + public static MCProfile.Builder loadSafety(String pofFilePath) { + try { + return load(pofFilePath); + } catch (Exception e) { + e.printStackTrace(); + + // return new MCProfile.Builder(); + return null; + } + } + + public static String toString(String pofFilePath) { + return toString(load(pofFilePath)); + } + + public static String toString(MCProfile.Builder builder) { + //System.out.println("TOSTRING THE VER = " + builder.getVersion()); + + return + builder.getClientID() + ":" + + builder.getProfileID() + ":" + + builder.getAccessToken() + ":" + + builder.getUsername() + ":" + + builder.getVersion() + ":" + + Boolean.toString(builder.isAccount()); + } + + public static class Builder implements Serializable + { + private String[] fullArgs = new String[6]; + private boolean isAccount = true; + + public Builder() + { + fullArgs = emptyBuilder; + String[] fakeTokens = FakeAccount.generate(); + setClientID(fakeTokens[0]); + setProfileID(FakeAccount.generate()[0].replace("-", "")); + setAccessToken(fakeTokens[1]); + } + + public boolean isAccount() + { + return isAccount; + } + + public String getVersion() + { + return fullArgs[0]; + } + + public String getClientID() + { + return fullArgs[1]; + } + + public String getProfileID() + { + return fullArgs[2]; + } + + public String getAccessToken() + { + return fullArgs[3]; + } + + public String getUsername() + { + return fullArgs[4]; + } + + public void setIsAccount(boolean value) + { + isAccount = value; + } + + public void setVersion(String value) + { + fullArgs[0] = value; + } + + public void setClientID(String value) + { + fullArgs[1] = value; + } + + public void setProfileID(String value) + { + fullArgs[2] = value; + } + + public void setAccessToken(String value) + { + fullArgs[3] = value; + } + + public void setUsername(String value) + { + fullArgs[4] = value; + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java new file mode 100644 index 000000000..ee5ca0514 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -0,0 +1,1014 @@ +package net.kdt.pojavlaunch; + +import android.app.*; +import android.content.*; +import android.graphics.*; +import android.graphics.drawable.*; +import android.os.*; +import android.support.design.widget.*; +import android.support.v4.widget.*; +import android.system.*; +import android.util.*; +import android.view.*; +import android.view.View.*; +import android.view.inputmethod.*; +import android.widget.*; +import com.kdt.glsupport.*; +import dalvik.system.*; +import java.io.*; +import java.lang.reflect.*; +import java.util.*; +import javax.microedition.khronos.egl.*; +import javax.microedition.khronos.opengles.*; +import net.kdt.pojavlaunch.exit.*; +import net.kdt.pojavlaunch.libs.*; +import net.minecraft.launchwrapper.*; +import org.lwjgl.input.*; +import org.lwjgl.opengl.*; +import org.lwjgl.util.applet.*; +import org.lwjgl.util.glu.tessellation.*; + +import android.graphics.drawable.Drawable; +import android.view.GestureDetector.*; +import java.util.concurrent.locks.*; +public class MainActivity extends Activity implements OnTouchListener +{ + public static final String initText = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA "; + + private static int[] hotbarKeys = { + Keyboard.KEY_1, Keyboard.KEY_2, Keyboard.KEY_3, + Keyboard.KEY_4, Keyboard.KEY_5, Keyboard.KEY_6, + Keyboard.KEY_7, Keyboard.KEY_8, Keyboard.KEY_9}; + + private boolean rightOverride = false; + private int scaleFactor = 1; + private int fingerStillThreshold = 8; + private int initialX; + private int initialY; + private static final int MSG_LEFT_MOUSE_BUTTON_CHECK = 1028; + private static boolean triggeredLeftMouseButton = false; + private Handler theHandler = new Handler(); + private MinecraftGLView glSurfaceView; + private int guiScale; + private DisplayMetrics displayMetrics; + public boolean hiddenTextIgnoreUpdate = true; + public String hiddenTextContents = initText; + private Button upButton, + downButton, leftButton, + rightButton, jumpButton, + primaryButton, secondaryButton, + debugButton, shiftButton, + keyboardButton, inventoryButton, + talkButton, thirdPersonButton, + screenshotButton, listPlayersButton; + private LinearLayout touchPad; + private ImageView mousePointer; + //private EditText hiddenEditor; + private ViewGroup overlayView; + private Drawable secondaryButtonColorBackground; + private Drawable secondaryButtonDefaultBackground; + private MCProfile.Builder mProfile; + + private DrawerLayout drawerLayout; + private NavigationView navDrawer; + + private LinearLayout contentLog; + private TextView textLog, textLogBehindGL; + private ScrollView contentScroll; + private ToggleButton toggleScrollLog; + + private GestureDetector gestureDetector; + + /* + private LinearLayout contentCanvas; + private AWTSurfaceView contentCanvasView; + */ + private boolean lastEnabled = false; + private boolean lastGrab = false; + private boolean isExited = false; + + private String getStr(int id) { + return getResources().getString(id); + } + + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.main); + + try { + ExitManager.setExitTrappedListener(new ExitManager.ExitTrappedListener(){ + @Override + public void onExitTrapped() + { + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + isExited = true; + + AlertDialog.Builder d = new AlertDialog.Builder(MainActivity.this); + d.setTitle(R.string.mcn_exit_title); + + try { + File crashLog = Tools.lastFileModified(Tools.crashPath); + String crashContent = Tools.read(crashLog.getAbsolutePath()); + if(crashLog != null && crashContent.startsWith("---- Minecraft Crash Report ----")){ + d.setMessage(R.string.mcn_exit_crash); + } else { + fullyExit(); + return; + } + } catch (Throwable th) { + d.setMessage(getStr(R.string.mcn_exit_errcrash) + "\n" + Log.getStackTraceString(th)); + } + d.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + fullyExit(); + } + }); + d.setCancelable(false); + d.show(); + } + }); + } + }); + + try { + ExitManager.disableSystemExit(); + } catch (Throwable th) { + Log.w(Tools.APP_NAME, "Could not disable System.exit() method!", th); + } + + mProfile = PojavProfile.getCurrentProfileContent(this); + + initEnvs(); + System.loadLibrary("gl04es"); + //System.loadLibrary("gl4es"); + this.displayMetrics = Tools.getDisplayMetrics(this); + + AndroidDisplay.windowWidth = displayMetrics.widthPixels / scaleFactor; + AndroidDisplay.windowHeight = displayMetrics.heightPixels / scaleFactor; + System.out.println("WidthHeight: " + AndroidDisplay.windowWidth + ":" + AndroidDisplay.windowHeight); + + gestureDetector = new GestureDetector(this, new SingleTapConfirm()); + + // Menu + drawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_options); + + navDrawer = (NavigationView) findViewById(R.id.main_navigation_view); + navDrawer.setNavigationItemSelectedListener( + new NavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(MenuItem menuItem) { + switch (menuItem.getItemId()) { + case R.id.nav_forceclose: forceCloseSure(); + break; + case R.id.nav_viewlog: openLogOutput(); + break; + case R.id.nav_viewcanvas: //openCanvasOutput(); + } + //Toast.makeText(MainActivity.this, menuItem.getTitle() + ":" + menuItem.getItemId(), Toast.LENGTH_SHORT).show(); + + drawerLayout.closeDrawers(); + return true; + } + }); + + this.upButton = findButton(R.id.control_up); + this.downButton = findButton(R.id.control_down); + this.leftButton = findButton(R.id.control_left); + this.rightButton = findButton(R.id.control_right); + this.jumpButton = findButton(R.id.control_jump); + this.primaryButton = findButton(R.id.control_primary); + this.secondaryButton = findButton(R.id.control_secondary); + this.debugButton = findButton(R.id.control_debug); + this.shiftButton = findButton(R.id.control_shift); + this.keyboardButton = findButton(R.id.control_keyboard); + this.inventoryButton = findButton(R.id.control_inventory); + this.talkButton = findButton(R.id.control_talk); + this.thirdPersonButton = findButton(R.id.control_thirdperson); + this.screenshotButton = findButton(R.id.control_screenshot); + this.listPlayersButton = findButton(R.id.control_listplayers); + this.overlayView = (ViewGroup) findViewById(R.id.main_control_overlay); + this.secondaryButtonDefaultBackground = this.secondaryButton.getBackground(); + this.secondaryButtonColorBackground = new ColorDrawable(-65536); + + //this.hiddenEditor = findViewById(R.id.hiddenTextbox); + + // Mouse pointer part + //this.mouseToggleButton = findButton(R.id.control_togglemouse); + this.touchPad = (LinearLayout) findViewById(R.id.main_touchpad); + this.mousePointer = (ImageView) findViewById(R.id.main_mouse_pointer); + + this.contentLog = (LinearLayout) findViewById(R.id.content_log_layout); + this.contentScroll = (ScrollView) findViewById(R.id.content_log_scroll); + this.textLog = (TextView) contentScroll.getChildAt(0); + this.toggleScrollLog = (ToggleButton) findViewById(R.id.content_log_toggle_scrolldown); + this.toggleScrollLog.setChecked(true); + this.textLogBehindGL = findViewById(R.id.main_log_behind_GL); + this.textLogBehindGL.setTypeface(Typeface.MONOSPACE); + + /* + this.contentCanvas = (LinearLayout) findViewById(R.id.content_canvas_layout); + this.contentCanvasView = (AWTSurfaceView) findViewById(R.id.content_canvas_view); + this.contentCanvasView.startAWTThread(displayMetrics.widthPixels, displayMetrics.heightPixels); + */ + + // this.mirrorView = (ImageView) findViewById(R.id.mainGameSecondRenderView); + + this.textLog.setTypeface(Typeface.MONOSPACE); + + LogWrapper.setAndroidLogReceiver(new LogWrapper.AndroidLogger(){ + + @Override + public void onPrint(String time, String name, String level, String message) + { + appendlnToLog("[" + time + "] [main/" + level + "]: [" + name + "] " + message); + } + }); + + toggleGui(null); + + this.drawerLayout.closeDrawers(); + + placeMouseAt(AndroidDisplay.windowWidth / 2, AndroidDisplay.windowHeight / 2); + new Thread(new Runnable(){ + + private boolean isCapturing = false; + @Override + public void run() + { + while (!isExited) { + mousePointer.post(new Runnable(){ + + @Override + public void run() + { + if (lastGrab && !AndroidDisplay.grab && lastEnabled) { + touchPad.setVisibility(View.VISIBLE); + placeMouseAt(AndroidDisplay.windowWidth / 2, AndroidDisplay.windowHeight / 2); + } + + if (!AndroidDisplay.grab) { + lastEnabled = touchPad.getVisibility() == View.VISIBLE; + } else if (touchPad.getVisibility() != View.GONE) { + touchPad.setVisibility(View.GONE); + } + + if (isPointerCaptureSupported()) { + if (!AndroidDisplay.grab && isCapturing) { + glSurfaceView.releasePointerCapture(); + isCapturing = false; + } else if (AndroidDisplay.grab && !isCapturing) { + glSurfaceView.requestFocus(); + glSurfaceView.requestPointerCapture(); + isCapturing = true; + } + } + + lastGrab = AndroidDisplay.grab; + } + }); + + try { + Thread.sleep(100); + } catch (Throwable th) {} + } + } + }).start(); + + // Touch pad + touchPad.setOnTouchListener(new OnTouchListener(){ + private float prevX, prevY; + @Override + public boolean onTouch(View v, MotionEvent event) { + // MotionEvent reports input details from the touch screen + // and other input controls. In this case, you are only + // interested in events where the touch position changed. + // int index = event.getActionIndex(); + int action = event.getActionMasked(); + + float x = event.getX(); + float y = event.getY(); + + float mouseX = mousePointer.getTranslationX(); + float mouseY = mousePointer.getTranslationY(); + + if (gestureDetector.onTouchEvent(event)) { + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 0, (int) mouseX, (int) (AndroidDisplay.windowHeight - mouseY), 0, System.nanoTime()); + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 1, (int) mouseX, (int) (AndroidDisplay.windowHeight - mouseY), 0, System.nanoTime()); + if (!MainActivity.this.rightOverride) { + AndroidDisplay.mouseLeft = true; + } + + } else { + switch (action) { + /* + case MotionEvent.ACTION_DOWN: // 0 + case MotionEvent.ACTION_POINTER_DOWN: // 5 + if (mVelocityTracker == null) { + mVelocityTracker = VelocityTracker.obtain(); + } + else { + mVelocityTracker.clear(); + } + mVelocityTracker.addMovement(event); + break; + */ + case MotionEvent.ACTION_UP: // 1 + case MotionEvent.ACTION_CANCEL: // 3 + case MotionEvent.ACTION_POINTER_UP: // 6 + if (!MainActivity.this.rightOverride) { + AndroidDisplay.mouseLeft = false; + } + break; + case MotionEvent.ACTION_MOVE: // 2 + try { + mouseX += x - prevX; + mouseY += y - prevY; + if (mouseX <= 0) { + mouseX = 0; + } else if (mouseX >= AndroidDisplay.windowWidth) { + mouseX = AndroidDisplay.windowWidth; + } if (mouseY <= 0) { + mouseY = 0; + } else if (mouseY >= AndroidDisplay.windowHeight) { + mouseY = AndroidDisplay.windowHeight; + } + } finally { + placeMouseAt(mouseX, mouseY); + + AndroidDisplay.mouseX = (int) mouseX; + AndroidDisplay.mouseY = AndroidDisplay.windowHeight - (int) mouseY; + break; + } + } + } + prevX = x; + prevY = y; + return true; + } + }); + } catch (Throwable e) { + e.printStackTrace(); + Tools.showError(this, e, true); + } + + + this.glSurfaceView = (MinecraftGLView) findViewById(R.id.main_game_render_view); + glSurfaceView.setEGLContextClientVersion(2); + + final View.OnTouchListener glTouchListener = new OnTouchListener(){ + + @Override + public boolean onTouch(View p1, MotionEvent e) + { + int x = ((int) e.getX()) / MainActivity.this.scaleFactor; + int y = (MainActivity.this.glSurfaceView.getHeight() - ((int) e.getY())) / MainActivity.this.scaleFactor; + if (MainActivity.this.handleGuiBar(x, y, e)) { + return true; + } else if (!AndroidDisplay.grab && gestureDetector.onTouchEvent(e)) { + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 1, x, y, 0, System.nanoTime()); + if (!MainActivity.this.rightOverride) { + AndroidDisplay.mouseLeft = true; + } + return true; + } else { + AndroidDisplay.mouseX = x; + AndroidDisplay.mouseY = y; + switch (e.getActionMasked()) { + case e.ACTION_DOWN: // 0 + case e.ACTION_POINTER_DOWN: // 5 + if (!MainActivity.this.rightOverride) { + AndroidDisplay.mouseLeft = true; + } + + if (AndroidDisplay.grab) { + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 1, x, y, 0, System.nanoTime()); + MainActivity.this.initialX = x; + MainActivity.this.initialY = y; + MainActivity.this.theHandler.sendEmptyMessageDelayed(MainActivity.MSG_LEFT_MOUSE_BUTTON_CHECK, 500); + break; + } + break; + + case e.ACTION_UP: // 1 + case e.ACTION_CANCEL: // 3 + case e.ACTION_POINTER_UP: // 6 + AndroidDisplay.putMouseEventWithCoords(MainActivity.this.rightOverride ? (byte) 1 : (byte) 0, (byte) 0, x, y, 0, System.nanoTime()); + if (!MainActivity.this.rightOverride) { + AndroidDisplay.mouseLeft = false; + } + + if (AndroidDisplay.grab) { + MainActivity.this.initialX = x; + MainActivity.this.initialY = y; + MainActivity.this.theHandler.sendEmptyMessageDelayed(MainActivity.MSG_LEFT_MOUSE_BUTTON_CHECK, 500); + + if (!MainActivity.this.triggeredLeftMouseButton && Math.abs(MainActivity.this.initialX - x) < MainActivity.this.fingerStillThreshold && Math.abs(MainActivity.this.initialY - y) < MainActivity.this.fingerStillThreshold) { + MainActivity.this.sendMouseButton(1, true); + MainActivity.this.sendMouseButton(1, false); + } + if (MainActivity.this.triggeredLeftMouseButton) { + MainActivity.this.sendMouseButton(0, false); + } + MainActivity.this.triggeredLeftMouseButton = false; + MainActivity.this.theHandler.removeMessages(MainActivity.MSG_LEFT_MOUSE_BUTTON_CHECK); + break; + } + break; + } + } + + return true; + // If onClick fail with false, change back to true + } + }; + glSurfaceView.setOnHoverListener(new View.OnHoverListener(){ + + @Override + public boolean onHover(View p1, MotionEvent p2) + { + if (!AndroidDisplay.grab) { + return glTouchListener.onTouch(p1, p2); + } + return true; + } + }); + glSurfaceView.setOnTouchListener(glTouchListener); + glSurfaceView.setRenderer(new GLTextureView.Renderer() { + @Override + public void onSurfaceDestroyed(GL10 gl) { + Log.d(Tools.APP_NAME, "Surface destroyed."); + } + + @Override + public void onSurfaceCreated(GL10 gl, javax.microedition.khronos.egl.EGLConfig p2) + { + MainActivity.this.calculateMcScale(); + + EGL10 egl10 = (EGL10) EGLContext.getEGL(); + AndroidContextImplementation.theEgl = egl10; + AndroidContextImplementation.context = egl10.eglGetCurrentContext(); + AndroidContextImplementation.display = egl10.eglGetCurrentDisplay(); + AndroidContextImplementation.read = egl10.eglGetCurrentSurface(12378); + AndroidContextImplementation.draw = egl10.eglGetCurrentSurface(12377); + egl10.eglMakeCurrent(AndroidContextImplementation.display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); + System.out.println(new StringBuffer().append("Gave up context: ").append(AndroidContextImplementation.context).toString()); + + new Thread(new Runnable(){ + + @Override + public void run() + { + synchronized (MainActivity.this) { + try + { + Thread.sleep(200); + runCraft(); + } + catch (Throwable e) + { + Tools.showError(MainActivity.this, e, true); + } + } + } + }).start(); + } + @Override + public void onDrawFrame(GL10 gl) { + //mkToast("onDrawFrame"); + + } + @Override + public void onSurfaceChanged(GL10 gl, int width, int height) { + AndroidDisplay.windowWidth = width / MainActivity.this.scaleFactor; + AndroidDisplay.windowHeight = height / MainActivity.this.scaleFactor; + } + }); + glSurfaceView.setPreserveEGLContextOnPause(true); + glSurfaceView.setRenderMode(MinecraftGLView.RENDERMODE_CONTINUOUSLY); + glSurfaceView.requestRender(); + + // Mirror video of OpenGL view. + /* + new Thread(new Runnable(){ + + @Override + public void run() + { + try { + while (true) { + if (bit == null) continue; + runOnUiThread(new Runnable(){ + + @Override + public void run() + { + fillCanvasGL(); + mirrorView.setImageBitmap(bit); + } + }); + + // ~33fps render + Thread.sleep(30); + } + } catch (Throwable th) { + th.printStackTrace(); + } + } + }).start(); + */ + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) + { + AndroidLWJGLKeycode.execKey(this, event, keyCode, false); + return super.onKeyUp(keyCode, event); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) + { + AndroidLWJGLKeycode.execKey(this, event, keyCode, true); + return super.onKeyDown(keyCode, event); + } + + //private Dialog menuDial; + + @Override + public void onResume() { + super.onResume(); + glSurfaceView.requestRender(); + } + + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + /* + if (hasFocus && glSurfaceView.getVisibility() == View.GONE) { + glSurfaceView.setVisibility(View.VISIBLE); + } + */ + } + + @Override + protected void onPause() + { + if (AndroidDisplay.grab){ + onBackPressed(); + } + super.onPause(); + } + + public static void fullyExit() { + ExitManager.stopExitLoop(); + } + /* + private void fillCanvasGL() { + //bit.eraseColor(Color.TRANSPARENT); + //Canvas c = ; + int measuredWidth = View.MeasureSpec.makeMeasureSpec(AndroidDisplay.windowWidth, View.MeasureSpec.EXACTLY); + int measuredHeight = View.MeasureSpec.makeMeasureSpec(AndroidDisplay.windowHeight, View.MeasureSpec.EXACTLY); + + //Cause the view to re-layout + glSurfaceView.measure(measuredWidth, measuredHeight); + glSurfaceView.layout(0, 0, measuredWidth, measuredHeight); + + glSurfaceView.draw(new Canvas(bit)); + } + */ + public void forceUserHome(String s) throws Exception { + Properties props = System.getProperties(); + Class clazz = props.getClass(); + Field f = null; + while (clazz != null) { + try { + f = clazz.getDeclaredField("defaults"); + break; + } catch (Exception e) { + clazz = clazz.getSuperclass(); + } + } + if (f != null) { + f.setAccessible(true); + ((Properties) f.get(props)).put("user.home", s); + } + } + + public void initEnvs() { + try { + Os.setenv("LIBGL_MIPMAP", "3", true); + System.setProperty("user.home", Tools.MAIN_PATH); + if (!System.getProperty("user.home", "/").equals(Tools.MAIN_PATH)) { + forceUserHome(Tools.MAIN_PATH); + } + System.setProperty("org.apache.logging.log4j.level", "INFO"); + System.setProperty("org.apache.logging.log4j.simplelog.level", "INFO"); + //System.setProperty("net.zhuoweizhang.boardwalk.org.apache.logging.log4j.level", "INFO"); + //System.setProperty("net.zhuoweizhang.boardwalk.org.apache.logging.log4j.simplelog.level", "INFO"); + } catch (Exception e) { + Tools.showError(MainActivity.this, e, true); + } + } + + private boolean isPointerCaptureSupported() { + return Build.VERSION.SDK_INT >= 26; + } + + private String[] getMCArgs() + { + String username = mProfile.getUsername(); + String versionName = mProfile.getVersion(); + String mcAssetsDir = Tools.ASSETS_PATH; + String userType = "mojang"; + + File gameDir = new File(Tools.MAIN_PATH + "/gamedir"); + gameDir.mkdirs(); + String[] args = { + "--username", username, + "--version", versionName, + "--gameDir", gameDir.getAbsolutePath(), + "--assetsDir", mcAssetsDir, + "--assetIndex", versionName, + "--uuid", mProfile.getProfileID(), + "--accessToken", mProfile.getAccessToken(), + "--userProperties", "{}", + "--userType", userType + }; + return args; + } + + private void runCraft() throws Throwable + { + // BEGIN KEEPUP + File optDir = getDir("dalvik-cache", 0); + optDir.mkdirs(); + + LoggerJava.OnCharPrintListener printLog = new LoggerJava.OnCharPrintListener(){ + + @Override + public void onCharPrint(char c) + { + appendToLog(Character.toString(c)); + } + }; + + PrintStream theStreamOut = new PrintStream( new LoggerJava.LoggerOutputStream(System.out, printLog)); + System.setOut(theStreamOut); + + PrintStream theStreamErr = new PrintStream(new LoggerJava.LoggerOutputStream(System.err, printLog)); + System.setErr(theStreamErr); + + String classpath = Tools.generate(mProfile.getVersion()); + System.out.println("> Running Minecraft with classpath:"); + System.out.println(classpath); + System.out.println(); + + LaunchClassLoaderAgruments.putAll(classpath, optDir.getAbsolutePath(), getApplicationInfo().nativeLibraryDir); + + LaunchClassLoader loader = new LaunchClassLoader(); // classpath, optDir.getAbsolutePath(), getApplicationInfo().nativeLibraryDir, getClassLoader()); + Class mainClass = loader.loadClass(LibrariesManager.getVersionInfo(Tools.versnDir + "/" + mProfile.getVersion() + "/" + mProfile.getVersion() + ".json").mainClass); + Method mainMethod = mainClass.getMethod("main", String[].class); + mainMethod.setAccessible(true); + mainMethod.invoke(null, new Object[]{getMCArgs()}); + + // Method v6: + + /** + * Pojav Execute arguments. + * + * [0] = argOptdir (eg. "/dir") + * [1] = argNative (eg. "/dir/lib/arm64") + * [2] = classpath (eg. "mc.jar:lib1.jar:...") + * [3] = mainclass (eg. "net.minecraft.client.Minecraft") + */ + } + + public void printStream(InputStream stream) { + try { + BufferedReader buffStream = new BufferedReader(new InputStreamReader(stream)); + String line = null; + while ((line = buffStream.readLine()) != null) { + appendlnToLog(line); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static String fromArray(List arr) { + String s = ""; + for (String exec : arr) { + s = s + " " + exec; + } + return s; + } + + private void openLogOutput() { + WindowAnimation.fadeIn(contentLog, 500); + } + + public void closeLogOutput(View view) { + //scrollLog.setVisibility(View.GONE); + + WindowAnimation.fadeOut(contentLog, 500); + } +/* + private void openCanvasOutput() { + WindowAnimation.fadeIn(contentCanvas, 500); + } + + public void closeCanvasOutput(View view) { + WindowAnimation.fadeOut(contentCanvas, 500); + } +*/ + private void appendlnToLog(String text) { + appendToLog(text + "\n"); + } + + private boolean isLogAllowed = false; + private boolean isFirstLog = true; + private void appendToLog(final String text) { + new Thread(new Runnable(){ + + @Override + public void run() + { + while (!isLogAllowed) { + try { + if (isFirstLog) { + isFirstLog = false; + Thread.sleep(5000); + isLogAllowed = true; + } + + Thread.sleep(100); + } catch (InterruptedException e) {} + } + + textLog.post(new Runnable(){ + private String allText; + @Override + public void run() + { + textLog.append(text); + if (toggleScrollLog.isChecked()) { + contentScroll.fullScroll(ScrollView.FOCUS_DOWN); + } + } + }); + textLogBehindGL.post(new Runnable(){ + + @Override + public void run() + { + textLogBehindGL.append(text); + } + }); + } + }, "PojavLoggerThread").start(); + } + + public void handleMessage(Message msg) { + switch (msg.what) { + case MainActivity.MSG_LEFT_MOUSE_BUTTON_CHECK /*1028*/: + int x = AndroidDisplay.mouseX; + int y = AndroidDisplay.mouseY; + if (AndroidDisplay.grab && Math.abs(MainActivity.this.initialX - x) < MainActivity.this.fingerStillThreshold && Math.abs(MainActivity.this.initialY - y) < MainActivity.this.fingerStillThreshold) { + MainActivity.this.triggeredLeftMouseButton = true; + MainActivity.this.sendMouseButton(0, true); + return; + } + return; + default: + return; + } + } + public int mcscale(int input) { + return this.guiScale * input; + } + + /* + public int randomInRange(int min, int max) { + return min + (int)(Math.random() * (max - min + 1)); + } + */ + + public void toggleMenu(View v) { + drawerLayout.openDrawer(Gravity.RIGHT); + } + + public void placeMouseAdd(float x, float y) { + this.mousePointer.setTranslationX(mousePointer.getTranslationX() + x); + this.mousePointer.setTranslationY(mousePointer.getTranslationY() + y); + } + + public void placeMouseAt(float x, float y) { + this.mousePointer.setTranslationX(x); + this.mousePointer.setTranslationY(y); + } + + public void toggleGui(View view) { + switch(overlayView.getVisibility()){ + case View.VISIBLE: overlayView.setVisibility(View.GONE); + break; + case View.GONE: overlayView.setVisibility(View.VISIBLE); + } + } + + public void toggleMouse(View view) { + if (AndroidDisplay.grab) return; + + boolean isVis = touchPad.getVisibility() == View.VISIBLE; + touchPad.setVisibility(isVis ? View.GONE : View.VISIBLE); + ((Button) view).setText(isVis ? R.string.control_mouseoff: R.string.control_mouseon); + } + + public void forceCloseSure() + { + new AlertDialog.Builder(this) + .setMessage(R.string.mcn_exit_confirm) + .setNegativeButton(android.R.string.cancel, null) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + try { + fullyExit(); + } catch (Throwable th) { + Log.w(Tools.APP_NAME, "Could not enable System.exit() method!", th); + } + + // If we are unable to enable exit, use method: kill myself. + android.os.Process.killProcess(android.os.Process.myPid()); + + // Toast.makeText(MainActivity.this, "Could not exit. Please force close this app.", Toast.LENGTH_LONG).show(); + } + }) + .show(); + } + + private Button findButton(int id) { + Button button = (Button) findViewById(id); + button.setOnTouchListener(this); + return button; + } + + public boolean onTouch(View v, MotionEvent e) { + boolean isDown; + switch (e.getActionMasked()) { + case TessState.T_DORMANT /*0*/: + case AppletLoader.STATE_CHECKING_FOR_UPDATES /*5*/: + isDown = true; + break; + case TessState.T_IN_POLYGON /*1*/: + case AppletLoader.STATE_DETERMINING_PACKAGES /*3*/: + case AppletLoader.STATE_DOWNLOADING /*6*/: + isDown = false; + break; + default: + return false; + } + if (v == this.upButton) { + sendKeyPress(Keyboard.KEY_W, isDown); + } else if (v == this.downButton) { + sendKeyPress(Keyboard.KEY_S, isDown); + } else if (v == this.leftButton) { + sendKeyPress(Keyboard.KEY_A, isDown); + } else if (v == this.rightButton) { + sendKeyPress(Keyboard.KEY_D, isDown); + } else if (v == this.jumpButton) { + sendKeyPress(Keyboard.KEY_SPACE, isDown); + } else if (v == this.primaryButton) { + sendMouseButton(0, isDown); + } else if (v == this.secondaryButton) { + if (AndroidDisplay.grab) { + sendMouseButton(1, isDown); + } else { + setRightOverride(isDown); + } + } else if (v == debugButton) { + sendKeyPress(Keyboard.KEY_F3, isDown); + } else if (v == shiftButton) { + sendKeyPress(Keyboard.KEY_LSHIFT, isDown); + } else if (v == inventoryButton) { + sendKeyPress(Keyboard.KEY_E, isDown); + } else if (v == talkButton) { + sendKeyPress(Keyboard.KEY_T, isDown); + } else if (v == keyboardButton) { + showKeyboard(); + } else if (v == thirdPersonButton) { + sendKeyPress(Keyboard.KEY_F5, isDown); + } else if (v == this.screenshotButton) { + sendKeyPress(Keyboard.KEY_F2, isDown); + } else if (v == this.listPlayersButton) { + sendKeyPress(Keyboard.KEY_TAB, isDown); + } + return false; + } + + @Override + public void onBackPressed() { + sendKeyPress(Keyboard.KEY_ESCAPE); + } + + public void hideKeyboard() { + try { + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); + if (getCurrentFocus() != null && getCurrentFocus().getWindowToken() != null) { + ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow((this).getCurrentFocus().getWindowToken(), 0); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void showKeyboard() { + ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); + } + + private void setRightOverride(boolean val) { + this.rightOverride = val; + this.secondaryButton.setBackgroundDrawable(this.rightOverride ? this.secondaryButtonColorBackground : this.secondaryButtonDefaultBackground); + } + + public void sendKeyPress(int keyCode, boolean status) { + sendKeyPress(keyCode, '\u0000', status); + } + + public void sendKeyPress(int keyCode, char keyChar, boolean status) { + AndroidDisplay.setKey(keyCode, keyChar, status); + } + + public void sendKeyPress(char keyChar) { + sendKeyPress(0, keyChar, true); + sendKeyPress(0, keyChar, false); + } + + public void sendKeyPress(int keyCode) { + sendKeyPress(keyCode, true); + sendKeyPress(keyCode, false); + } + + public void sendMouseButton(int button, boolean status) { + AndroidDisplay.setMouseButtonInGrabMode((byte) button, status ? (byte) 1 : (byte) 0); + } + + public void calculateMcScale() { + int scale = 1; + int screenWidth = AndroidDisplay.windowWidth; + int screenHeight = AndroidDisplay.windowHeight; + while (screenWidth / (scale + 1) >= 320 && screenHeight / (scale + 1) >= 240) { + scale++; + } + this.guiScale = scale; + } + + public boolean handleGuiBar(int x, int y, MotionEvent e) { + if (!AndroidDisplay.grab) { + return false; + } + boolean isDown; + switch (e.getActionMasked()) { + case 0: + case 5: + isDown = true; + break; + case 1: + case 3: + case 6: + isDown = false; + break; + default: + return false; + } + int screenWidth = AndroidDisplay.windowWidth; + int screenHeight = AndroidDisplay.windowHeight; + int barheight = mcscale(20); + int barwidth = mcscale(180); + int barx = (screenWidth / 2) - (barwidth / 2); + if (x < barx || x >= barx + barwidth || y < 0 || y >= 0 + barheight) { + return false; + } + sendKeyPress(hotbarKeys[((x - barx) / mcscale(20)) % 9], isDown); + return true; + } + + private class SingleTapConfirm extends SimpleOnGestureListener + { + @Override + public boolean onSingleTapUp(MotionEvent event) { + return true; + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java b/app/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java new file mode 100644 index 000000000..4404c22f0 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/MinecraftGLView.java @@ -0,0 +1,48 @@ +package net.kdt.pojavlaunch; + +import android.content.*; +import android.util.*; +import android.view.*; +import com.kdt.glsupport.*; + +public class MinecraftGLView extends GLTextureView +{ + private View.OnTouchListener mTouchListener; + public MinecraftGLView(Context context) { + super(context); + //setPreserveEGLContextOnPause(true); + } + + public MinecraftGLView(Context context, AttributeSet attributeSet) { + super(context, attributeSet); + //setPreserveEGLContextOnPause(true); + } +/* + @Override + public void surfaceDestroyed(SurfaceHolder surfaceHolder) { + //super.surfaceDestroyed(surfaceHolder); + System.out.println("Surface destroyed!"); + //new Throwable("Surface destroyed!").printStackTrace(); + } +*/ + @Override + public void setOnTouchListener(View.OnTouchListener l) + { + super.setOnTouchListener(l); + mTouchListener = l; + } + + @Override + public void setOnClickListener(View.OnClickListener l) + { + super.setOnClickListener(l); + } + + @Override + public boolean onCapturedPointerEvent(MotionEvent event) + { + mTouchListener.onTouch(this, event); + return super.onCapturedPointerEvent(event); + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/MultidojManager.java b/app/src/main/java/net/kdt/pojavlaunch/MultidojManager.java new file mode 100644 index 000000000..0be234286 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/MultidojManager.java @@ -0,0 +1,18 @@ +package net.kdt.pojavlaunch; + +public class MultidojManager +{ + private static Listen li; + + public static interface Listen { + public void onReceived(String msg, int max, int current); + } + + public static void setListener(Listen l) { + li = l; + } + + public static void call(String msg, int max, int current) { + if (li != null) li.onReceived(msg, max, current); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java new file mode 100644 index 000000000..99d3e4db0 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java @@ -0,0 +1,26 @@ +package net.kdt.pojavlaunch; + +import android.app.Application; +import android.os.*; +import android.content.pm.PackageManager.*; +import android.content.pm.*; + +public class PojavApplication extends Application +{ + @Override + public void onCreate() + { + super.onCreate(); + try { + Tools.APP_NAME = getResources().getString(R.string.app_short_name); + + PackageInfo thisApp = getPackageManager().getPackageInfo(getPackageName(), 0); + + Tools.usingVerName = thisApp.versionName; + Tools.usingVerCode = thisApp.versionCode; + Tools.mainpath = getDir("files", MODE_PRIVATE).getParent(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java new file mode 100644 index 000000000..43c71b060 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -0,0 +1,618 @@ +package net.kdt.pojavlaunch; + +import android.*; +import android.app.*; +import android.content.*; +import android.content.pm.*; +import android.os.*; +import android.support.annotation.*; +import android.support.v4.app.*; +import android.support.v4.content.*; +import android.util.*; +import android.view.*; +import android.widget.*; +import com.kdt.filermod.*; +import com.kdt.mcgui.app.*; +import com.kdt.mojangauth.*; +import java.io.*; +import java.util.*; +import android.widget.CompoundButton.*; +import android.text.method.*; +import android.system.*; +import android.net.*; +import static android.view.ViewGroup.LayoutParams.*; + +public class PojavLoginActivity extends MineActivity +{ + private EditText edit2, edit3; + private int REQUEST_STORAGE_REQUEST_CODE = 1; + private ProgressBar prb; + private Switch sRemember, sOffline; + + private boolean isPromptingGrant = false; + // private boolean isPermGranted = false; + + private SharedPreferences firstLaunchPrefs; + private String PREF_IS_DONOTSHOWAGAIN_WARN = "isWarnDoNotShowAgain"; + private String PREF_IS_INSTALLED_LIBRARIES = "isLibrariesExtracted"; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState, false); + init(); + } + + private void init() { + firstLaunchPrefs = getSharedPreferences("pojav_extract", MODE_PRIVATE); + new File(Tools.mpProfiles).mkdir(); + + if (isAndroid7() && !firstLaunchPrefs.getBoolean(PREF_IS_DONOTSHOWAGAIN_WARN, false)) { + AlertDialog.Builder startDlg = new AlertDialog.Builder(PojavLoginActivity.this); + startDlg.setTitle(R.string.warning_title); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT); + + LinearLayout conLay = new LinearLayout(this); + conLay.setLayoutParams(params); + conLay.setOrientation(LinearLayout.VERTICAL); + TextView conText = new TextView(this); + conText.setText(R.string.warning_msg); + conText.setLayoutParams(params); + final CheckBox conCheck = new CheckBox(this); + conCheck.setText(R.string.warning_noshowagain); + conCheck.setLayoutParams(params); + conLay.addView(conCheck); + + conLay.addView(conText); + + startDlg.setView(conLay); + startDlg.setCancelable(false); + startDlg.setPositiveButton(R.string.warning_action_install, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + setPref(PREF_IS_DONOTSHOWAGAIN_WARN, conCheck.isChecked()); + + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse("market://details?id=com.vmos.glb")); + startActivity(intent); + } + }); + + startDlg.setNegativeButton(R.string.warning_action_tryanyway, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + setPref(PREF_IS_DONOTSHOWAGAIN_WARN, conCheck.isChecked()); + + new InitTask().execute(); + } + }); + + + startDlg.setNeutralButton(R.string.warning_action_exit, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + finish(); + } + }); + + startDlg.show(); + } else { + new InitTask().execute(); + } + } + + private class InitTask extends AsyncTask{ + private AlertDialog startAle; + private ProgressBar progress; + + private ProgressBar progressSpin; + private EditText progressLog; + private AlertDialog progDlg; + + @Override + protected void onPreExecute() + { + LinearLayout startScr = new LinearLayout(PojavLoginActivity.this); + LayoutInflater.from(PojavLoginActivity.this).inflate(R.layout.start_screen, startScr); + + replaceFonts(startScr); + + progress = (ProgressBar) startScr.findViewById(R.id.startscreenProgress); + //startScr.addView(progress); + + AlertDialog.Builder startDlg = new AlertDialog.Builder(PojavLoginActivity.this, R.style.AppTheme); + startDlg.setView(startScr); + startDlg.setCancelable(false); + + startAle = startDlg.create(); + startAle.show(); + startAle.getWindow().setLayout( + WindowManager.LayoutParams.MATCH_PARENT, + WindowManager.LayoutParams.WRAP_CONTENT + ); + } + + private int revokeCount = -1; + + @Override + protected Integer doInBackground(Void[] p1) + { + try { + Thread.sleep(2000); + } catch (InterruptedException e) {} + + publishProgress("visible"); + + while (Build.VERSION.SDK_INT >= 23 && !isStorageAllowed()){ + try { + revokeCount++; + if (revokeCount >= 3) { + Toast.makeText(PojavLoginActivity.this, R.string.toast_permission_denied, Toast.LENGTH_LONG).show(); + finish(); + } + isPromptingGrant = true; + requestStoragePermission(); + while (isPromptingGrant) { + Thread.sleep(200); + } + + } catch (InterruptedException e) {} + } + + initMain(); + + return 0; + } + + @Override + protected void onProgressUpdate(String... obj) + { + + if (obj[0].equals("visible")) { + progress.setVisibility(View.VISIBLE); + } else if (obj.length == 2 && obj[1] != null) { + progressLog.append(obj[1]); + } + } + + @Override + protected void onPostExecute(Integer obj) { + startAle.dismiss(); + if (progressSpin != null) progressSpin.setVisibility(View.GONE); + if (obj == 0) { + if (progDlg != null) progDlg.dismiss(); + uiInit(); + } else if (progressLog != null) { + progressLog.setText(getResources().getString(R.string.error_checklog, "\n\n" + progressLog.getText())); + } + + } +/* + private void appendlnToLog(String txt) { + publishProgress("", txt + "\n"); + } + + private void execCmd(String cmd) throws Exception { + appendlnToLog("> " + cmd); + ShellProcessOperation mainProcess = new ShellProcessOperation(new ShellProcessOperation.OnPrintListener(){ + + @Override + public void onPrintLine(String text) + { + publishProgress(text); + } + }, cmd); + mainProcess.initInputStream(MCLoginActivity.this); + String msgExit = cmd.split(" ")[0] + " has exited with code " + mainProcess.waitFor(); + if (mainProcess.exitCode() != 0) { + throw new Error("(ERROR) " + msgExit); + } else { + appendlnToLog("(SUCCESS) " + msgExit); + } + } + */ + } + + private void uiInit() { + setContentView(R.layout.launcher_login); + + edit2 = (EditText) findViewById(R.id.launcherAccEmail); + edit3 = (EditText) findViewById(R.id.launcherAccPassword); + if(prb == null) prb = (ProgressBar) findViewById(R.id.launcherAccProgress); + + sRemember = (Switch) findViewById(R.id.launcherAccRememberSwitch); + sOffline = (Switch) findViewById(R.id.launcherAccOffSwitch); + sOffline.setOnCheckedChangeListener(new OnCheckedChangeListener(){ + + @Override + public void onCheckedChanged(CompoundButton p1, boolean p2) + { + // May delete later + edit3.setEnabled(!p2); + } + }); + } + + private boolean isAndroid7() + { + return Build.VERSION.SDK_INT >= 24; + } + + /* + + long lastTime = System.currentTimeMillis(); + long lastDel = 0; + + + private void deAnr(String msg) { + long currt = System.currentTimeMillis(); + lastDel = currt - lastTime; + lastTime = currt; + System.out.println("Time:" + lastDel + "ms||" + (lastDel / 1000) + "s: " + msg); + } + */ + + @Override + public void onResume() { + super.onResume(); + + // Clear current profile + PojavProfile.setCurrentProfile(this, null); + } +/* + private boolean isOpenJDKInstalled() { + return firstLaunchPrefs.getBoolean(PREF_IS_INSTALLED_OPENJDK, false); + } +*/ + private boolean isLibrariesExtracted() { + return firstLaunchPrefs.getBoolean(PREF_IS_INSTALLED_LIBRARIES, false); + } + + private boolean setPref(String prefName, boolean value) { + return firstLaunchPrefs.edit().putBoolean(prefName, value).commit(); + } + + private void initMain() + { + File file0 = new File(Tools.mpProfiles); + File file1 = new File(Tools.mpModEnable); + File file2 = new File(Tools.mpModDisable); + File file3 = new File(Tools.mpModAddNewMo); + + file0.mkdir(); + file1.mkdirs(); + file2.mkdir(); + try { + file3.createNewFile(); + } catch (IOException e){} + + try { + mkdirs(Tools.MAIN_PATH); + + Tools.copyAssetOptional(this, "options.txt", Tools.MAIN_PATH + "/gamedir"); + //Tools.copyAssetToFolderIfNonExist(this, "dx-f" + (isAndroid7() ? "7" : "4") + ".0.jar", Tools.worksDir, "dx.jar"); + Tools.copyAssetOptional(this, "multidoj.dex", Tools.worksDir); + + // Copy ZIP!!! + + //FileAccess.copyAssetToFolderIfNonExist(this, "1.0.jar", Tools.versnDir + "/1.0"); + //FileAccess.copyAssetToFolderIfNonExist(this, "1.7.3.jar", Tools.versnDir + "/1.7.3"); + //FileAccess.copyAssetToFolderIfNonExist(this, "1.7.10.jar", Tools.versnDir + "/1.7.10"); + + // Extract libraries + if (!isLibrariesExtracted()) { + mkdirs(Tools.worksDir); + mkdirs(Tools.versnDir); + + Tools.extractAssetFolder(this, "libraries", Tools.worksDir); + + setPref(PREF_IS_INSTALLED_LIBRARIES, true); + } + } + catch(Exception e){ + Tools.showError(this, e); + } + } + + private boolean mkdirs(String path) + { + File mFileeee = new File(path); + if(mFileeee.getParentFile().exists()) + return mFileeee.mkdir(); + else return mFileeee.mkdirs(); + } + + /* + public void loginUsername(View view) + { + LinearLayout mainLaun = new LinearLayout(this); + LayoutInflater.from(this).inflate(R.layout.launcher_user, mainLaun, true); + replaceFonts(mainLaun); + + //edit1 = mainLaun.findViewById(R.id.launcherAccUsername); + + new AlertDialog.Builder(this) + .setTitle("Register with username") + .setView(mainLaun) + .show(); + + } + */ + + // developer methods + // end dev methods + public void loginSavedAcc(View view) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.login_select_account); + + if (Tools.enableDevFeatures) { + /* + builder.setNegativeButton("Toggle v2", new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + int ver = PojavV2ActivityManager.getLauncherRemakeInt(MCLoginActivity.this) == 0 ? 1 : 0; + PojavV2ActivityManager.setLauncherRemakeVer(MCLoginActivity.this, ver); + Toast.makeText(MCLoginActivity.this, "Changed to use v" + (ver + 1), Toast.LENGTH_SHORT).show(); + } + }); + */ + } + + builder.setPositiveButton(android.R.string.cancel, null); + + final AlertDialog dialog = builder.create(); + + /* + LinearLayout.LayoutParams lpHint, lpFlv; + + lpHint = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + lpFlv = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + lpHint.weight = 1; + lpFlv.weight = 1; + */ + LinearLayout dialay = new LinearLayout(this); + dialay.setOrientation(LinearLayout.VERTICAL); + TextView fhint = new TextView(this); + fhint.setText(R.string.hint_select_account); + // fhint.setLayoutParams(lpHint); + + final MFileListView flv = new MFileListView(this, dialog); + // flv.setLayoutParams(lpFlv); + + flv.listFileAt(Tools.mpProfiles); + flv.setFileSelectedListener(new MFileSelectedListener(){ + + @Override + public void onFileLongClick(final File file, String path, String name, String extension) + { + AlertDialog.Builder builder2 = new AlertDialog.Builder(PojavLoginActivity.this); + builder2.setTitle(name); + builder2.setMessage(R.string.warning_remove_account); + builder2.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + // TODO: Implement this method + file.delete(); + flv.refreshPath(); + } + }); + builder2.setNegativeButton(android.R.string.cancel, null); + builder2.show(); + } + @Override + public void onFileSelected(File file, final String path, String nane, String extension) + { + try + { + if(MCProfile.load(path).isAccount()){ + MCProfile.updateTokens(PojavLoginActivity.this, path, new RefreshListener(){ + + @Override + public void onFailed(Throwable e) + { + Tools.showError(PojavLoginActivity.this, e); + } + + @Override + public void onSuccess() + { + MCProfile.launch(PojavLoginActivity.this, path); + } + }); + } else { + MCProfile.launch(PojavLoginActivity.this, path); + } + + dialog.hide(); + //Tools.throwError(MCLoginActivity.this, new Exception(builder.getAccessToken() + "," + builder.getUUID() + "," + builder.getNickname() + "," + builder.getEmail() + "," + builder.getPassword())); + } + catch (Exception e) + { + Tools.showError(PojavLoginActivity.this, e); + } + } + }); + dialay.addView(fhint); + dialay.addView(flv); + + dialog.setView(dialay); + dialog.show(); + } + + private MCProfile.Builder loginOffline() { + new File(Tools.mpProfiles).mkdir(); + + String text = edit2.getText().toString(); + if(text.isEmpty()){ + edit2.setError(getResources().getString(R.string.login_error_empty_username)); + } else if(text.length() <= 2){ + edit2.setError(getResources().getString(R.string.login_error_short_username)); + } else if(new File(Tools.mpProfiles + "/" + text).exists()){ + edit2.setError(getResources().getString(R.string.login_error_exist_username)); + } else{ + MCProfile.Builder builder = new MCProfile.Builder(); + builder.setIsAccount(false); + builder.setUsername(text); + + return builder; + } + return null; + } + + private MCProfile.Builder mProfile = null; + private AlertDialog warning; + public void loginMC(final View v) + { + /*skip it + + String proFilePath = MCProfile.build(builder); + MCProfile.launchWithProfile(this, proFilePath); + end skip*/ + + if (sOffline.isChecked()) { + AlertDialog.Builder alert = new AlertDialog.Builder(this); + alert.setTitle(R.string.warning_title); + alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + sRemember.setChecked(true); + mProfile = loginOffline(); + playProfile(); + } + }); + + alert.setNegativeButton(R.string.login_offline_alert_skip, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + mProfile = loginOffline(); + playProfile(); + } + }); + + alert.setNeutralButton(android.R.string.cancel, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + mProfile = null; + } + }); + + if (!sRemember.isChecked()) { + alert.setMessage(R.string.login_offline_warning_1); + warning = alert.show(); + } else { + mProfile = loginOffline(); + playProfile(); + } + + /* + while (warning != null && warning.isShowing()) { + } + */ + } else { + new LoginTask().setLoginListener(new LoginListener(){ + + @Override + public void onBeforeLogin() + { + // TODO: Implement this method + v.setEnabled(false); + prb.setVisibility(View.VISIBLE); + } + + @Override + public void onLoginDone(String[] result) + { + // TODO: Implement this method + if(result[0].equals("ERROR")){ + new AlertDialog.Builder(PojavLoginActivity.this) + .setTitle(R.string.error_title) + .setMessage(strArrToString(result)) + .setPositiveButton(android.R.string.ok, null) + .show(); + } + else{ + MCProfile.Builder builder = new MCProfile.Builder(); + builder.setAccessToken(result[1]); + builder.setClientID(result[2]); + builder.setProfileID(result[3]); + builder.setUsername(result[4]); + builder.setVersion("1.7.10"); + + mProfile = builder; + } + v.setEnabled(true); + prb.setVisibility(View.GONE); + + playProfile(); + } + }).execute(edit2.getText().toString(), edit3.getText().toString()); + } + } + + private void playProfile() { + if (mProfile != null) { + String profilePath = null; + if (sRemember.isChecked()) { + profilePath = MCProfile.build(mProfile); + } + + MCProfile.launch(PojavLoginActivity.this, profilePath == null ? mProfile : profilePath); + } + } + + public static String strArrToString(String[] strArr) + { + String[] strArrEdit = strArr; + strArrEdit[0] = ""; + + String str = Arrays.toString(strArrEdit); + str = str.substring(1, str.length() - 1).replace(",", "\n"); + + return str; + } + //We are calling this method to check the permission status + private boolean isStorageAllowed() { + //Getting the permission status + int result1 = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); + int result2 = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); + + //If permission is granted returning true + return result1 == PackageManager.PERMISSION_GRANTED && + result2 == PackageManager.PERMISSION_GRANTED; + } + + //Requesting permission + private void requestStoragePermission() + { + ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_STORAGE_REQUEST_CODE); + } + + //This method will be called when the user will tap on allow or deny + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + + //Checking the request code of our request + if(requestCode == REQUEST_STORAGE_REQUEST_CODE){ + isPromptingGrant = false; + // isPermGranted = grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED; + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java b/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java new file mode 100644 index 000000000..b4f0e8ebc --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavProfile.java @@ -0,0 +1,56 @@ +package net.kdt.pojavlaunch; +import java.io.*; +import android.content.*; + +public class PojavProfile +{ + private static String PROFILE_PREF = "pojav_profile"; + private static String PROFILE_PREF_FILE = "file"; + private static String PROFILE_PREF_CONTENT = "content"; + + private static SharedPreferences getPrefs(Context ctx) { + return ctx.getSharedPreferences(PROFILE_PREF, Context.MODE_PRIVATE); + } + + public static MCProfile.Builder getCurrentProfileContent(Context ctx) { + return MCProfile.parse(getPrefs(ctx).getString(PROFILE_PREF_CONTENT, "")); + } + + public static String getCurrentProfilePath(Context ctx) { + return getPrefs(ctx).getString(PROFILE_PREF_FILE, ""); + } + + public static boolean setCurrentProfile(Context ctx, Object obj) { + SharedPreferences.Editor pref = getPrefs(ctx).edit(); + + try { + if (obj instanceof MCProfile.Builder) { + pref.putString(PROFILE_PREF_CONTENT, MCProfile.toString((MCProfile.Builder) obj)); + } else if (obj instanceof String) { + pref.putString(PROFILE_PREF_FILE, (String) obj); + pref.putString(PROFILE_PREF_CONTENT, MCProfile.toString((String) obj)); + } else if (obj == null) { + pref.putString(PROFILE_PREF_FILE, ""); + pref.putString(PROFILE_PREF_CONTENT, ""); + } else { + throw new IllegalArgumentException("Profile must be MCProfile.Builder.class, String.class or null"); + } + } finally { + return pref.commit(); + } + } + + public static boolean isFileType(Context ctx) { + String profilePath = PojavProfile.getCurrentProfilePath(ctx); + String profileCon = MCProfile.toString(getCurrentProfileContent(ctx)); + if (profileCon.equals(":::::")) { + throw new RuntimeException("Profile not set or reset."); + } + /* + if (true) { + throw new RuntimeException(profilePath + ":" + new File(profilePath).exists()); + } + */ + return new File(profilePath).exists(); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java b/app/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java new file mode 100644 index 000000000..c9e7d073b --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavV2ActivityManager.java @@ -0,0 +1,37 @@ +package net.kdt.pojavlaunch; +import android.content.*; + +public class PojavV2ActivityManager +{ + public static String CATEGORY_LAUNCHER = "launcher"; + public static Class LAUNCHER_V1 = MCLauncherActivity.class; + public static Class LAUNCHER_V2 = LAUNCHER_V1; // PojavLauncherActivity.class; + + public static boolean setLauncherRemakeClass(Context context, Class cls) { + return setLauncherRemakeVer(context, cls.getName().equals(LAUNCHER_V1.getName()) ? 0 : 1); + } + + public static boolean setLauncherRemakeVer(Context context, int i) { + Context context2 = context; + int i2 = i; + if (i2 >= 0 && i2 <= 1) { + return getPref(context2).edit().putInt(CATEGORY_LAUNCHER, i2).commit(); + } else throw new IllegalArgumentException("ver must be 0 or 1"); + } + + public static int getLauncherRemakeInt(Context context) { + if (Tools.enableDevFeatures) { + return getPref(context).getInt(CATEGORY_LAUNCHER, 0); + } else { + return 0; + } + } + + public static Class getLauncherRemakeVer(Context context) { + return getLauncherRemakeInt(context) == 0 ? LAUNCHER_V1 : LAUNCHER_V2; + } + + private static SharedPreferences getPref(Context ctx) { + return ctx.getSharedPreferences("remake", Context.MODE_PRIVATE); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/ShellProcessOperation.java b/app/src/main/java/net/kdt/pojavlaunch/ShellProcessOperation.java new file mode 100644 index 000000000..818e67e11 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/ShellProcessOperation.java @@ -0,0 +1,77 @@ +package net.kdt.pojavlaunch; + +import java.io.*; +import android.app.*; + +public class ShellProcessOperation +{ + private OnPrintListener listener; + private Process process; + + public ShellProcessOperation(OnPrintListener listener) throws IOException { + this.listener = listener; + process = Runtime.getRuntime().exec("/system/bin/sh"); + } + + public ShellProcessOperation(OnPrintListener listener, String command) throws IOException { + this.listener = listener; + process = Runtime.getRuntime().exec( + command + ); //"/system/bin/sh -c \"" + command + "\""); + } + + public void writeToProcess(String cmd) throws IOException { + DataOutputStream os = new DataOutputStream(process.getOutputStream()); + os.writeBytes(cmd + "\n"); + os.flush(); + } + + public void initInputStream(Activity ctx) { + ctx.runOnUiThread(new Runnable(){ + + @Override + public void run() + { + printStream(process.getInputStream()); + printStream(process.getErrorStream()); + } + }); + } + + public int exitCode() { + return process.exitValue(); + } + + public int waitFor() throws InterruptedException { + return process.waitFor(); + } + + public int exit() throws InterruptedException, IOException { + writeToProcess("exit"); + return waitFor(); + } + + private void printStream(final InputStream stream) { + new Thread(new Runnable(){ + + @Override + public void run() + { + try { + BufferedReader buffStream = new BufferedReader(new InputStreamReader(stream)); + String line = null; + while ((line = buffStream.readLine()) != null) { + listener.onPrintLine(line + "\n"); + } + } catch (Exception e) { + e.printStackTrace(); + listener.onPrintLine(e.getMessage() + "\n"); + } + } + }).start(); + } + + public static interface OnPrintListener { + public void onPrintLine(String text); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/Tools.java b/app/src/main/java/net/kdt/pojavlaunch/Tools.java new file mode 100644 index 000000000..1c758013d --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -0,0 +1,507 @@ +package net.kdt.pojavlaunch; + +import android.app.*; +import android.content.*; +import android.content.res.*; +import android.net.*; +import android.os.*; +import android.util.*; +import com.google.gson.*; +import dalvik.system.*; +import java.io.*; +import java.lang.reflect.*; +import java.nio.charset.*; +import java.util.*; +import java.util.zip.*; +import net.kdt.pojavlaunch.util.*; +import net.kdt.pojavlaunch.value.*; +import org.apache.commons.codec.digest.*; +import android.widget.*; + +public final class Tools +{ + public static boolean enableDevFeatures = true; + + public static String APP_NAME = "null"; + public static String MAIN_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/games/minecraft"; + public static String ASSETS_PATH = MAIN_PATH + "/gamedir/assets"; + + public static int usingVerCode = 1; + public static String usingVerName = "2.0"; + public static String mhomeUrl = "http://mineup.eu5.net"; // "http://kdtjavacraft.eu5.net"; + public static String mainpath = "/data/data/net.kdt.pojavlaunch"; + public static String worksDir = mainpath + "/app_working_dir"; + public static String versnDir = worksDir + "/version"; + public static String libraries = worksDir + "/libraries"; + public static String mpProfiles = mainpath + "/Users"; + public static String crashPath = Tools.MAIN_PATH + "/gamedir/crash-reports"; + + public static String mpModEnable = mainpath + "/ModsManager/✅Enabled"; + public static String mpModDisable = mainpath + "/ModsManager/❌Disabled"; + public static String mpModAddNewMo = mainpath + "/ModsManager/➕Add mod"; + + public static String[] versionList = { + "1.7.3", + "1.7.10", + "1.8", + "1.9" + }; + + public static String artifactToPath(String group, String artifact, String version) { + return group.replaceAll("\\.", "/") + "/" + artifact + "/" + version + "/" + artifact + "-" + version + ".jar"; + } + + public static String getPatchedFile(String version) { + return versnDir + "/" + version + "/multidoj/patched" + version + ".jar"; + } + + /* + * Implements to get multidoj dexed folder + */ + //private static boolean isPatched = false; + public static String returnMultidojOrFile(String jarPath, final boolean isClient) + { + //isPatched = false; + + if (new File(jarPath).exists()) { + // Check if jar file is exists + return ":" + jarPath;// + ":"; + } + + StringBuilder sb = new StringBuilder(); + File file = new File(jarPath.substring(0, jarPath.lastIndexOf("/")) + "/multidoj"); + + File[] classes = file.listFiles(new FilenameFilter(){ + + @Override + public boolean accept(File dir, String name) + { + if (isClient) { + if (name.endsWith(".dex") || name.startsWith("patched")) { + return true; + } + } else { + if (name.endsWith(".dex") || name.endsWith(".jar")) { + return true; + } + } + + return false; + } + }); + try { + for (File f : classes) { + sb.append(":" + f.getAbsolutePath());// + ":"); + } + } catch (Exception e) { + // skip broken library + return ""; + } + return ":" + sb.toString(); + } + + // May useless + public static boolean isOptifineInstalled(String version) + { + return new File(versnDir + "/" + version + "/multidoj/optifine.jar").exists(); + } + + public static String generate(String version) throws IOException + { + StringBuilder libStr = new StringBuilder(); //versnDir + "/" + version + "/" + version + ".jar:"; + String[] classpath = Tools.generateLibClasspath(Tools.getVersionInfo(version).libraries); + + libStr.append(returnMultidojOrFile(versnDir + "/" + version + "/" + version + ".jar", true).substring(1)); + //libStr.append(getPatchedFile(version)); + for (String perclass : classpath) { + libStr.append(returnMultidojOrFile(perclass, false)); + } + + return libStr.toString(); + } + + public static DisplayMetrics getDisplayMetrics(Activity ctx) { + DisplayMetrics displayMetrics = new DisplayMetrics(); + ctx.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + return displayMetrics; + } + + public static void extractAssetFolder(Activity ctx, String path, String output) throws Exception + { + AssetManager assetManager = ctx.getAssets(); + String assets[] = null; + try { + assets = assetManager.list(path); + if (assets.length == 0) { + Tools.copyAssetOptional(ctx, path, output); + } else { + String fullPath = output + "/" + path; + File dir = new File(fullPath); + if (!dir.exists()) + dir.mkdir(); + for (String sub : assets) { + extractAssetFolder(ctx, path + "/" + sub, output); + } + } + } catch (Exception e) { + showError(ctx, e); + } + } + + /* + public static void extractLibraries(Activity ctx) throws Exception + { + extractAssetFolder(ctx, "libraries", worksDir); + } + */ + + public static void showError(Activity ctx, Throwable e) + { + showError(ctx, e, false); + } + + public static void showError(final Activity ctx, final Throwable e, final boolean exitIfOk) + { + showError(ctx, e, exitIfOk, false); + } + + private static void showError(final Activity ctx, final Throwable e, final boolean exitIfOk, final boolean showMore) + { + ctx.runOnUiThread(new Runnable(){ + + @Override + public void run() + { + final String errMsg = showMore ? Log.getStackTraceString(e): e.getMessage(); + new AlertDialog.Builder((Context) ctx) + .setTitle(R.string.error_title) + .setMessage(errMsg) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + if(exitIfOk) MainActivity.fullyExit(); + } + }) + .setNegativeButton(showMore ? R.string.error_show_less : R.string.error_show_more, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + showError(ctx, e, exitIfOk, !showMore); + } + }) + .setNeutralButton(android.R.string.copy, new DialogInterface.OnClickListener(){ + + @Override + public void onClick(DialogInterface p1, int p2) + { + ClipboardManager clipboard = (ClipboardManager) ctx.getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("Error", errMsg); + clipboard.setPrimaryClip(clip); + + Toast.makeText(ctx, "Copied to clipboard", Toast.LENGTH_SHORT).show(); + + if(exitIfOk) MainActivity.fullyExit(); + } + }) + //.setNegativeButton("Report (not available)", null) + .setCancelable(!exitIfOk) + .show(); + } + }); + } + + public static void dialogOnUiThread(final Activity ctx, final CharSequence title, final CharSequence message) + { + ctx.runOnUiThread(new Runnable(){ + + @Override + public void run() + { + // TODO: Implement this method + new AlertDialog.Builder(ctx) + .setTitle(title) + .setMessage(message) + .setPositiveButton(android.R.string.ok, null) + .show(); + } + }); + + } + + public static void openURL(Activity act, String url) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + act.startActivity(browserIntent); + } + + public static void clearDuplicateFiles(File f) throws IOException { + List list = Arrays.asList(f.listFiles()); + for (File file : list) { + if (!file.exists()) { + // The file was deleted by duplicate + list.remove(file); + continue; + } + + String md5 = DigestUtils.md5Hex(new FileInputStream(file)); + list.remove(file); + clearDuplicateFilesByMD5(list.toArray(new File[0]), md5); + } + } + + public static void clearDuplicateFilesByMD5(File[] list, String md5Find) throws IOException { + for (File file : list) { + String md5Other = DigestUtils.md5Hex(new FileInputStream(file)); + if (md5Find.equals(md5Other)) { + file.delete(); + } + } + } + + public static String[] generateLibClasspath(DependentLibrary[] libs) + { + List libDir = new ArrayList(); + for (DependentLibrary libItem: libs) { + String[] libInfos = libItem.name.split(":"); + if (libItem.name.equals("net.minecraft:launchwrapper:1.5")) { + libInfos[2] = "1.6"; + libDir.add(Tools.libraries + "/" + Tools.artifactToPath(libInfos[0], libInfos[1], libInfos[2])); + } else { + libDir.add(Tools.libraries + "/" + Tools.artifactToPath(libInfos[0], libInfos[1], libInfos[2])); + } + } + return libDir.toArray(new String[0]); + } + + public static void runDx(final Activity ctx, String fileIn, String fileOut, MultidojManager.Listen listener) throws Exception + { + MultidojManager.setListener(listener); + + File optDir = ctx.getDir("dalvik-cache", 0); + optDir.mkdirs(); + + File out = new File(fileOut); + File newFileOut = new File(out.getParent() + File.separator + "multidoj" + File.separator + "resources" + (System.currentTimeMillis()) + ".jar"); + newFileOut.getParentFile().mkdirs(); + //Class + DexClassLoader mainLoader = new DexClassLoader(Tools.worksDir + "/multidoj.dex", optDir.getAbsolutePath(), ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0).applicationInfo.nativeLibraryDir, MainActivity.class.getClassLoader()); + + String receiveMethod = "net.kdt.pojavlaunch.MultidojManager->call(message:String, max:Integer, current:Integer)"; + mainLoader.loadClass("com.android.dx.observer.ObserverStatus").getMethod("setReceiver", String.class).invoke(null, receiveMethod); + Class mainClass = mainLoader.loadClass("com.android.dx.command.Main"); + Method mainMethod = mainClass.getMethod("main", new String[]{}.getClass()); + mainMethod.invoke(null, new Object[]{new String[]{"--dex", "--output", newFileOut.getAbsolutePath(), fileIn}}); + //com.android.dx.mod.Main.dexTheJar(fileIn, fileOut, ctx.getCacheDir().getAbsolutePath(), listener); + + + //return Runtime.getRuntime().exec("echo IN:" + fileIn + ";OUT:" + fileOut); + } + + public static MinecraftVersion getVersionInfo(String versionName) throws IOException { + File versionFile = new File(Tools.versnDir + "/" + versionName + "/" + versionName + ".json"); + /* + if (!versionFile.exists()) { + return downloadVersionInfo(versionName); + } + */ + byte[] versionDat = new byte[((int) versionFile.length())]; + FileInputStream is = new FileInputStream(versionFile); + is.read(versionDat); + is.close(); + return new Gson().fromJson(new String(versionDat, Charset.forName("UTF-8")), MinecraftVersion.class); + } + + public static String convertStream(InputStream inputStream, Charset charset) throws IOException { + + StringBuilder stringBuilder = new StringBuilder(); + String line = null; + + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, charset))) { + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + } + } + + return stringBuilder.toString(); + } + + // Current Useless below but keep it for future usage. + public static void deleteRecursive(File fileOrDirectory) { + try { + if (fileOrDirectory.isDirectory()) { + for (File child : fileOrDirectory.listFiles()) { + deleteRecursive(child); + } + } + } finally { + fileOrDirectory.delete(); + } + } + + public static File lastFileModified(String dir) { + File fl = new File(dir); + File[] files = fl.listFiles(new FileFilter() { + public boolean accept(File file) { + return file.isFile(); + } + }); + long lastMod = Long.MIN_VALUE; + File choice = null; + for (File file : files) { + if (file.lastModified() > lastMod) { + choice = file; + lastMod = file.lastModified(); + } + } + return choice; + } + + public static byte[] getByteArray(String filePath) throws Exception + { + return getByteArray(new FileInputStream(filePath)); + } + + public static byte[] getByteArray(InputStream stream) throws IOException + { + byte[] bytes = new byte[stream.available()]; + BufferedInputStream buf = new BufferedInputStream(stream); + buf.read(bytes, 0, bytes.length); + buf.close(); + + return bytes; + } + + public static String read(String path) throws Exception + { + return new String(getByteArray(path)); + } + + public static void write(String path, byte[] content) throws Exception + { + FileOutputStream fos = new FileOutputStream(path); + fos.write(content); + fos.close(); + } + + public static void write(String path, String content) throws Exception + { + write(path, content.getBytes()); + } + + public static byte[] loadFromAssetToByte(Context ctx, String inFile) { + byte[] tContents = {}; + + try { + InputStream stream = ctx.getAssets().open(inFile); + + int size = stream.available(); + byte[] buffer = new byte[size]; + stream.read(buffer); + stream.close(); + tContents = buffer; + } catch (IOException e) { + // Handle exceptions here + e.printStackTrace(); + } + return tContents; + } + + public static void copyAssetOptional(Context ctx, String fileName, String output) throws Exception + { + copyAssetOptional(ctx, fileName, output, fileName); + } + + public static void copyAssetOptional(Context ctx, String fileName, String output, String outputName) throws Exception + { + try { + File file = new File(output); + if(!file.exists()) file.mkdirs(); + File file2 = new File(output + "/" + outputName); + if(!file2.exists()){ + if (!file2.createNewFile()) throw new RuntimeException("Unable to write " + output + "/" + outputName); + write(file2.getAbsolutePath(), loadFromAssetToByte(ctx, fileName)); + } + } catch (Throwable th) { + throw new RuntimeException("Unable to copy " + fileName + " to " + output + "/" + outputName, th); + } + } + public static void downloadFile(String urlInput, String nameOutput, boolean requireNonExist) throws Throwable + { + File fileDDD = new File(nameOutput); + if(requireNonExist && !fileDDD.exists()) + { + DownloadUtils.downloadFile(urlInput, fileDDD); + } + } + public static class ZipTool + { + private ZipTool(){} + public static void zip(List files, File zipFile) throws IOException { + final int BUFFER_SIZE = 2048; + + BufferedInputStream origin = null; + ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile))); + + try { + byte data[] = new byte[BUFFER_SIZE]; + + for (File file : files) { + FileInputStream fileInputStream = new FileInputStream( file ); + + origin = new BufferedInputStream(fileInputStream, BUFFER_SIZE); + + try { + ZipEntry entry = new ZipEntry(file.getName()); + + out.putNextEntry(entry); + + int count; + while ((count = origin.read(data, 0, BUFFER_SIZE)) != -1) { + out.write(data, 0, count); + } + } + finally { + origin.close(); + } + } + } finally { + out.close(); + } + } + public static void unzip(File zipFile, File targetDirectory) throws IOException { + final int BUFFER_SIZE = 1024; + ZipInputStream zis = new ZipInputStream( + new BufferedInputStream(new FileInputStream(zipFile))); + try { + ZipEntry ze; + int count; + byte[] buffer = new byte[BUFFER_SIZE]; + while ((ze = zis.getNextEntry()) != null) { + File file = new File(targetDirectory, ze.getName()); + File dir = ze.isDirectory() ? file : file.getParentFile(); + if (!dir.isDirectory() && !dir.mkdirs()) + throw new FileNotFoundException("Failed to ensure directory: " + + dir.getAbsolutePath()); + if (ze.isDirectory()) + continue; + FileOutputStream fout = new FileOutputStream(file); + try { + while ((count = zis.read(buffer)) != -1) + fout.write(buffer, 0, count); + } finally { + fout.close(); + } + /* if time should be restored as well + long time = ze.getTime(); + if (time > 0) + file.setLastModified(time); + */ + } + } finally { + zis.close(); + } + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/UpdateAppActivity.java b/app/src/main/java/net/kdt/pojavlaunch/UpdateAppActivity.java new file mode 100644 index 000000000..29a83f0e2 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/UpdateAppActivity.java @@ -0,0 +1,62 @@ +package net.kdt.pojavlaunch; + +import android.app.*; +import android.graphics.*; +import android.os.*; +import android.widget.*; +import dalvik.system.*; +import java.io.*; +import java.lang.reflect.*; +import net.kdt.pojavlaunch.*; +import net.kdt.pojavlaunch.libs.*; +import android.util.*; + +public class UpdateAppActivity extends Activity +{ + private ProgressBar progress; + private TextView logView; + private boolean cancelable = false; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.launcher_update); + + progress = (ProgressBar) findViewById(R.id.launcherupdateProgressBar); + logView = (TextView) findViewById(R.id.launcherupdateLogView); + logView.setTypeface(Typeface.MONOSPACE); + + File inst = new File(Tools.worksDir + "/installer.jar"); + + try { + File optDir = getDir("dalvik-cache", 0); + optDir.mkdirs(); + + DexClassLoader mainLoader = new DexClassLoader(inst.getAbsolutePath(), optDir.getAbsolutePath(), getPackageManager().getPackageInfo(getPackageName(), 0).applicationInfo.nativeLibraryDir, MainActivity.class.getClassLoader()); + Class mClass = mainLoader.loadClass("Main"); + Method method = mClass.getMethod("main", UpdateAppActivity.class); + method.invoke(null, this); + + } catch (Throwable th) { + putLog("----- AN ERROR OCCURRED -----"); + putLog(Log.getStackTraceString(th)); + putLog("----- FAILED TO UPDATE! -----"); + } finally { + cancelable = true; + } + } + public void putLog(String message) + { + logView.append(message + "\n"); + } + public ProgressBar getProgressBar() + { + return progress; + } + @Override + public void onBackPressed() + { + if (cancelable) super.onBackPressed(); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/WindowAnimation.java b/app/src/main/java/net/kdt/pojavlaunch/WindowAnimation.java new file mode 100644 index 000000000..5a1519e91 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/WindowAnimation.java @@ -0,0 +1,62 @@ +package net.kdt.pojavlaunch; + +import android.view.*; + +public class WindowAnimation +{ + public static void fadeIn(final View view, int duration) { + // 0.1 -> 1.0 + doFade(view, true, duration); + } + + public static void fadeOut(final View view, int duration) { + // 1.0 -> 0.1 + doFade(view, false, duration); + } + + private static void doFade(final View view, final boolean fadeIn, int duration) { + final long millis = ((long) duration) / 10l; + + view.setVisibility(View.VISIBLE); + view.setAlpha(fadeIn ? 0 : 1); + view.setEnabled(false); + new Thread(new Runnable(){ + private float alpha = fadeIn ? 0 : 1; + @Override + public void run() + { + try { + while (fadeIn ? alpha < 1 : alpha > 0) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) {} + + if (fadeIn) alpha += 0.1; + else alpha -= 0.1; + + view.post(new Runnable(){ + + @Override + public void run() + { + view.setAlpha(alpha); + } + }); + } + } finally { + view.post(new Runnable(){ + + @Override + public void run() + { + if (fadeIn) view.setEnabled(true); + else { + view.setVisibility(View.GONE); + } + } + }); + } + } + }).start(); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/exit/ExitManager.java b/app/src/main/java/net/kdt/pojavlaunch/exit/ExitManager.java new file mode 100644 index 000000000..66e8a8c31 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/exit/ExitManager.java @@ -0,0 +1,69 @@ +package net.kdt.pojavlaunch.exit; + +import java.lang.reflect.*; + +public class ExitManager { + private static boolean stopLoop = false; + + private static ExitTrappedListener listener; + private static Thread exitTrappedHook = new Thread(new Runnable(){ + + @Override + public void run() + { + if (listener != null) listener.onExitTrapped(); + // Pre-check + // if (stopLoop) stopLoop = false; + + while (true) { + if (stopLoop) { + stopLoop = false; + break; + } + + // Make Thread hook never stop, then System.exit() never continue! + try { + Thread.sleep(1000); + } catch (InterruptedException e) {} + } + + stopLoop = false; + } + }); + + public static void setExitTrappedListener(ExitTrappedListener l) { + listener = l; + } + + public static void stopExitLoop() { + stopLoop = true; + } + + public static void disableSystemExit() // throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException + { + // changeRuntimeExitDisabled(true); + + Runtime.getRuntime().addShutdownHook(exitTrappedHook); + } + + public static void enableSystemExit() // throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException + { + // changeRuntimeExitDisabled(false); + + + Runtime.getRuntime().removeShutdownHook(exitTrappedHook); + } + + // It's not safe. Add/Remove shutdown hooks will cause error. + private static void changeRuntimeExitDisabled(boolean value) throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException { + Runtime run = Runtime.getRuntime(); + Field shutdownField = run.getClass().getDeclaredField("shuttingDown"); + shutdownField.setAccessible(true); + shutdownField.set(run, value); + } + + + public static interface ExitTrappedListener { + public void onExitTrapped(); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/exit/ExitTrappedException.java b/app/src/main/java/net/kdt/pojavlaunch/exit/ExitTrappedException.java new file mode 100644 index 000000000..b5cb3d167 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/exit/ExitTrappedException.java @@ -0,0 +1,12 @@ +package net.kdt.pojavlaunch.exit; + +public class ExitTrappedException extends RuntimeException +{ + public ExitTrappedException() { + super(); + } + + public ExitTrappedException(String message) { + super(message); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/libs/LibrariesManager.java b/app/src/main/java/net/kdt/pojavlaunch/libs/LibrariesManager.java new file mode 100644 index 000000000..6641fb681 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/libs/LibrariesManager.java @@ -0,0 +1,15 @@ +package net.kdt.pojavlaunch.libs; + +import com.google.gson.*; +import java.io.*; +import java.nio.charset.*; +import net.kdt.pojavlaunch.value.*; +import net.kdt.pojavlaunch.*; + +public class LibrariesManager +{ + public static MinecraftVersion getVersionInfo(String versionJsonDir) throws Exception { + String versionStr = Tools.read(versionJsonDir); + return new Gson().fromJson(versionStr, MinecraftVersion.class); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.java b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.java new file mode 100644 index 000000000..e7cdd7ade --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/ConsoleFragment.java @@ -0,0 +1,73 @@ +package net.kdt.pojavlaunch.mcfragments; + +import android.os.*; +import android.support.annotation.*; +import android.support.v4.app.*; +import android.view.*; +import android.widget.*; +import java.io.*; +import net.kdt.pojavlaunch.*; +import android.util.*; +import android.graphics.*; + +public class ConsoleFragment extends Fragment +{ + public TextView consoleView; + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + View view = inflater.inflate(R.layout.lmaintab_consolelog, container, false); + + consoleView = (TextView) view.findViewById(R.id.lmaintabconsoleLogTextView); + consoleView.setTypeface(Typeface.MONOSPACE); + consoleView.setHint("No log"); + + return view; + } + + @Override + public void onActivityCreated(Bundle p1) + { + super.onActivityCreated(p1); + /* + new Thread(new Runnable(){ + @Override + public void run() + { + while (true) { + try { + Thread.sleep(100); + } catch (InterruptedException e) {} + + final String popLog = ConsoleFragmentHelper.popLog(); + if (!popLog.isEmpty()) { + getActivity().runOnUiThread(new Runnable(){ + @Override + public void run() + { + consoleView.append(popLog); + System.out.println("OKAY? " + popLog); + } + }); + } + } + } + }).start(); + */ + } + + @Override + public void onResume() + { + super.onResume(); + consoleView = (TextView) getView().findViewById(R.id.lmaintabconsoleLogTextView); + } + + public void putLog(String str) { + if (consoleView == null) { + consoleView = (TextView) getView().findViewById(R.id.lmaintabconsoleLogTextView); + } + + consoleView.append(str); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/mcfragments/CrashFragment.java b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/CrashFragment.java new file mode 100644 index 000000000..85b087ed6 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/CrashFragment.java @@ -0,0 +1,72 @@ +package net.kdt.pojavlaunch.mcfragments; + +import android.os.*; +import android.support.annotation.*; +import android.support.v4.app.*; +import android.view.*; +import android.widget.*; +import java.io.*; +import net.kdt.pojavlaunch.*; +import android.util.*; +import android.graphics.*; + +public class CrashFragment extends Fragment +{ + public static String lastCrashSaved = ""; + private String crashContent; + public boolean resetCrashLog = false; + + private TextView crashView; + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + View view = inflater.inflate(R.layout.lmaintab_crashlog, container, false); + + return view; + } + + @Override + public void onActivityCreated(Bundle p1) + { + super.onActivityCreated(p1); + crashView = (TextView) getView().findViewById(R.id.lmaintabconsoleLogCrashTextView); + crashView.setTypeface(Typeface.MONOSPACE); + crashView.setHint("No crash detected."); + + //new File(crashPath).mkdirs(); + } + + @Override + public void onResume() + { + super.onResume(); + refreshCrashFile(); + } + + public static boolean isNewCrash(File crashLog) throws Exception { + String content = Tools.read(crashLog.getAbsolutePath()); + return crashLog != null && content.startsWith("---- Minecraft Crash Report ----"); + } + + public void refreshCrashFile() + { + try { + if(!resetCrashLog){ + File crashLog = Tools.lastFileModified(Tools.crashPath); + + if (isNewCrash(crashLog)) { + crashContent = Tools.read(crashLog.getAbsolutePath()); + Tools.write(crashLog.getAbsolutePath(), "\n" + crashContent); + lastCrashSaved = crashLog.getName(); + crashView.setText(crashContent); + } else if(crashLog.getName().equals(lastCrashSaved)){ + crashView.setText(crashContent); + } + else throw new Exception(); + } + else throw new Exception(); + } catch (Exception e) { + // Can't find crash or no NEW crashes + crashView.setText(""/*Log.getStackTraceString(e)*/); + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/mcfragments/LauncherFragment.java b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/LauncherFragment.java new file mode 100644 index 000000000..f89c141e2 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/mcfragments/LauncherFragment.java @@ -0,0 +1,35 @@ +package net.kdt.pojavlaunch.mcfragments; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.View; +import android.view.ViewGroup; +import android.view.LayoutInflater; +import android.webkit.WebView; +import android.webkit.WebChromeClient; + +import net.kdt.pojavlaunch.R; +import net.kdt.pojavlaunch.*; + +public class LauncherFragment extends Fragment +{ + private WebView webNews; + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + super.onCreateView(inflater, container, savedInstanceState); + View view = inflater.inflate(R.layout.lmaintab_news, container, false); + return view; + } + @Override + public void onActivityCreated(Bundle p1) + { + super.onActivityCreated(p1); + + webNews = (WebView) getView().findViewById(R.id.lmaintabnewsNewsView); + webNews.setWebChromeClient(new WebChromeClient(){}); + webNews.clearCache(true); + webNews.getSettings().setJavaScriptEnabled(true); + webNews.loadUrl(Tools.mhomeUrl + "/changelog.html"); + } + +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/optifine/Optifine.java b/app/src/main/java/net/kdt/pojavlaunch/optifine/Optifine.java new file mode 100644 index 000000000..3eebf1676 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/optifine/Optifine.java @@ -0,0 +1,17 @@ +package net.kdt.pojavlaunch.optifine; + +import com.google.gson.*; +import java.nio.charset.*; +import net.kdt.pojavlaunch.value.*; +import net.kdt.pojavlaunch.util.*; +import java.io.*; +import net.kdt.pojavlaunch.*; + +public class Optifine +{ + public static OptifineVersion.VersionList getList() throws Exception + { + String optifineStr = DownloadUtils.downloadString(Tools.mhomeUrl + "/optifine.json"); + return new Gson().fromJson(optifineStr, OptifineVersion.VersionList.class); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/optifine/OptifineVersion.java b/app/src/main/java/net/kdt/pojavlaunch/optifine/OptifineVersion.java new file mode 100644 index 000000000..c0b145896 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/optifine/OptifineVersion.java @@ -0,0 +1,10 @@ +package net.kdt.pojavlaunch.optifine; + +public class OptifineVersion +{ + public VersionList[] versions; + public static class VersionList { + public String version; + public String linkUrl; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/signer/JarSigner.java b/app/src/main/java/net/kdt/pojavlaunch/signer/JarSigner.java new file mode 100644 index 000000000..b38630d6d --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/signer/JarSigner.java @@ -0,0 +1,107 @@ +package net.kdt.pojavlaunch.signer; + +import android.util.*; +import java.io.*; +import java.util.*; +import java.util.jar.*; +import java.util.zip.*; +import net.kdt.pojavlaunch.*; +//import org.apache.commons.codec.digest.*; +import net.kdt.pojavlaunch.util.*; + +public class JarSigner +{ + private static final String DEX_IN_JAR_NAME = "classes.dex"; + private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF"; + + private TreeMap outputResources = new TreeMap(); + + public static void sign(String inputJar, String outputJar) throws Exception + { + new JarSigner(inputJar, outputJar); + } + private JarSigner(String inputJar, String outputJar) throws Exception + { + ZipFile jarFile = new ZipFile(inputJar); + Enumeration entries = jarFile.entries(); + + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + outputResources.put(entry.getName(), Tools.getByteArray(jarFile.getInputStream(entry))); + } + createJar(outputJar); + } + private byte[] makeManifest() { + StringBuilder baos = new StringBuilder(); + + // First, put some general information: + baos.append("Manifest-Version: 1.0\n"); + baos.append("Created-By: " + Tools.usingVerName + " (" + Tools.APP_NAME + ": JarSigner)\n"); + baos.append("Build-Jdk: 1.6.0_29"); + baos.append("Dex-Location: " + DEX_IN_JAR_NAME + "\n"); + + return baos.toString().getBytes(); + } + private boolean createJar(String fileName) { + /* + * Make or modify the manifest (as appropriate), put the dex + * array into the resources map, and then process the entire + * resources map in a uniform manner. + */ + + try { + byte[] manifest = makeManifest(); + OutputStream out = new FileOutputStream(fileName); + JarOutputStream jarOut = new JarOutputStream(out); + + try { + for (Map.Entry e : outputResources.entrySet()) { + String name = e.getKey(); + byte[] contents = e.getValue(); + JarEntry entry = new JarEntry(name); + int length = contents.length; + entry.setSize(length); + /* + if (args.verbose) { + context.out.println("writing " + name + "; size " + length + "..."); + } + */ + if (name.endsWith(".SF") || + name.endsWith(".RSA")) { + // Remove these files. + continue; + } else if (name.endsWith(MANIFEST_PATH)) { + length = manifest.length; + jarOut.putNextEntry(entry); + jarOut.write(manifest); + jarOut.closeEntry(); + } else { + jarOut.putNextEntry(entry); + jarOut.write(contents); + jarOut.closeEntry(); + } + + } + } finally { + jarOut.finish(); + jarOut.flush(); + closeOutput(out); + } + } catch (Exception ex) { + throw new RuntimeException("Trouble writing output:", ex); + } + + return true; + } + private void closeOutput(OutputStream stream) throws IOException { + if (stream == null) { + return; + } + + stream.flush(); + + if (stream != System.out) { + stream.close(); + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/util/DownloadUtils.java b/app/src/main/java/net/kdt/pojavlaunch/util/DownloadUtils.java new file mode 100644 index 000000000..84012d07e --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/util/DownloadUtils.java @@ -0,0 +1,90 @@ +package net.kdt.pojavlaunch.util; + +import android.util.*; +import java.io.*; +import java.net.*; +import java.nio.charset.*; +import net.kdt.pojavlaunch.*; + +public class DownloadUtils { + public static final String USER_AGENT = Tools.APP_NAME; + public static final Charset utf8 = Charset.forName("UTF-8"); + + public static void download(String url, OutputStream os) { + try { + download(new URL(url), os); + } catch (Throwable malformed) { + throw new RuntimeException(malformed); + } + } + + public static void download(URL url, OutputStream os) throws Throwable { + InputStream is = null; + byte[] buf; // 16384 + try { + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("User-Agent", USER_AGENT); + conn.setConnectTimeout(2000); + conn.setDoInput(true); + conn.connect(); + if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) { + throw new RuntimeException("Server returned HTTP " + conn.getResponseCode() + + ": " + conn.getResponseMessage()); + } + buf = new byte[conn.getContentLength()]; + is = conn.getInputStream(); + IoUtil.pipe(is, os, buf); + } finally { + if (is != null) { + try { + is.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + public static String downloadString(String url) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + download(url, bos); + return new String(bos.toByteArray(), utf8); + } + + public static void downloadFile(String url, File out) throws Throwable { + out.getParentFile().mkdirs(); + File tempOut = File.createTempFile(out.getName(), ".part", out.getParentFile()); + BufferedOutputStream bos = null; + try { + OutputStream bos2 = new BufferedOutputStream(new FileOutputStream(tempOut)); + try { + download(url, bos2); + tempOut.renameTo(out); + if (bos2 != null) { + bos2.close(); + } + if (tempOut.exists()) { + tempOut.delete(); + } + } catch (Throwable th2) { + if (bos != null) { + bos.close(); + } + if (tempOut.exists()) { + tempOut.delete(); + } + throw th2; + } + } catch (Throwable th3) { + + if (bos != null) { + bos.close(); + } + if (tempOut.exists()) { + tempOut.delete(); + } + throw th3; + } + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/util/IoUtil.java b/app/src/main/java/net/kdt/pojavlaunch/util/IoUtil.java new file mode 100644 index 000000000..33d1c2a48 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/util/IoUtil.java @@ -0,0 +1,107 @@ +package net.kdt.pojavlaunch.util; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Enumeration; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; +import net.kdt.pojavlaunch.*; +import android.os.*; + +public class IoUtil { + + //public static volatile boolean cancel = false; + + private IoUtil() { + } + + public static void pipe( /*PojavLauncherActivity activity,*/ InputStream is, OutputStream out, byte[] buf) throws IOException { + while (true) { + //if (cancel) throw new CancelException(); + + int amt = is.read(buf); + if (amt >= 0) { + out.write(buf, 0, amt); + } else { + return; + } + } + } + + public static void copy(File from, File to, byte[] buf) throws IOException { + InputStream in = new FileInputStream(from); + OutputStream out; + try { + out = new FileOutputStream(to); + pipe(in, out, buf); + out.close(); + in.close(); + } catch (Throwable th) { + in.close(); + } + } + + public static void copyZipWithoutEmptyDirectories(File inputFile, File outputFile) throws IOException { + byte[] buf = new byte[8192]; + ZipFile inputZip = new ZipFile(inputFile); + ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(outputFile)); + try { + Enumeration e = inputZip.entries(); + ArrayList sortedList = new ArrayList(); + while (e.hasMoreElements()) { + sortedList.add((ZipEntry) e.nextElement()); + } + Collections.sort(sortedList, new Comparator() { + public int compare(ZipEntry o1, ZipEntry o2) { + return o1.getName().compareTo(o2.getName()); + } + }); + for (int i = sortedList.size() - 1; i >= 0; i--) { + boolean isEmptyDirectory; + ZipEntry inputEntry = (ZipEntry) sortedList.get(i); + String name = inputEntry.getName(); + if (!inputEntry.isDirectory()) { + isEmptyDirectory = false; + } else if (i == sortedList.size() - 1) { + isEmptyDirectory = true; + } else { + isEmptyDirectory = !((ZipEntry) sortedList.get(i + 1)).getName().startsWith(name); + } + if (isEmptyDirectory) { + sortedList.remove(inputEntry); + } else { + outputStream.putNextEntry(new ZipEntry(inputEntry)); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + InputStream is = inputZip.getInputStream(inputEntry); + pipe(is, baos, buf); + is.close(); + outputStream.write(baos.toByteArray()); + } + } + } finally { + outputStream.close(); + } + } + + public static void clearDirectory(File dir) { + File[] fileList = dir.listFiles(); + if (fileList != null) { + for (File f : fileList) { + if (f.isDirectory()) { + clearDirectory(f); + } + f.delete(); + } + } + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java b/app/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java new file mode 100644 index 000000000..fcca16830 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/DependentLibrary.java @@ -0,0 +1,12 @@ +package net.kdt.pojavlaunch.value; + +public class DependentLibrary { + public String name; + public MDownloads downloads; + + public static class MDownloads + { + public MinecraftLibraryArtifact artifact; + } +} + diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java new file mode 100644 index 000000000..9d5ead320 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftClientInfo.java @@ -0,0 +1,8 @@ +package net.kdt.pojavlaunch.value; + +public class MinecraftClientInfo +{ + public String sha1; + public int size; + public String url; +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java new file mode 100644 index 000000000..c55d43b00 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftLibraryArtifact.java @@ -0,0 +1,6 @@ +package net.kdt.pojavlaunch.value; + +public class MinecraftLibraryArtifact extends MinecraftClientInfo +{ + public String path; +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftVersion.java b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftVersion.java new file mode 100644 index 000000000..4f9e75bfd --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/MinecraftVersion.java @@ -0,0 +1,13 @@ +package net.kdt.pojavlaunch.value; + +import java.util.Map; + +public class MinecraftVersion +{ + public String assets; + public Map downloads; + public DependentLibrary[] libraries; + public String mainClass; + public String minecraftArguments; + public int minimumLauncherVersion; +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/views/MineButton.java b/app/src/main/java/net/kdt/pojavlaunch/views/MineButton.java new file mode 100644 index 000000000..bf5edcbf9 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/views/MineButton.java @@ -0,0 +1,5 @@ +package net.kdt.pojavlaunch.views; + +public class MineButton +{ +} diff --git a/app/src/main/java/net/minecraft/client/ClientBrandRetriever.java b/app/src/main/java/net/minecraft/client/ClientBrandRetriever.java new file mode 100644 index 000000000..ce6cf159b --- /dev/null +++ b/app/src/main/java/net/minecraft/client/ClientBrandRetriever.java @@ -0,0 +1,11 @@ +package net.minecraft.client; + +public class ClientBrandRetriever { + public ClientBrandRetriever() { + //ClientBrandRetriever clientBrandRetriever = this; + } + + public static String getClientModName() { + return "PojavLauncher"; + } +} diff --git a/app/src/main/java/net/minecraft/launchwrapper/AlphaVanillaTweaker.java b/app/src/main/java/net/minecraft/launchwrapper/AlphaVanillaTweaker.java new file mode 100644 index 000000000..7bd532e5c --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/AlphaVanillaTweaker.java @@ -0,0 +1,25 @@ +package net.minecraft.launchwrapper; + +import java.io.File; +import java.util.List; + +public class AlphaVanillaTweaker implements ITweaker { + private List args; + + public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { + this.args = args; + } + + public void injectIntoClassLoader(LaunchClassLoader classLoader) { + classLoader.registerTransformer("net.minecraft.launchwrapper.injector.AlphaVanillaTweakInjector"); + } + + public String getLaunchTarget() { + return "net.minecraft.launchwrapper.injector.AlphaVanillaTweakInjector"; + } + + public String[] getLaunchArguments() { + return (String[]) this.args.toArray(new String[this.args.size()]); + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/IClassNameTransformer.java b/app/src/main/java/net/minecraft/launchwrapper/IClassNameTransformer.java new file mode 100644 index 000000000..d1fdbd1f9 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/IClassNameTransformer.java @@ -0,0 +1,8 @@ +package net.minecraft.launchwrapper; + +public interface IClassNameTransformer { + String remapClassName(String str); + + String unmapClassName(String str); +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/IClassTransformer.java b/app/src/main/java/net/minecraft/launchwrapper/IClassTransformer.java new file mode 100644 index 000000000..f796c8488 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/IClassTransformer.java @@ -0,0 +1,6 @@ +package net.minecraft.launchwrapper; + +public interface IClassTransformer { + byte[] transform(String str, String str2, byte[] bArr); +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/ITweaker.java b/app/src/main/java/net/minecraft/launchwrapper/ITweaker.java new file mode 100644 index 000000000..7a6dde2ea --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/ITweaker.java @@ -0,0 +1,15 @@ +package net.minecraft.launchwrapper; + +import java.io.File; +import java.util.List; + +public interface ITweaker { + void acceptOptions(List list, File file, File file2, String str); + + String[] getLaunchArguments(); + + String getLaunchTarget(); + + void injectIntoClassLoader(LaunchClassLoader launchClassLoader); +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/IndevVanillaTweaker.java b/app/src/main/java/net/minecraft/launchwrapper/IndevVanillaTweaker.java new file mode 100644 index 000000000..1dcec383e --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/IndevVanillaTweaker.java @@ -0,0 +1,25 @@ +package net.minecraft.launchwrapper; + +import java.io.File; +import java.util.List; + +public class IndevVanillaTweaker implements ITweaker { + private List args; + + public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { + this.args = args; + } + + public void injectIntoClassLoader(LaunchClassLoader classLoader) { + classLoader.registerTransformer("net.minecraft.launchwrapper.injector.IndevVanillaTweakInjector"); + } + + public String getLaunchTarget() { + return "net.minecraft.launchwrapper.injector.AlphaVanillaTweakInjector"; + } + + public String[] getLaunchArguments() { + return (String[]) this.args.toArray(new String[this.args.size()]); + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/Launch.java b/app/src/main/java/net/minecraft/launchwrapper/Launch.java new file mode 100644 index 000000000..589115402 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/Launch.java @@ -0,0 +1,52 @@ +package net.minecraft.launchwrapper; + +import java.io.*; +import java.lang.reflect.*; +import java.util.logging.*; +import java.util.logging.Level; +import joptsimple.OptionParser; +import joptsimple.OptionSet; +import joptsimple.OptionSpec; + +public class Launch { + private static final String DEFAULT_TWEAK = "net.minecraft.launchwrapper.VanillaTweaker"; + public static File assetsDir; + public static LaunchClassLoader classLoader; + public static File minecraftHome; + + public static void main(String[] args) { + new Launch().launch(args); + } + + private Launch() { + classLoader = (LaunchClassLoader) Thread.currentThread().getContextClassLoader(); // getClass().getClassLoader(); //((URLClassLoader) getClass().getClassLoader()).getURLs()); + } + + private void launch(String[] args) { + OptionParser parser = new OptionParser(); + parser.allowsUnrecognizedOptions(); + OptionSpec profileOption = parser.accepts("version", "The version we launched with").withRequiredArg(); + OptionSpec gameDirOption = parser.accepts("gameDir", "Alternative game directory").withRequiredArg().ofType(File.class); + OptionSpec assetsDirOption = parser.accepts("assetsDir", "Assets directory").withRequiredArg().ofType(File.class); + OptionSpec tweakClassOption = parser.accepts("tweakClass", "Tweak class to load").withRequiredArg().defaultsTo(DEFAULT_TWEAK, new String[0]); + OptionSpec nonOption = parser.nonOptions(); + OptionSet options = parser.parse(args); + minecraftHome = (File) options.valueOf(gameDirOption); + assetsDir = (File) options.valueOf(assetsDirOption); + String profileName = (String) options.valueOf(profileOption); + String tweakClassName = (String) options.valueOf(tweakClassOption); + try { + LogWrapper.log(Level.INFO, "Using tweak class name %s", new Object[]{tweakClassName}); + classLoader.addClassLoaderExclusion(tweakClassName.substring(0, tweakClassName.lastIndexOf(46))); + ITweaker tweaker = (ITweaker) Class.forName(tweakClassName, true, classLoader).newInstance(); + tweaker.acceptOptions(options.valuesOf(nonOption), minecraftHome, assetsDir, profileName); + tweaker.injectIntoClassLoader(classLoader); + Method mainMethod = Class.forName(tweaker.getLaunchTarget(), false, classLoader).getMethod("main", new Class[]{String[].class}); + LogWrapper.info("Launching wrapped minecraft", new Object[0]); + mainMethod.invoke(null, new Object[]{tweaker.getLaunchArguments()}); + } catch (Exception e) { + LogWrapper.log(Level.SEVERE, e, "Unable to launch", new Object[0]); + } + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/LaunchClassLoader.java b/app/src/main/java/net/minecraft/launchwrapper/LaunchClassLoader.java new file mode 100644 index 000000000..22428adb4 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/LaunchClassLoader.java @@ -0,0 +1,489 @@ +package net.minecraft.launchwrapper; + +import dalvik.system.*; +import java.io.*; +import java.net.*; +import java.security.*; +import java.util.*; +import java.util.jar.*; +import java.util.jar.Attributes.*; +import java.util.logging.*; +import net.kdt.pojavlaunch.*; + +public class LaunchClassLoader extends DexClassLoader { + public static final int BUFFER_SIZE = 4096; + private static final boolean DEBUG = Boolean.parseBoolean(System.getProperty("legacy.debugClassLoading", "false")); + private static final boolean DEBUG_FINER; + private static final boolean DEBUG_SAVE; + private static final Manifest EMPTY = new Manifest(); + private static final String[] RESERVED_NAMES = new String[]{"CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"}; + private static File tempFolder = null; + private Map cachedClasses = new HashMap(1000); + private Set classLoaderExceptions = new HashSet(); + private Set invalidClasses = new HashSet(1000); + private final ThreadLocal loadBuffer = new ThreadLocal(); + private Map packageManifests = new HashMap(); + //private ClassLoader parent = getClass().getClassLoader(); + private IClassNameTransformer renameTransformer; + private List sources; + private Set transformerExceptions = new HashSet(); + private List transformers = new ArrayList(2); + + static { + boolean z; + boolean z2 = true; + if (DEBUG && Boolean.parseBoolean(System.getProperty("legacy.debugClassLoadingFiner", "false"))) { + z = true; + } else { + z = false; + } + DEBUG_FINER = z; + if (!(DEBUG && Boolean.parseBoolean(System.getProperty("legacy.debugClassLoadingSave", "false")))) { + z2 = false; + } + DEBUG_SAVE = z2; + } + + protected Package definePackage(String packageName, Manifest manifest, + URL url) throws IllegalArgumentException { + Attributes mainAttributes = manifest.getMainAttributes(); + String dirName = packageName.replace('.', '/') + "/"; + Attributes packageAttributes = manifest.getAttributes(dirName); + boolean noEntry = false; + if (packageAttributes == null) { + noEntry = true; + packageAttributes = mainAttributes; + } + String specificationTitle = packageAttributes + .getValue(Attributes.Name.SPECIFICATION_TITLE); + if (specificationTitle == null && !noEntry) { + specificationTitle = mainAttributes + .getValue(Attributes.Name.SPECIFICATION_TITLE); + } + String specificationVersion = packageAttributes + .getValue(Attributes.Name.SPECIFICATION_VERSION); + if (specificationVersion == null && !noEntry) { + specificationVersion = mainAttributes + .getValue(Attributes.Name.SPECIFICATION_VERSION); + } + String specificationVendor = packageAttributes + .getValue(Attributes.Name.SPECIFICATION_VENDOR); + if (specificationVendor == null && !noEntry) { + specificationVendor = mainAttributes + .getValue(Attributes.Name.SPECIFICATION_VENDOR); + } + String implementationTitle = packageAttributes + .getValue(Attributes.Name.IMPLEMENTATION_TITLE); + if (implementationTitle == null && !noEntry) { + implementationTitle = mainAttributes + .getValue(Attributes.Name.IMPLEMENTATION_TITLE); + } + String implementationVersion = packageAttributes + .getValue(Attributes.Name.IMPLEMENTATION_VERSION); + if (implementationVersion == null && !noEntry) { + implementationVersion = mainAttributes + .getValue(Attributes.Name.IMPLEMENTATION_VERSION); + } + String implementationVendor = packageAttributes + .getValue(Attributes.Name.IMPLEMENTATION_VENDOR); + if (implementationVendor == null && !noEntry) { + implementationVendor = mainAttributes + .getValue(Attributes.Name.IMPLEMENTATION_VENDOR); + } + return definePackage(packageName, specificationTitle, + specificationVersion, specificationVendor, + implementationTitle, implementationVersion, + implementationVendor, //isSealed(manifest, dirName) ? url : null); + isSealed(dirName, manifest) ? url : null); + } + + // ENDED modding part + + public LaunchClassLoader() { //String launchDexPath, String launchOptimizedDirectory, String launchLibrarySearchPath, ClassLoader parentClassLoader) { + super(LaunchClassLoaderAgruments.launchDexPath, LaunchClassLoaderAgruments.launchOptimizedDirectory, LaunchClassLoaderAgruments.launchLibrarySearchPath, LaunchClassLoader.class.getClassLoader()); + //super(launchDexPath, launchOptimizedDirectory, launchLibrarySearchPath, parentClassLoader); + //System.out.println("MinecraftLaunchWrapper: How did Minecraft generated it: " + LaunchClassLoaderAgruments.launchDexPath); + + this.sources = new ArrayList(Arrays.asList(sources)); + Thread.currentThread().setContextClassLoader(this); + addClassLoaderExclusion("java."); + addClassLoaderExclusion("sun."); + addClassLoaderExclusion("org.lwjgl."); + addClassLoaderExclusion("net.minecraft.launchwrapper."); + addTransformerExclusion("javax."); + addTransformerExclusion("argo."); + addTransformerExclusion("org.objectweb.asm."); + addTransformerExclusion("com.google.common."); + addTransformerExclusion("org.bouncycastle."); + addTransformerExclusion("net.minecraft.launchwrapper.injector."); + if (DEBUG_SAVE) { + int x = 1; + tempFolder = new File(Launch.minecraftHome, "CLASSLOADER_TEMP"); + while (tempFolder.exists() && x <= 10) { + int x2 = x + 1; + tempFolder = new File(Launch.minecraftHome, "CLASSLOADER_TEMP" + x); + x = x2; + } + if (tempFolder.exists()) { + LogWrapper.info("DEBUG_SAVE enabled, but 10 temp directories already exist, clean them and try again.", new Object[0]); + tempFolder = null; + return; + } + LogWrapper.info("DEBUG_SAVE Enabled, saving all classes to \"%s\"", new Object[]{tempFolder.getAbsolutePath().replace('\\', '/')}); + tempFolder.mkdirs(); + } + } + + public void registerTransformer(String transformerClassName) { + try { + IClassTransformer transformer = (IClassTransformer) loadClass(transformerClassName).newInstance(); + this.transformers.add(transformer); + if ((transformer instanceof IClassNameTransformer) && this.renameTransformer == null) { + this.renameTransformer = (IClassNameTransformer) transformer; + } + } catch (Exception e) { + LogWrapper.log(Level.SEVERE, e, "A critical problem occurred registering the ASM transformer class %s", new Object[]{transformerClassName}); + } + } + + public Class findClass(String name) throws ClassNotFoundException { + if (this.invalidClasses.contains(name)) { + throw new ClassNotFoundException(name); + } + for (String exception : this.classLoaderExceptions) { + if (name.startsWith(exception)) { + return LaunchClassLoader.class.getClassLoader().loadClass(name); + } + } + if (this.cachedClasses.containsKey(name)) { + return (Class) this.cachedClasses.get(name); + } + for (String exception2 : this.transformerExceptions) { + if (name.startsWith(exception2)) { + try { + Class clazz = super.findClass(name); + this.cachedClasses.put(name, clazz); + return clazz; + } catch (ClassNotFoundException e) { + this.invalidClasses.add(name); + throw e; + } + } + } + try { + String packageName; + String transformedName = transformName(name); + String untransformedName = untransformName(name); + int lastDot = untransformedName.lastIndexOf(46); + if (lastDot == -1) { + packageName = ""; + } else { + packageName = untransformedName.substring(0, lastDot); + } + String fileName = untransformedName.replace('.', '/').concat(".class"); + URLConnection urlConnection = findCodeSourceConnectionFor(fileName); + CodeSigner[] signers = null; + if (lastDot > -1) { + if (!untransformedName.startsWith("net.minecraft.")) { + Package pkg; + if (urlConnection instanceof JarURLConnection) { + JarURLConnection jarURLConnection = (JarURLConnection) urlConnection; + JarFile jarFile = jarURLConnection.getJarFile(); + if (!(jarFile == null || jarFile.getManifest() == null)) { + Manifest manifest = jarFile.getManifest(); + JarEntry entry = jarFile.getJarEntry(fileName); + pkg = getPackage(packageName); + getClassBytes(untransformedName); + signers = entry.getCodeSigners(); + if (pkg == null) { + this.packageManifests.put(definePackage(packageName, manifest, jarURLConnection.getJarFileURL()), manifest); + } else {//JarURLConnection aj; + if (pkg.isSealed()) { + if (!pkg.isSealed(jarURLConnection.getJarFileURL())) { + LogWrapper.severe("The jar file %s is trying to seal already secured path %s", new Object[]{jarFile.getName(), packageName}); + } + } + if (isSealed(packageName, manifest)) { + LogWrapper.severe("The jar file %s has a security seal for path %s, but that path is defined and not secure", new Object[]{jarFile.getName(), packageName}); + } + } + } + } else { + pkg = getPackage(packageName); + if (pkg == null) { + this.packageManifests.put(definePackage(packageName, null, null, null, null, null, null, null), EMPTY); + } else if (pkg.isSealed()) { + LogWrapper.severe("The URL %s is defining elements for sealed path %s", new Object[]{urlConnection.getURL(), packageName}); + } + } + } + } + byte[] transformedClass = runTransformers(untransformedName, transformedName, getClassBytes(untransformedName)); + if (DEBUG_SAVE) { + saveTransformedClass(transformedClass, transformedName); + } + try { + Class clazz = defineClass(transformedName, transformedClass, 0, transformedClass.length); //, new ProtectionDomain(urlConnection == null ? null : new CodeSource(urlConnection.getURL(), signers), getClass().getProtectionDomain().getPermissions())); + this.cachedClasses.put(transformedName, clazz); + return clazz; + } catch (Throwable th) { + // MODDING HERE! + Class clazz = loadClassAnyway(name); + this.cachedClasses.put(transformedName, clazz); + return clazz; + } + } catch (Throwable e2) { + this.invalidClasses.add(name); + if (DEBUG) { + LogWrapper.log(Level.FINEST, e2, "Exception encountered attempting classloading of %s", new Object[]{name}); + } + //ClassNotFoundException classNotFoundException = new ClassNotFoundException(name, e2); + throw new ClassNotFoundException(name, e2); + } + } + + // Mod: + private Class loadClassAnyway(String pkg) { + try { + return Class.forName(pkg); + } catch (Throwable th) {} + + try { + return super.findClass(pkg); + } catch (Throwable th) {} + + try { + return super.loadClass(pkg, true); + } catch (Throwable th) {} + + try { + return getClass().forName(pkg); + } catch (Throwable th) {} + + try { + return getParent().loadClass(pkg); + } catch (Throwable th) {} + + try { + return getSystemClassLoader().loadClass(pkg); + } catch (Throwable th) {} + + try { + return getClass().getClassLoader().loadClass(pkg); + } catch (Throwable th) {} + + try { + return Thread.currentThread().getContextClassLoader().loadClass(pkg); + } catch (Throwable th) {} + + throw new RuntimeException("Unable to find class, out of 9 times"); + } + + private void saveTransformedClass(byte[] data, String transformedName) { + if (tempFolder != null) { + File outFile = new File(tempFolder, transformedName.replace('.', File.separatorChar) + ".class"); + File outDir = outFile.getParentFile(); + if (!outDir.exists()) { + outDir.mkdirs(); + } + if (outFile.exists()) { + outFile.delete(); + } + try { + LogWrapper.fine("Saving transformed class \"%s\" to \"%s\"", new Object[]{transformedName, outFile.getAbsolutePath().replace('\\', '/')}); + OutputStream output = new FileOutputStream(outFile); + output.write(data); + output.close(); + } catch (IOException ex) { + LogWrapper.log(Level.WARNING, ex, "Could not save transformed class \"%s\"", new Object[]{transformedName}); + } + } + } + + private String untransformName(String name) { + if (this.renameTransformer != null) { + return this.renameTransformer.unmapClassName(name); + } + return name; + } + + private String transformName(String name) { + if (this.renameTransformer != null) { + return this.renameTransformer.remapClassName(name); + } + return name; + } + + private boolean isSealed(String path, Manifest manifest) { + Attributes attributes = manifest.getAttributes(path); + String sealed = null; + if (attributes != null) { + sealed = attributes.getValue(Name.SEALED); + } + if (sealed == null) { + attributes = manifest.getMainAttributes(); + if (attributes != null) { + sealed = attributes.getValue(Name.SEALED); + } + } + return "true".equalsIgnoreCase(sealed); + } + + private URLConnection findCodeSourceConnectionFor(String name) { + URL resource = findResource(name); + if (resource == null) { + return null; + } + try { + return resource.openConnection(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private byte[] runTransformers(String name, String transformedName, byte[] basicClass) { + int i = 0; + if (DEBUG_FINER) { + String str = "Beginning transform of %s (%s) Start Length: %d"; + Object[] objArr = new Object[3]; + objArr[0] = name; + objArr[1] = transformedName; + objArr[2] = Integer.valueOf(basicClass == null ? 0 : basicClass.length); + LogWrapper.finest(str, objArr); + for (IClassTransformer transformer : this.transformers) { + int i2; + String transName = transformer.getClass().getName(); + str = "Before Transformer %s: %d"; + objArr = new Object[2]; + objArr[0] = transName; + objArr[1] = Integer.valueOf(basicClass == null ? 0 : basicClass.length); + LogWrapper.finest(str, objArr); + basicClass = transformer.transform(name, transformedName, basicClass); + str = "After Transformer %s: %d"; + objArr = new Object[2]; + objArr[0] = transName; + if (basicClass == null) { + i2 = 0; + } else { + i2 = basicClass.length; + } + objArr[1] = Integer.valueOf(i2); + LogWrapper.finest(str, objArr); + } + String str2 = "Ending transform of %s (%s) Start Length: %d"; + Object[] objArr2 = new Object[3]; + objArr2[0] = name; + objArr2[1] = transformedName; + if (basicClass != null) { + i = basicClass.length; + } + objArr2[2] = Integer.valueOf(i); + LogWrapper.finest(str2, objArr2); + } else { + for (IClassTransformer transformer2 : this.transformers) { + basicClass = transformer2.transform(name, transformedName, basicClass); + } + } + return basicClass; + } + + public void addURL(URL url) { + //super.addURL(url); + this.sources.add(url); + } + + public List getSources() { + return this.sources; + } + + private byte[] readFully(InputStream stream) { + try { + byte[] buffer = getOrCreateBuffer(); + int totalLength = 0; + while (true) { + int read = stream.read(buffer, totalLength, buffer.length - totalLength); + if (read != -1) { + totalLength += read; + if (totalLength >= buffer.length - 1) { + byte[] newBuffer = new byte[(buffer.length + BUFFER_SIZE)]; + System.arraycopy(buffer, 0, newBuffer, 0, buffer.length); + buffer = newBuffer; + } + } else { + byte[] result = new byte[totalLength]; + System.arraycopy(buffer, 0, result, 0, totalLength); + return result; + } + } + } catch (Throwable t) { + LogWrapper.log(Level.WARNING, t, "Problem loading class", new Object[0]); + return new byte[0]; + } + } + + private byte[] getOrCreateBuffer() { + byte[] buffer = (byte[]) this.loadBuffer.get(); + if (buffer != null) { + return buffer; + } + this.loadBuffer.set(new byte[BUFFER_SIZE]); + return (byte[]) this.loadBuffer.get(); + } + + public List getTransformers() { + return Collections.unmodifiableList(this.transformers); + } + + public void addClassLoaderExclusion(String toExclude) { + this.classLoaderExceptions.add(toExclude); + } + + public void addTransformerExclusion(String toExclude) { + this.transformerExceptions.add(toExclude); + } + + public byte[] getClassBytes(String name) throws IOException { + byte[] data; + if (name.indexOf(46) == -1) { + for (String reservedName : RESERVED_NAMES) { + if (name.toUpperCase(Locale.ENGLISH).startsWith(reservedName)) { + data = getClassBytes("_" + name); + if (data != null) { + return data; + } + } + } + } + try { + URL classResource = findResource(name.replace('.', '/').concat(".class")); + if (classResource == null) { + if (DEBUG) { + LogWrapper.finest("Failed to find class resource"); // %s", new Object[]{resourcePath}); + } + closeSilently(null); + return null; + } + InputStream classStream = classResource.openStream(); + if (DEBUG) { + LogWrapper.finest("Loading class %s from resource %s", new Object[]{name, classResource.toString()}); + } + data = readFully(classStream); + closeSilently(classStream); + return data; + } catch (Throwable th) { + closeSilently(null); + // Mod + return null; + } + } + + private static void closeSilently(Closeable closeable) { + if (closeable != null) { + try { + closeable.close(); + } catch (IOException e) { + } + } + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/LogWrapper.java b/app/src/main/java/net/minecraft/launchwrapper/LogWrapper.java new file mode 100644 index 000000000..69bdf7049 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/LogWrapper.java @@ -0,0 +1,102 @@ +package net.minecraft.launchwrapper; + +import java.util.logging.*; +import net.minecraft.launchwrapper.LogWrapper.*; +import java.text.*; +import java.util.*; +import android.util.*; + +public class LogWrapper { + private static boolean configured; + public static LogWrapper log = new LogWrapper(); + + private Logger myLog; + private SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss"); + + // Make Android compatible with java logger + private LogWrapper.AndroidLogger androidLogger; + + private static void configureLogging() { + log.myLog = Logger.getLogger("LaunchWrapper"); + configured = true; + } + + public static void retarget(Logger to) { + log.myLog = to; + } + + public static void log(String logChannel, Level level, String format, Object... data) { + makeLog(logChannel); + String logData = String.format(format, data); + Logger.getLogger(logChannel).log(level, logData); + androidLog(logChannel, level.getName(), logData); + } + + public static void log(Level level, String format, Object... data) { + if (!configured) { + configureLogging(); + } + String logData = String.format(format, data); + log.myLog.log(level, logData); + androidLog("LaunchWrapper", level.getName(), logData); + } + + public static void log(String logChannel, Level level, Throwable ex, String format, Object... data) { + makeLog(logChannel); + String logData = String.format(format, data); + Logger.getLogger(logChannel).log(level, logData, ex); + androidLog(logChannel, level.getName(), logData + "\n" + Log.getStackTraceString(ex)); + } + + public static void log(Level level, Throwable ex, String format, Object... data) { + if (!configured) { + configureLogging(); + } + String logData = String.format(format, data); + log.myLog.log(level, logData, ex); + androidLog("LaunchWrapper", level.getName(), logData + "\n" + Log.getStackTraceString(ex)); + } + + public static void severe(String format, Object... data) { + log(Level.SEVERE, format, data); + } + + public static void warning(String format, Object... data) { + log(Level.WARNING, format, data); + } + + public static void info(String format, Object... data) { + log(Level.INFO, format, data); + } + + public static void fine(String format, Object... data) { + log(Level.FINE, format, data); + } + + public static void finer(String format, Object... data) { + log(Level.FINER, format, data); + } + + public static void finest(String format, Object... data) { + log(Level.FINEST, format, data); + } + + public static void makeLog(String logChannel) { + Logger.getLogger(logChannel).setParent(log.myLog); + } + + // Android compatible add: + private static void androidLog(String name, String level, String data) { + String timeStr = log.time.format(new Date()); + log.androidLogger.onPrint(timeStr, name, level, data); + } + + public static void setAndroidLogReceiver(AndroidLogger logger) { + log.androidLogger = logger; + } + + public static interface AndroidLogger { + public void onPrint(String time, String name, String level, String message); + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/VanillaTweaker.java b/app/src/main/java/net/minecraft/launchwrapper/VanillaTweaker.java new file mode 100644 index 000000000..f0fe403ed --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/VanillaTweaker.java @@ -0,0 +1,25 @@ +package net.minecraft.launchwrapper; + +import java.io.File; +import java.util.List; + +public class VanillaTweaker implements ITweaker { + private List args; + + public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { + this.args = args; + } + + public void injectIntoClassLoader(LaunchClassLoader classLoader) { + classLoader.registerTransformer("net.minecraft.launchwrapper.injector.VanillaTweakInjector"); + } + + public String getLaunchTarget() { + return "net.minecraft.client.Minecraft"; + } + + public String[] getLaunchArguments() { + return (String[]) this.args.toArray(new String[this.args.size()]); + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.java b/app/src/main/java/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.java new file mode 100644 index 000000000..d75aa15ac --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/injector/AlphaVanillaTweakInjector.java @@ -0,0 +1,155 @@ +package net.minecraft.launchwrapper.injector; + +import java.applet.Applet; +import java.applet.AppletStub; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Modifier; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; +import javax.swing.JPanel; +import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraft.launchwrapper.Launch; + +public class AlphaVanillaTweakInjector implements IClassTransformer { + + private static class LauncherFake extends Applet implements AppletStub { + final /* synthetic */ Map map; + + public LauncherFake(Map map) { + this.map = map; + } + + public void appletResize(int width, int height) { + } + + public boolean isActive() { + return true; + } + + public URL getDocumentBase() { + try { + return new URL("http://www.minecraft.net/game/"); + } catch (MalformedURLException e) { + e.printStackTrace(); + return null; + } + } + + public URL getCodeBase() { + try { + return new URL("http://www.minecraft.net/game/"); + } catch (MalformedURLException e) { + e.printStackTrace(); + return null; + } + } + + public String getParameter(String paramName) { + if (this.map.containsKey(paramName)) { + return (String) this.map.get(paramName); + } + System.err.println("Client asked for parameter: " + paramName); + return null; + } + } + + public byte[] transform(String name, String transformedName, byte[] bytes) { + return bytes; + } + + public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { + Class clazz; + try { + clazz = getaClass("net.minecraft.client.MinecraftApplet"); + } catch (ClassNotFoundException e) { + clazz = getaClass("com.mojang.minecraft.MinecraftApplet"); + } + System.out.println("AlphaVanillaTweakInjector.class.getClassLoader() = " + AlphaVanillaTweakInjector.class.getClassLoader()); + Object object = clazz.getConstructor(new Class[0]).newInstance(new Object[0]); + for (Field field : clazz.getDeclaredFields()) { + String name = field.getType().getName(); + if (!(name.contains("awt") || name.contains("java") || name.equals("long"))) { + System.out.println("Found likely Minecraft candidate: " + field); + Field fileField = getWorkingDirField(name); + if (fileField != null) { + System.out.println("Found File, changing to " + Launch.minecraftHome); + fileField.setAccessible(true); + fileField.set(null, Launch.minecraftHome); + break; + } + } + } + startMinecraft((Applet) object, args); + } + + private static void startMinecraft(final Applet applet, String[] args) { + Map params = new HashMap(); + String name = "Player" + (System.currentTimeMillis() % 1000); + if (args.length > 0) { + name = args[0]; + } + String sessionId = "-"; + if (args.length > 1) { + sessionId = args[1]; + } + params.put("username", name); + params.put("sessionid", sessionId); + Frame launcherFrameFake = new Frame(); + launcherFrameFake.setTitle("Minecraft"); + launcherFrameFake.setBackground(Color.BLACK); + JPanel panel = new JPanel(); + launcherFrameFake.setLayout(new BorderLayout()); + panel.setPreferredSize(new Dimension(854, 480)); + launcherFrameFake.add(panel, "Center"); + launcherFrameFake.pack(); + launcherFrameFake.setLocationRelativeTo(null); + launcherFrameFake.setVisible(true); + launcherFrameFake.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + System.exit(1); + } + }); + + LauncherFake fakeLauncher = new LauncherFake(params); + applet.setStub(fakeLauncher); + fakeLauncher.setLayout(new BorderLayout()); + fakeLauncher.add(applet, "Center"); + fakeLauncher.validate(); + launcherFrameFake.removeAll(); + launcherFrameFake.setLayout(new BorderLayout()); + launcherFrameFake.add(fakeLauncher, "Center"); + launcherFrameFake.validate(); + + applet.init(); + applet.start(); + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + applet.stop(); + } + }); + VanillaTweakInjector.loadIconsOnFrames(); + } + + private static Class getaClass(String name) throws ClassNotFoundException { + return Launch.classLoader.loadClass(name); + } + + private static Field getWorkingDirField(String name) throws ClassNotFoundException { + for (Field field : getaClass(name).getDeclaredFields()) { + if (Modifier.isStatic(field.getModifiers()) && field.getType().getName().equals("java.io.File")) { + return field; + } + } + return null; + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.java b/app/src/main/java/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.java new file mode 100644 index 000000000..528894fd9 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector.java @@ -0,0 +1,86 @@ +package net.minecraft.launchwrapper.injector; + +import java.io.File; +import java.util.Iterator; +import java.util.ListIterator; +import javax.imageio.ImageIO; +import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraft.launchwrapper.Launch; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.JumpInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.TableSwitchInsnNode; +import org.objectweb.asm.tree.VarInsnNode; + +public class IndevVanillaTweakInjector implements IClassTransformer { + public byte[] transform(String name, String transformedName, byte[] bytes) { + if (bytes == null) { + return null; + } + ClassNode classNode = new ClassNode(); + new ClassReader(bytes).accept(classNode, 8); + if (!classNode.interfaces.contains("java/lang/Runnable")) { + return bytes; + } + MethodNode runMethod = null; + Iterator i$ = classNode.methods.iterator(); + while (true) { + if (!i$.hasNext()) { + break; + } + MethodNode methodNode = (MethodNode) i$.next(); + if ("run".equals(methodNode.name)) { + runMethod = methodNode; + break; + } + } + if (runMethod == null) { + return bytes; + } + System.out.println("Probably the minecraft class (it has run && is applet!): " + name); + ListIterator iterator = runMethod.instructions.iterator(); + int firstSwitchJump = -1; + while (iterator.hasNext()) { + AbstractInsnNode instruction = (AbstractInsnNode) iterator.next(); + if (instruction.getOpcode() == 170) { + firstSwitchJump = runMethod.instructions.indexOf((AbstractInsnNode) ((TableSwitchInsnNode) instruction).labels.get(0)); + } else if (firstSwitchJump >= 0 && runMethod.instructions.indexOf(instruction) == firstSwitchJump) { + int endOfSwitch = -1; + while (true) { + if (!iterator.hasNext()) { + break; + } + instruction = (AbstractInsnNode) iterator.next(); + if (instruction.getOpcode() == 167) { + endOfSwitch = runMethod.instructions.indexOf(((JumpInsnNode) instruction).label); + break; + } + } + if (endOfSwitch >= 0) { + while (runMethod.instructions.indexOf(instruction) != endOfSwitch && iterator.hasNext()) { + instruction = (AbstractInsnNode) iterator.next(); + } + AbstractInsnNode instruction2 = (AbstractInsnNode) iterator.next(); + runMethod.instructions.insertBefore(instruction2, new MethodInsnNode(184, "net/minecraft/launchwrapper/injector/IndevVanillaTweakInjector", "inject", "()Ljava/io/File;")); + runMethod.instructions.insertBefore(instruction2, new VarInsnNode(58, 2)); + } + } + } + ClassWriter writer = new ClassWriter(3); + classNode.accept(writer); + return writer.toByteArray(); + } + + public static File inject() { + System.out.println("Turning of ImageIO disk-caching"); + ImageIO.setUseCache(false); + VanillaTweakInjector.loadIconsOnFrames(); + System.out.println("Setting gameDir to: " + Launch.minecraftHome); + return Launch.minecraftHome; + } +} + diff --git a/app/src/main/java/net/minecraft/launchwrapper/injector/VanillaTweakInjector.java b/app/src/main/java/net/minecraft/launchwrapper/injector/VanillaTweakInjector.java new file mode 100644 index 000000000..c0236ee39 --- /dev/null +++ b/app/src/main/java/net/minecraft/launchwrapper/injector/VanillaTweakInjector.java @@ -0,0 +1,111 @@ +package net.minecraft.launchwrapper.injector; + +import java.awt.Frame; +import java.awt.Image; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Arrays; +import java.util.List; +import java.util.ListIterator; +import javax.imageio.ImageIO; +import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraft.launchwrapper.Launch; +import org.lwjgl.opengl.Display; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Label; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +public class VanillaTweakInjector implements IClassTransformer { + public byte[] transform(String name, String transformedName, byte[] bytes) { + if (bytes == null) { + return null; + } + if (!"net.minecraft.client.Minecraft".equals(name)) { + return bytes; + } + ClassNode classNode = new ClassNode(); + new ClassReader(bytes).accept(classNode, 8); + MethodNode mainMethod = null; + for (MethodNode methodNode : classNode.methods) { + if ("main".equals(methodNode.name)) { + mainMethod = methodNode; + break; + } + } + if (mainMethod == null) { + return bytes; + } + FieldNode workDirNode = null; + for (FieldNode fieldNode : classNode.fields) { + if (Type.getDescriptor(File.class).equals(fieldNode.desc) && (fieldNode.access & 8) == 8) { + workDirNode = fieldNode; + break; + } + } + MethodNode injectedMethod = new MethodNode(); + Label label = new Label(); + injectedMethod.visitLabel(label); + injectedMethod.visitLineNumber(9001, label); + injectedMethod.visitMethodInsn(184, "net/minecraft/launchwrapper/injector/VanillaTweakInjector", "inject", "()Ljava/io/File;"); + injectedMethod.visitFieldInsn(179, "net/minecraft/client/Minecraft", workDirNode.name, "Ljava/io/File;"); + ListIterator iterator = mainMethod.instructions.iterator(); + while (iterator.hasNext()) { + AbstractInsnNode insn = (AbstractInsnNode) iterator.next(); + if (insn.getOpcode() == 177) { + mainMethod.instructions.insertBefore(insn, injectedMethod.instructions); + } + } + ClassWriter writer = new ClassWriter(3); + classNode.accept(writer); + return writer.toByteArray(); + } + + public static File inject() { + System.out.println("Turning off ImageIO disk-caching"); + ImageIO.setUseCache(false); + loadIconsOnFrames(); + System.out.println("Setting gameDir to: " + Launch.minecraftHome); + return Launch.minecraftHome; + } + + public static void loadIconsOnFrames() { + try { + File smallIcon = new File(Launch.assetsDir, "icons/icon_16x16.png"); + File bigIcon = new File(Launch.assetsDir, "icons/icon_32x32.png"); + System.out.println("Loading current icons for window from: " + smallIcon + " and " + bigIcon); + Display.setIcon(new ByteBuffer[]{loadIcon(smallIcon), loadIcon(bigIcon)}); + Frame[] frames = Frame.getFrames(); + if (frames != null) { + List icons = Arrays.asList(new Image[]{ImageIO.read(smallIcon), ImageIO.read(bigIcon)}); + for (Frame frame : frames) { + try { + frame.setIconImages(icons); + } catch (Throwable throwable) { + throwable.printStackTrace(); + } + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static ByteBuffer loadIcon(File iconFile) throws IOException { + BufferedImage icon = ImageIO.read(iconFile); + int[] rgb = icon.getRGB(0, 0, icon.getWidth(), icon.getHeight(), null, 0, icon.getWidth()); + ByteBuffer buffer = ByteBuffer.allocate(rgb.length * 4); + for (int color : rgb) { + buffer.putInt((color << 8) | ((color >> 24) & 255)); + } + buffer.flip(); + return buffer; + } +} + diff --git a/app/src/main/java/net/zhuoweizhang/boardwalk/DalvikTweaks.java b/app/src/main/java/net/zhuoweizhang/boardwalk/DalvikTweaks.java new file mode 100644 index 000000000..5194fa453 --- /dev/null +++ b/app/src/main/java/net/zhuoweizhang/boardwalk/DalvikTweaks.java @@ -0,0 +1,37 @@ +package net.zhuoweizhang.boardwalk; + +import android.os.Build.VERSION; + +public class DalvikTweaks { + public static native void crashTheLogger(); + + public static native void nativeSetDefaultStackSize(int i, int i2); + + public static native void nativeSetHeapMaxFree(long j, int i); + + public static native void nativeSetHeapMinFree(long j, int i); + + public static native void setenv(String str, String str2, boolean z); + + public static void setDefaultStackSize(int i) { + nativeSetDefaultStackSize(i, VERSION.SDK_INT); + } + + public static void setHeapMaxFree(long j) { + nativeSetHeapMaxFree(j, VERSION.SDK_INT); + } + + public static void setHeapMinFree(long j) { + nativeSetHeapMinFree(j, VERSION.SDK_INT); + } + + public static boolean isDalvik() { + String property = System.getProperty("java.vm.version"); + return property != null && property.startsWith("1"); + } + + static { + System.loadLibrary("boardwalk"); + } +} + diff --git a/app/src/main/java/org/apache/commons/codec/binary/Base64.java b/app/src/main/java/org/apache/commons/codec/binary/Base64.java new file mode 100644 index 000000000..bc6aae82a --- /dev/null +++ b/app/src/main/java/org/apache/commons/codec/binary/Base64.java @@ -0,0 +1,8 @@ +package org.apache.commons.codec.binary; + +public class Base64 +{ + public static byte[] decodeBase64(String string) { + return android.util.Base64.decode(string, 0);// android.util.Base64.DEFAULT + } +} diff --git a/app/src/main/java/org/apache/commons/codec/binary/Hex.java b/app/src/main/java/org/apache/commons/codec/binary/Hex.java new file mode 100644 index 000000000..aa66dafd8 --- /dev/null +++ b/app/src/main/java/org/apache/commons/codec/binary/Hex.java @@ -0,0 +1,132 @@ +package org.apache.commons.codec.binary; + +import java.nio.*; + +public class Hex +{ + /** + * Used to build output as Hex + */ + private static final char[] DIGITS_LOWER = + {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + + /** + * Used to build output as Hex + */ + private static final char[] DIGITS_UPPER = + {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + + /** + * Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte[] to convert to Hex characters + * @return A char[] containing lower-case hexadecimal characters + */ + public static char[] encodeHex(final byte[] data) { + return encodeHex(data, true); + } + + /** + * Converts a byte buffer into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte buffer to convert to Hex characters + * @return A char[] containing lower-case hexadecimal characters + * @since 1.11 + */ + public static char[] encodeHex(final ByteBuffer data) { + return encodeHex(data, true); + } + + /** + * Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte[] to convert to Hex characters + * @param toLowerCase + * true converts to lowercase, false to uppercase + * @return A char[] containing hexadecimal characters in the selected case + * @since 1.4 + */ + public static char[] encodeHex(final byte[] data, final boolean toLowerCase) { + return encodeHex(data, toLowerCase ? DIGITS_LOWER : DIGITS_UPPER); + } + + /** + * Converts a byte buffer into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte buffer to convert to Hex characters + * @param toLowerCase + * true converts to lowercase, false to uppercase + * @return A char[] containing hexadecimal characters in the selected case + * @since 1.11 + */ + public static char[] encodeHex(final ByteBuffer data, final boolean toLowerCase) { + return encodeHex(data, toLowerCase ? DIGITS_LOWER : DIGITS_UPPER); + } + + /** + * Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte[] to convert to Hex characters + * @param toDigits + * the output alphabet (must contain at least 16 chars) + * @return A char[] containing the appropriate characters from the alphabet + * For best results, this should be either upper- or lower-case hex. + * @since 1.4 + */ + protected static char[] encodeHex(final byte[] data, final char[] toDigits) { + final int l = data.length; + final char[] out = new char[l << 1]; + // two characters form the hex value. + for (int i = 0, j = 0; i < l; i++) { + out[j++] = toDigits[(0xF0 & data[i]) >>> 4]; + out[j++] = toDigits[0x0F & data[i]]; + } + return out; + } + + /** + * Converts a byte buffer into an array of characters representing the hexadecimal values of each byte in order. + * The returned array will be double the length of the passed array, as it takes two characters to represent any + * given byte. + * + * @param data + * a byte buffer to convert to Hex characters + * @param toDigits + * the output alphabet (must be at least 16 characters) + * @return A char[] containing the appropriate characters from the alphabet + * For best results, this should be either upper- or lower-case hex. + * @since 1.11 + */ + protected static char[] encodeHex(final ByteBuffer data, final char[] toDigits) { + return encodeHex(data.array(), toDigits); + } + + /** + * Converts an array of bytes into a String representing the hexadecimal values of each byte in order. The returned + * String will be double the length of the passed array, as it takes two characters to represent any given byte. + * + * @param data + * a byte[] to convert to Hex characters + * @return A String containing lower-case hexadecimal characters + * @since 1.4 + */ + public static String encodeHexString(byte[] data) { + return new String(encodeHex(data)); + } +} diff --git a/app/src/main/java/org/apache/commons/codec/binary/StringUtils.java b/app/src/main/java/org/apache/commons/codec/binary/StringUtils.java new file mode 100644 index 000000000..5d1e00019 --- /dev/null +++ b/app/src/main/java/org/apache/commons/codec/binary/StringUtils.java @@ -0,0 +1,10 @@ +package org.apache.commons.codec.binary; + +import java.nio.charset.*; + +public class StringUtils +{ + public static byte[] getBytesUtf8(String str) { + return str.getBytes(Charset.forName("UTF-8")); + } +} diff --git a/app/src/main/java/org/apache/commons/codec/digest/DigestUtils.java b/app/src/main/java/org/apache/commons/codec/digest/DigestUtils.java new file mode 100644 index 000000000..f6beabc5a --- /dev/null +++ b/app/src/main/java/org/apache/commons/codec/digest/DigestUtils.java @@ -0,0 +1,1433 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.codec.digest; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import org.apache.commons.codec.binary.Hex; +import org.apache.commons.codec.binary.StringUtils; +import org.apache.commons.codec.digest.MessageDigestAlgorithms; + +/** + * Operations to simplify common {@link java.security.MessageDigest} tasks. + * This class is immutable and thread-safe. + * However the MessageDigest instances it creates generally won't be. + *

+ * The {@link MessageDigestAlgorithms} class provides constants for standard + * digest algorithms that can be used with the {@link #getDigest(String)} method + * and other methods that require the Digest algorithm name. + *

+ * Note: the class has short-hand methods for all the algorithms present as standard in Java 6. + * This approach requires lots of methods for each algorithm, and quickly becomes unwieldy. + * The following code works with all algorithms: + *

+ * import static org.apache.commons.codec.digest.MessageDigestAlgorithms.SHA_224;
+ * ...
+ * byte [] digest = new DigestUtils(SHA_224).digest(dataToDigest);
+ * String hdigest = new DigestUtils(SHA_224).digestAsHex(new File("pom.xml"));
+ * 
+ * @see MessageDigestAlgorithms + * @version $Id$ + */ +public class DigestUtils { + + private static final int STREAM_BUFFER_LENGTH = 1024; + + /** + * Reads through a byte array and returns the digest for the data. Provided for symmetry with other methods. + * + * @param messageDigest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * @since 1.11 + */ + public static byte[] digest(final MessageDigest messageDigest, final byte[] data) { + return messageDigest.digest(data); + } + + /** + * Reads through a ByteBuffer and returns the digest for the data + * + * @param messageDigest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * + * @since 1.11 + */ + public static byte[] digest(final MessageDigest messageDigest, final ByteBuffer data) { + messageDigest.update(data); + return messageDigest.digest(); + } + + /** + * Reads through a File and returns the digest for the data + * + * @param messageDigest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public static byte[] digest(final MessageDigest messageDigest, final File data) throws IOException { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through an InputStream and returns the digest for the data + * + * @param messageDigest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.11 (was private) + */ + public static byte[] digest(final MessageDigest messageDigest, final InputStream data) throws IOException { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Returns a MessageDigest for the given algorithm. + * + * @param algorithm + * the name of the algorithm requested. See Appendix A in the Java Cryptography Architecture Reference Guide for information about standard + * algorithm names. + * @return A digest instance. + * @see MessageDigest#getInstance(String) + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught. + */ + public static MessageDigest getDigest(final String algorithm) { + try { + return MessageDigest.getInstance(algorithm); + } catch (final NoSuchAlgorithmException e) { + throw new IllegalArgumentException(e); + } + } + + /** + * Returns a MessageDigest for the given algorithm or a default if there is a problem + * getting the algorithm. + * + * @param algorithm + * the name of the algorithm requested. See + * + * Appendix A in the Java Cryptography Architecture Reference Guide for information about standard + * algorithm names. + * @param defaultMessageDigest + * The default MessageDigest. + * @return A digest instance. + * @see MessageDigest#getInstance(String) + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught. + * @since 1.11 + */ + public static MessageDigest getDigest(final String algorithm, final MessageDigest defaultMessageDigest) { + try { + return MessageDigest.getInstance(algorithm); + } catch (final Exception e) { + return defaultMessageDigest; + } + } + + /** + * Returns an MD2 MessageDigest. + * + * @return An MD2 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because MD2 is a + * built-in algorithm + * @see MessageDigestAlgorithms#MD2 + * @since 1.7 + */ + public static MessageDigest getMd2Digest() { + return getDigest(MessageDigestAlgorithms.MD2); + } + + /** + * Returns an MD5 MessageDigest. + * + * @return An MD5 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because MD5 is a + * built-in algorithm + * @see MessageDigestAlgorithms#MD5 + */ + public static MessageDigest getMd5Digest() { + return getDigest(MessageDigestAlgorithms.MD5); + } + + /** + * Returns an SHA-1 digest. + * + * @return An SHA-1 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-1 is a + * built-in algorithm + * @see MessageDigestAlgorithms#SHA_1 + * @since 1.7 + */ + public static MessageDigest getSha1Digest() { + return getDigest(MessageDigestAlgorithms.SHA_1); + } + + /** + * Returns an SHA-256 digest. + * + * @return An SHA-256 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-256 is a + * built-in algorithm + * @see MessageDigestAlgorithms#SHA_256 + */ + public static MessageDigest getSha256Digest() { + return getDigest(MessageDigestAlgorithms.SHA_256); + } + + /** + * Returns an SHA3-224 digest. + * + * @return An SHA3-224 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should not happen on Oracle Java 9 and greater. + * @see MessageDigestAlgorithms#SHA3_224 + * @since 1.12 + */ + public static MessageDigest getSha3_224Digest() { + return getDigest(MessageDigestAlgorithms.SHA3_224); + } + + /** + * Returns an SHA3-256 digest. + * + * @return An SHA3-256 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should not happen on Oracle Java 9 and greater. + * @see MessageDigestAlgorithms#SHA3_256 + * @since 1.12 + */ + public static MessageDigest getSha3_256Digest() { + return getDigest(MessageDigestAlgorithms.SHA3_256); + } + + /** + * Returns an SHA3-384 digest. + * + * @return An SHA3-384 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should not happen on Oracle Java 9 and greater. + * @see MessageDigestAlgorithms#SHA3_384 + * @since 1.12 + */ + public static MessageDigest getSha3_384Digest() { + return getDigest(MessageDigestAlgorithms.SHA3_384); + } + + /** + * Returns an SHA3-512 digest. + * + * @return An SHA3-512 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should not happen on Oracle Java 9 and greater. + * @see MessageDigestAlgorithms#SHA3_512 + * @since 1.12 + */ + public static MessageDigest getSha3_512Digest() { + return getDigest(MessageDigestAlgorithms.SHA3_512); + } + + /** + * Returns an SHA-384 digest. + * + * @return An SHA-384 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-384 is a + * built-in algorithm + * @see MessageDigestAlgorithms#SHA_384 + */ + public static MessageDigest getSha384Digest() { + return getDigest(MessageDigestAlgorithms.SHA_384); + } + + /** + * Returns an SHA-512 digest. + * + * @return An SHA-512 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught, which should never happen because SHA-512 is a + * built-in algorithm + * @see MessageDigestAlgorithms#SHA_512 + */ + public static MessageDigest getSha512Digest() { + return getDigest(MessageDigestAlgorithms.SHA_512); + } + + /** + * Returns an SHA-1 digest. + * + * @return An SHA-1 digest instance. + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught + * @deprecated (1.11) Use {@link #getSha1Digest()} + */ + @Deprecated + public static MessageDigest getShaDigest() { + return getSha1Digest(); + } + + /** + * Test whether the algorithm is supported. + * @param messageDigestAlgorithm the algorithm name + * @return {@code true} if the algorithm can be found + * @since 1.11 + */ + public static boolean isAvailable(final String messageDigestAlgorithm) { + return getDigest(messageDigestAlgorithm, null) != null; + } + + /** + * Calculates the MD2 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest + * @return MD2 digest + * @since 1.7 + */ + public static byte[] md2(final byte[] data) { + return getMd2Digest().digest(data); + } + + /** + * Calculates the MD2 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest + * @return MD2 digest + * @throws IOException + * On error reading from the stream + * @since 1.7 + */ + public static byte[] md2(final InputStream data) throws IOException { + return digest(getMd2Digest(), data); + } + + /** + * Calculates the MD2 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return MD2 digest + * @since 1.7 + */ + public static byte[] md2(final String data) { + return md2(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the MD2 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD2 digest as a hex string + * @since 1.7 + */ + public static String md2Hex(final byte[] data) { + return Hex.encodeHexString(md2(data)); + } + + /** + * Calculates the MD2 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD2 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.7 + */ + public static String md2Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(md2(data)); + } + + /** + * Calculates the MD2 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD2 digest as a hex string + * @since 1.7 + */ + public static String md2Hex(final String data) { + return Hex.encodeHexString(md2(data)); + } + + /** + * Calculates the MD5 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest + * @return MD5 digest + */ + public static byte[] md5(final byte[] data) { + return getMd5Digest().digest(data); + } + + /** + * Calculates the MD5 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest + * @return MD5 digest + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static byte[] md5(final InputStream data) throws IOException { + return digest(getMd5Digest(), data); + } + + /** + * Calculates the MD5 digest and returns the value as a 16 element byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return MD5 digest + */ + public static byte[] md5(final String data) { + return md5(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the MD5 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD5 digest as a hex string + */ + public static String md5Hex(final byte[] data) { + return Hex.encodeHexString(md5(data)); + } + + /** + * Calculates the MD5 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD5 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static String md5Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(md5(data)); + } + + /** + * Calculates the MD5 digest and returns the value as a 32 character hex string. + * + * @param data + * Data to digest + * @return MD5 digest as a hex string + */ + public static String md5Hex(final String data) { + return Hex.encodeHexString(md5(data)); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-1 digest + * @deprecated (1.11) Use {@link #sha1(byte[])} + */ + @Deprecated + public static byte[] sha(final byte[] data) { + return sha1(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-1 digest + * @throws IOException + * On error reading from the stream + * @since 1.4 + * @deprecated (1.11) Use {@link #sha1(InputStream)} + */ + @Deprecated + public static byte[] sha(final InputStream data) throws IOException { + return sha1(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-1 digest + * @deprecated (1.11) Use {@link #sha1(String)} + */ + @Deprecated + public static byte[] sha(final String data) { + return sha1(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-1 digest + * @since 1.7 + */ + public static byte[] sha1(final byte[] data) { + return getSha1Digest().digest(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-1 digest + * @throws IOException + * On error reading from the stream + * @since 1.7 + */ + public static byte[] sha1(final InputStream data) throws IOException { + return digest(getSha1Digest(), data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA-1 digest + */ + public static byte[] sha1(final String data) { + return sha1(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @since 1.7 + */ + public static String sha1Hex(final byte[] data) { + return Hex.encodeHexString(sha1(data)); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.7 + */ + public static String sha1Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha1(data)); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @since 1.7 + */ + public static String sha1Hex(final String data) { + return Hex.encodeHexString(sha1(data)); + } + + /** + * Calculates the SHA-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-256 digest + * @since 1.4 + */ + public static byte[] sha256(final byte[] data) { + return getSha256Digest().digest(data); + } + + /** + * Calculates the SHA-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-256 digest + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static byte[] sha256(final InputStream data) throws IOException { + return digest(getSha256Digest(), data); + } + + /** + * Calculates the SHA-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA-256 digest + * @since 1.4 + */ + public static byte[] sha256(final String data) { + return sha256(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-256 digest as a hex string + * @since 1.4 + */ + public static String sha256Hex(final byte[] data) { + return Hex.encodeHexString(sha256(data)); + } + + /** + * Calculates the SHA-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-256 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static String sha256Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha256(data)); + } + + /** + * Calculates the SHA-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-256 digest as a hex string + * @since 1.4 + */ + public static String sha256Hex(final String data) { + return Hex.encodeHexString(sha256(data)); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-224 digest + * @since 1.12 + */ + public static byte[] sha3_224(final byte[] data) { + return getSha3_224Digest().digest(data); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-224 digest + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static byte[] sha3_224(final InputStream data) throws IOException { + return digest(getSha3_224Digest(), data); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA3-224 digest + * @since 1.12 + */ + public static byte[] sha3_224(final String data) { + return sha3_224(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-224 digest as a hex string + * @since 1.12 + */ + public static String sha3_224Hex(final String data) { + return Hex.encodeHexString(sha3_224(data)); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-256 digest + * @since 1.12 + */ + public static byte[] sha3_256(final byte[] data) { + return getSha3_256Digest().digest(data); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-256 digest + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static byte[] sha3_256(final InputStream data) throws IOException { + return digest(getSha3_256Digest(), data); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA3-256 digest + * @since 1.12 + */ + public static byte[] sha3_256(final String data) { + return sha3_256(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-256 digest as a hex string + * @since 1.12 + */ + public static String sha3_256Hex(final String data) { + return Hex.encodeHexString(sha3_256(data)); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-384 digest + * @since 1.12 + */ + public static byte[] sha3_384(final byte[] data) { + return getSha3_384Digest().digest(data); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-384 digest + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static byte[] sha3_384(final InputStream data) throws IOException { + return digest(getSha3_384Digest(), data); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA3-384 digest + * @since 1.12 + */ + public static byte[] sha3_384(final String data) { + return sha3_384(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-384 digest as a hex string + * @since 1.12 + */ + public static String sha3_384Hex(final String data) { + return Hex.encodeHexString(sha3_384(data)); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-512 digest + * @since 1.12 + */ + public static byte[] sha3_512(final byte[] data) { + return getSha3_512Digest().digest(data); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA3-512 digest + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static byte[] sha3_512(final InputStream data) throws IOException { + return digest(getSha3_512Digest(), data); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA3-512 digest + * @since 1.12 + */ + public static byte[] sha3_512(final String data) { + return sha3_512(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-512 digest as a hex string + * @since 1.12 + */ + public static String sha3_512Hex(final String data) { + return Hex.encodeHexString(sha3_512(data)); + } + + /** + * Calculates the SHA-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-384 digest + * @since 1.4 + */ + public static byte[] sha384(final byte[] data) { + return getSha384Digest().digest(data); + } + + /** + * Calculates the SHA-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-384 digest + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static byte[] sha384(final InputStream data) throws IOException { + return digest(getSha384Digest(), data); + } + + /** + * Calculates the SHA-384 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA-384 digest + * @since 1.4 + */ + public static byte[] sha384(final String data) { + return sha384(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-384 digest as a hex string + * @since 1.4 + */ + public static String sha384Hex(final byte[] data) { + return Hex.encodeHexString(sha384(data)); + } + + /** + * Calculates the SHA-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-384 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static String sha384Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha384(data)); + } + + /** + * Calculates the SHA-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-384 digest as a hex string + * @since 1.4 + */ + public static String sha384Hex(final String data) { + return Hex.encodeHexString(sha384(data)); + } + + /** + * Calculates the SHA-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-512 digest + * @since 1.4 + */ + public static byte[] sha512(final byte[] data) { + return getSha512Digest().digest(data); + } + + /** + * Calculates the SHA-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest + * @return SHA-512 digest + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static byte[] sha512(final InputStream data) throws IOException { + return digest(getSha512Digest(), data); + } + + /** + * Calculates the SHA-512 digest and returns the value as a byte[]. + * + * @param data + * Data to digest; converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return SHA-512 digest + * @since 1.4 + */ + public static byte[] sha512(final String data) { + return sha512(StringUtils.getBytesUtf8(data)); + } + + /** + * Calculates the SHA-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-512 digest as a hex string + * @since 1.4 + */ + public static String sha512Hex(final byte[] data) { + return Hex.encodeHexString(sha512(data)); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-224 digest as a hex string + * @since 1.12 + */ + public static String sha3_224Hex(final byte[] data) { + return Hex.encodeHexString(sha3_224(data)); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-256 digest as a hex string + * @since 1.12 + */ + public static String sha3_256Hex(final byte[] data) { + return Hex.encodeHexString(sha3_256(data)); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-384 digest as a hex string + * @since 1.12 + */ + public static String sha3_384Hex(final byte[] data) { + return Hex.encodeHexString(sha3_384(data)); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-512 digest as a hex string + * @since 1.12 + */ + public static String sha3_512Hex(final byte[] data) { + return Hex.encodeHexString(sha3_512(data)); + } + + /** + * Calculates the SHA-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-512 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.4 + */ + public static String sha512Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha512(data)); + } + + /** + * Calculates the SHA3-224 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-224 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static String sha3_224Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha3_224(data)); + } + + /** + * Calculates the SHA3-256 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-256 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static String sha3_256Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha3_256(data)); + } + + /** + * Calculates the SHA3-384 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-384 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static String sha3_384Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha3_384(data)); + } + + /** + * Calculates the SHA3-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA3-512 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.12 + */ + public static String sha3_512Hex(final InputStream data) throws IOException { + return Hex.encodeHexString(sha3_512(data)); + } + + /** + * Calculates the SHA-512 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-512 digest as a hex string + * @since 1.4 + */ + public static String sha512Hex(final String data) { + return Hex.encodeHexString(sha512(data)); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @deprecated (1.11) Use {@link #sha1Hex(byte[])} + */ + @Deprecated + public static String shaHex(final byte[] data) { + return sha1Hex(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.4 + * @deprecated (1.11) Use {@link #sha1Hex(InputStream)} + */ + @Deprecated + public static String shaHex(final InputStream data) throws IOException { + return sha1Hex(data); + } + + /** + * Calculates the SHA-1 digest and returns the value as a hex string. + * + * @param data + * Data to digest + * @return SHA-1 digest as a hex string + * @deprecated (1.11) Use {@link #sha1Hex(String)} + */ + @Deprecated + public static String shaHex(final String data) { + return sha1Hex(data); + } + + /** + * Updates the given {@link MessageDigest}. + * + * @param messageDigest + * the {@link MessageDigest} to update + * @param valueToDigest + * the value to update the {@link MessageDigest} with + * @return the updated {@link MessageDigest} + * @since 1.7 + */ + public static MessageDigest updateDigest(final MessageDigest messageDigest, final byte[] valueToDigest) { + messageDigest.update(valueToDigest); + return messageDigest; + } + + /** + * Updates the given {@link MessageDigest}. + * + * @param messageDigest + * the {@link MessageDigest} to update + * @param valueToDigest + * the value to update the {@link MessageDigest} with + * @return the updated {@link MessageDigest} + * @since 1.11 + */ + public static MessageDigest updateDigest(final MessageDigest messageDigest, final ByteBuffer valueToDigest) { + messageDigest.update(valueToDigest); + return messageDigest; + } + + /** + * Reads through a File and updates the digest for the data + * + * @param digest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public static MessageDigest updateDigest(final MessageDigest digest, final File data) throws IOException { + try (final BufferedInputStream stream = new BufferedInputStream(new FileInputStream(data))) { + return updateDigest(digest, stream); + } + } + + /** + * Reads through an InputStream and updates the digest for the data + * + * @param digest + * The MessageDigest to use (e.g. MD5) + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.8 + */ + public static MessageDigest updateDigest(final MessageDigest digest, final InputStream data) throws IOException { + final byte[] buffer = new byte[STREAM_BUFFER_LENGTH]; + int read = data.read(buffer, 0, STREAM_BUFFER_LENGTH); + + while (read > -1) { + digest.update(buffer, 0, read); + read = data.read(buffer, 0, STREAM_BUFFER_LENGTH); + } + + return digest; + } + + /** + * Updates the given {@link MessageDigest} from a String (converted to bytes using UTF-8). + *

+ * To update the digest using a different charset for the conversion, + * convert the String to a byte array using + * {@link String#getBytes(java.nio.charset.Charset)} and pass that + * to the {@link DigestUtils#updateDigest(MessageDigest, byte[])} method + * + * @param messageDigest + * the {@link MessageDigest} to update + * @param valueToDigest + * the value to update the {@link MessageDigest} with; + * converted to bytes using {@link StringUtils#getBytesUtf8(String)} + * @return the updated {@link MessageDigest} + * @since 1.7 + */ + public static MessageDigest updateDigest(final MessageDigest messageDigest, final String valueToDigest) { + messageDigest.update(StringUtils.getBytesUtf8(valueToDigest)); + return messageDigest; + } + + private final MessageDigest messageDigest; + + /** + * Preserves binary compatibity only. + * As for previous versions does not provide useful behaviour + * @deprecated since 1.11; only useful to preserve binary compatibility + */ + @Deprecated + public DigestUtils() { + this.messageDigest = null; + } + + /** + * Creates an instance using the provided {@link MessageDigest} parameter. + * + * This can then be used to create digests using methods such as + * {@link #digest(byte[])} and {@link #digestAsHex(File)}. + * + * @param digest the {@link MessageDigest} to use + * @since 1.11 + */ + public DigestUtils(final MessageDigest digest) { + this.messageDigest = digest; + } + + /** + * Creates an instance using the provided {@link MessageDigest} parameter. + * + * This can then be used to create digests using methods such as + * {@link #digest(byte[])} and {@link #digestAsHex(File)}. + * + * @param name the name of the {@link MessageDigest} to use + * @see #getDigest(String) + * @throws IllegalArgumentException + * when a {@link NoSuchAlgorithmException} is caught. + * @since 1.11 + */ + public DigestUtils(final String name) { + this(getDigest(name)); + } + + /** + * Reads through a byte array and returns the digest for the data. + * + * @param data + * Data to digest + * @return the digest + * @since 1.11 + */ + public byte[] digest(final byte[] data) { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through a ByteBuffer and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest + * + * @since 1.11 + */ + public byte[] digest(final ByteBuffer data) { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through a File and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public byte[] digest(final File data) throws IOException { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through an InputStream and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public byte[] digest(final InputStream data) throws IOException { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through a byte array and returns the digest for the data. + * + * @param data + * Data to digest treated as UTF-8 string + * @return the digest + * @since 1.11 + */ + public byte[] digest(final String data) { + return updateDigest(messageDigest, data).digest(); + } + + /** + * Reads through a byte array and returns the digest for the data. + * + * @param data + * Data to digest + * @return the digest as a hex string + * @since 1.11 + */ + public String digestAsHex(final byte[] data) { + return Hex.encodeHexString(digest(data)); + } + + /** + * Reads through a ByteBuffer and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest as a hex string + * + * @since 1.11 + */ + public String digestAsHex(final ByteBuffer data) { + return Hex.encodeHexString(digest(data)); + } + + /** + * Reads through a File and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public String digestAsHex(final File data) throws IOException { + return Hex.encodeHexString(digest(data)); + } + + /** + * Reads through an InputStream and returns the digest for the data + * + * @param data + * Data to digest + * @return the digest as a hex string + * @throws IOException + * On error reading from the stream + * @since 1.11 + */ + public String digestAsHex(final InputStream data) throws IOException { + return Hex.encodeHexString(digest(data)); + } + + /** + * Reads through a byte array and returns the digest for the data. + * + * @param data + * Data to digest treated as UTF-8 string + * @return the digest as a hex string + * @since 1.11 + */ + public String digestAsHex(final String data) { + return Hex.encodeHexString(digest(data)); + } + + /** + * Returns the message digest instance. + * @return the message digest instance + * @since 1.11 + */ + public MessageDigest getMessageDigest() { + return messageDigest; + } + +} diff --git a/app/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java b/app/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java new file mode 100644 index 000000000..a357dc8fa --- /dev/null +++ b/app/src/main/java/org/apache/commons/codec/digest/MessageDigestAlgorithms.java @@ -0,0 +1,147 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.codec.digest; + +import java.security.MessageDigest; + +/** + * Standard {@link MessageDigest} algorithm names from the Java Cryptography Architecture Standard Algorithm Name + * Documentation. + *

+ * This class is immutable and thread-safe. + *

+ *

+ * Java 8 and up: SHA-224. + *

+ *

+ * Java 9 and up: SHA3-224, SHA3-256, SHA3-384, SHA3-512. + *

+ * + * @see + * Java 6 Cryptography Architecture Standard Algorithm Name Documentation + * @see + * Java 7 Cryptography Architecture Standard Algorithm Name Documentation + * @see + * Java 8 Cryptography Architecture Standard Algorithm Name Documentation + * @see + * Java 9 Cryptography Architecture Standard Algorithm Name Documentation + * + * @see FIPS PUB 180-4 + * @see FIPS PUB 202 + * @since 1.7 + * @version $Id$ + */ +public class MessageDigestAlgorithms { + + /** + * The MD2 message digest algorithm defined in RFC 1319. + */ + public static final String MD2 = "MD2"; + + /** + * The MD5 message digest algorithm defined in RFC 1321. + */ + public static final String MD5 = "MD5"; + + /** + * The SHA-1 hash algorithm defined in the FIPS PUB 180-2. + */ + public static final String SHA_1 = "SHA-1"; + + /** + * The SHA-224 hash algorithm defined in the FIPS PUB 180-3. + *

+ * Present in Oracle Java 8. + *

+ * + * @since 1.11 + */ + public static final String SHA_224 = "SHA-224"; + + /** + * The SHA-256 hash algorithm defined in the FIPS PUB 180-2. + */ + public static final String SHA_256 = "SHA-256"; + + /** + * The SHA-384 hash algorithm defined in the FIPS PUB 180-2. + */ + public static final String SHA_384 = "SHA-384"; + + /** + * The SHA-512 hash algorithm defined in the FIPS PUB 180-2. + */ + public static final String SHA_512 = "SHA-512"; + + /** + * The SHA3-224 hash algorithm defined in the FIPS PUB 202. + *

+ * Included starting in Oracle Java 9 GA. + *

+ * + * @since 1.11 + */ + public static final String SHA3_224 = "SHA3-224"; + + /** + * The SHA3-256 hash algorithm defined in the FIPS PUB 202. + *

+ * Included starting in Oracle Java 9 GA. + *

+ * + * @since 1.11 + */ + public static final String SHA3_256 = "SHA3-256"; + + /** + * The SHA3-384 hash algorithm defined in the FIPS PUB 202. + *

+ * Included starting in Oracle Java 9 GA. + *

+ * + * @since 1.11 + */ + public static final String SHA3_384 = "SHA3-384"; + + /** + * The SHA3-512 hash algorithm defined in the FIPS PUB 202. + *

+ * Included starting in Oracle Java 9 GA. + *

+ * + * @since 1.11 + */ + public static final String SHA3_512 = "SHA3-512"; + + /** + * Gets all constant values defined in this class. + * + * @return all constant values defined in this class. + * @since 1.11 + */ + public static String[] values() { + // N.B. do not use a constant array here as that can be changed externally by accident or design + return new String[] { + MD2, MD5, SHA_1, SHA_224, SHA_256, SHA_384, SHA_512, SHA3_224, SHA3_256, SHA3_384, SHA3_512 + }; + } + + private MessageDigestAlgorithms() { + // cannot be instantiated. + } +} diff --git a/app/src/main/java/org/apache/harmony/awt/gl/Crossing.java b/app/src/main/java/org/apache/harmony/awt/gl/Crossing.java new file mode 100644 index 000000000..ae7fb0eb4 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/gl/Crossing.java @@ -0,0 +1,889 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ +package org.apache.harmony.awt.gl; + +import java.awt.Shape; +import java.awt.geom.PathIterator; + +public class Crossing { + + /** + * Allowable tolerance for bounds comparison + */ + static final double DELTA = 1E-5; + + /** + * If roots have distance less then ROOT_DELTA they are double + */ + static final double ROOT_DELTA = 1E-10; + + /** + * Rectangle cross segment + */ + public static final int CROSSING = 255; + + /** + * Unknown crossing result + */ + static final int UNKNOWN = 254; + + /** + * Solves quadratic equation + * @param eqn - the coefficients of the equation + * @param res - the roots of the equation + * @return a number of roots + */ + public static int solveQuad(double eqn[], double res[]) { + double a = eqn[2]; + double b = eqn[1]; + double c = eqn[0]; + int rc = 0; + if (a == 0.0) { + if (b == 0.0) { + return -1; + } + res[rc++] = -c / b; + } else { + double d = b * b - 4.0 * a * c; + // d < 0.0 + if (d < 0.0) { + return 0; + } + d = Math.sqrt(d); + res[rc++] = (- b + d) / (a * 2.0); + // d != 0.0 + if (d != 0.0) { + res[rc++] = (- b - d) / (a * 2.0); + } + } + return fixRoots(res, rc); + } + + /** + * Solves cubic equation + * @param eqn - the coefficients of the equation + * @param res - the roots of the equation + * @return a number of roots + */ + public static int solveCubic(double eqn[], double res[]) { + double d = eqn[3]; + if (d == 0) { + return solveQuad(eqn, res); + } + double a = eqn[2] / d; + double b = eqn[1] / d; + double c = eqn[0] / d; + int rc = 0; + + double Q = (a * a - 3.0 * b) / 9.0; + double R = (2.0 * a * a * a - 9.0 * a * b + 27.0 * c) / 54.0; + double Q3 = Q * Q * Q; + double R2 = R * R; + double n = - a / 3.0; + + if (R2 < Q3) { + double t = Math.acos(R / Math.sqrt(Q3)) / 3.0; + double p = 2.0 * Math.PI / 3.0; + double m = -2.0 * Math.sqrt(Q); + res[rc++] = m * Math.cos(t) + n; + res[rc++] = m * Math.cos(t + p) + n; + res[rc++] = m * Math.cos(t - p) + n; + } else { +// Debug.println("R2 >= Q3 (" + R2 + "/" + Q3 + ")"); + double A = Math.pow(Math.abs(R) + Math.sqrt(R2 - Q3), 1.0 / 3.0); + if (R > 0.0) { + A = -A; + } +// if (A == 0.0) { + if (-ROOT_DELTA < A && A < ROOT_DELTA) { + res[rc++] = n; + } else { + double B = Q / A; + res[rc++] = A + B + n; +// if (R2 == Q3) { + double delta = R2 - Q3; + if (-ROOT_DELTA < delta && delta < ROOT_DELTA) { + res[rc++] = - (A + B) / 2.0 + n; + } + } + + } + return fixRoots(res, rc); + } + + /** + * Excludes double roots. Roots are double if they lies enough close with each other. + * @param res - the roots + * @param rc - the roots count + * @return new roots count + */ + static int fixRoots(double res[], int rc) { + int tc = 0; + for(int i = 0; i < rc; i++) { + out: { + for(int j = i + 1; j < rc; j++) { + if (isZero(res[i] - res[j])) { + break out; + } + } + res[tc++] = res[i]; + } + } + return tc; + } + + /** + * QuadCurve class provides basic functionality to find curve crossing and calculating bounds + */ + public static class QuadCurve { + + double ax, ay, bx, by; + double Ax, Ay, Bx, By; + + public QuadCurve(double x1, double y1, double cx, double cy, double x2, double y2) { + ax = x2 - x1; + ay = y2 - y1; + bx = cx - x1; + by = cy - y1; + + Bx = bx + bx; // Bx = 2.0 * bx + Ax = ax - Bx; // Ax = ax - 2.0 * bx + + By = by + by; // By = 2.0 * by + Ay = ay - By; // Ay = ay - 2.0 * by + } + + int cross(double res[], int rc, double py1, double py2) { + int cross = 0; + + for (int i = 0; i < rc; i++) { + double t = res[i]; + + // CURVE-OUTSIDE + if (t < -DELTA || t > 1 + DELTA) { + continue; + } + // CURVE-START + if (t < DELTA) { + if (py1 < 0.0 && (bx != 0.0 ? bx : ax - bx) < 0.0) { + cross--; + } + continue; + } + // CURVE-END + if (t > 1 - DELTA) { + if (py1 < ay && (ax != bx ? ax - bx : bx) > 0.0) { + cross++; + } + continue; + } + // CURVE-INSIDE + double ry = t * (t * Ay + By); + // ry = t * t * Ay + t * By + if (ry > py2) { + double rxt = t * Ax + bx; + // rxt = 2.0 * t * Ax + Bx = 2.0 * t * Ax + 2.0 * bx + if (rxt > -DELTA && rxt < DELTA) { + continue; + } + cross += rxt > 0.0 ? 1 : -1; + } + } // for + + return cross; + } + + int solvePoint(double res[], double px) { + double eqn[] = {-px, Bx, Ax}; + return solveQuad(eqn, res); + } + + int solveExtrem(double res[]) { + int rc = 0; + if (Ax != 0.0) { + res[rc++] = - Bx / (Ax + Ax); + } + if (Ay != 0.0) { + res[rc++] = - By / (Ay + Ay); + } + return rc; + } + + int addBound(double bound[], int bc, double res[], int rc, double minX, double maxX, boolean changeId, int id) { + for(int i = 0; i < rc; i++) { + double t = res[i]; + if (t > -DELTA && t < 1 + DELTA) { + double rx = t * (t * Ax + Bx); + if (minX <= rx && rx <= maxX) { + bound[bc++] = t; + bound[bc++] = rx; + bound[bc++] = t * (t * Ay + By); + bound[bc++] = id; + if (changeId) { + id++; + } + } + } + } + return bc; + } + + } + + /** + * CubicCurve class provides basic functionality to find curve crossing and calculating bounds + */ + public static class CubicCurve { + + double ax, ay, bx, by, cx, cy; + double Ax, Ay, Bx, By, Cx, Cy; + double Ax3, Bx2; + + public CubicCurve(double x1, double y1, double cx1, double cy1, double cx2, double cy2, double x2, double y2) { + ax = x2 - x1; + ay = y2 - y1; + bx = cx1 - x1; + by = cy1 - y1; + cx = cx2 - x1; + cy = cy2 - y1; + + Cx = bx + bx + bx; // Cx = 3.0 * bx + Bx = cx + cx + cx - Cx - Cx; // Bx = 3.0 * cx - 6.0 * bx + Ax = ax - Bx - Cx; // Ax = ax - 3.0 * cx + 3.0 * bx + + Cy = by + by + by; // Cy = 3.0 * by + By = cy + cy + cy - Cy - Cy; // By = 3.0 * cy - 6.0 * by + Ay = ay - By - Cy; // Ay = ay - 3.0 * cy + 3.0 * by + + Ax3 = Ax + Ax + Ax; + Bx2 = Bx + Bx; + } + + int cross(double res[], int rc, double py1, double py2) { + int cross = 0; + for (int i = 0; i < rc; i++) { + double t = res[i]; + + // CURVE-OUTSIDE + if (t < -DELTA || t > 1 + DELTA) { + continue; + } + // CURVE-START + if (t < DELTA) { + if (py1 < 0.0 && (bx != 0.0 ? bx : (cx != bx ? cx - bx : ax - cx)) < 0.0) { + cross--; + } + continue; + } + // CURVE-END + if (t > 1 - DELTA) { + if (py1 < ay && (ax != cx ? ax - cx : (cx != bx ? cx - bx : bx)) > 0.0) { + cross++; + } + continue; + } + // CURVE-INSIDE + double ry = t * (t * (t * Ay + By) + Cy); + // ry = t * t * t * Ay + t * t * By + t * Cy + if (ry > py2) { + double rxt = t * (t * Ax3 + Bx2) + Cx; + // rxt = 3.0 * t * t * Ax + 2.0 * t * Bx + Cx + if (rxt > -DELTA && rxt < DELTA) { + rxt = t * (Ax3 + Ax3) + Bx2; + // rxt = 6.0 * t * Ax + 2.0 * Bx + if (rxt < -DELTA || rxt > DELTA) { + // Inflection point + continue; + } + rxt = ax; + } + cross += rxt > 0.0 ? 1 : -1; + } + } //for + + return cross; + } + + int solvePoint(double res[], double px) { + double eqn[] = {-px, Cx, Bx, Ax}; + return solveCubic(eqn, res); + } + + int solveExtremX(double res[]) { + double eqn[] = {Cx, Bx2, Ax3}; + return solveQuad(eqn, res); + } + + int solveExtremY(double res[]) { + double eqn[] = {Cy, By + By, Ay + Ay + Ay}; + return solveQuad(eqn, res); + } + + int addBound(double bound[], int bc, double res[], int rc, double minX, double maxX, boolean changeId, int id) { + for(int i = 0; i < rc; i++) { + double t = res[i]; + if (t > -DELTA && t < 1 + DELTA) { + double rx = t * (t * (t * Ax + Bx) + Cx); + if (minX <= rx && rx <= maxX) { + bound[bc++] = t; + bound[bc++] = rx; + bound[bc++] = t * (t * (t * Ay + By) + Cy); + bound[bc++] = id; + if (changeId) { + id++; + } + } + } + } + return bc; + } + + } + + /** + * Returns how many times ray from point (x,y) cross line. + */ + public static int crossLine(double x1, double y1, double x2, double y2, double x, double y) { + + // LEFT/RIGHT/UP/EMPTY + if ((x < x1 && x < x2) || + (x > x1 && x > x2) || + (y > y1 && y > y2) || + (x1 == x2)) + { + return 0; + } + + // DOWN + if (y < y1 && y < y2) { + } else { + // INSIDE + if ((y2 - y1) * (x - x1) / (x2 - x1) <= y - y1) { + // INSIDE-UP + return 0; + } + } + + // START + if (x == x1) { + return x1 < x2 ? 0 : -1; + } + + // END + if (x == x2) { + return x1 < x2 ? 1 : 0; + } + + // INSIDE-DOWN + return x1 < x2 ? 1 : -1; + } + + /** + * Returns how many times ray from point (x,y) cross quard curve + */ + public static int crossQuad(double x1, double y1, double cx, double cy, double x2, double y2, double x, double y) { + + // LEFT/RIGHT/UP/EMPTY + if ((x < x1 && x < cx && x < x2) || + (x > x1 && x > cx && x > x2) || + (y > y1 && y > cy && y > y2) || + (x1 == cx && cx == x2)) + { + return 0; + } + + // DOWN + if (y < y1 && y < cy && y < y2 && x != x1 && x != x2) { + if (x1 < x2) { + return x1 < x && x < x2 ? 1 : 0; + } + return x2 < x && x < x1 ? -1 : 0; + } + + // INSIDE + QuadCurve c = new QuadCurve(x1, y1, cx, cy, x2, y2); + double px = x - x1; + double py = y - y1; + double res[] = new double[3]; + int rc = c.solvePoint(res, px); + + return c.cross(res, rc, py, py); + } + + /** + * Returns how many times ray from point (x,y) cross cubic curve + */ + public static int crossCubic(double x1, double y1, double cx1, double cy1, double cx2, double cy2, double x2, double y2, double x, double y) { + + // LEFT/RIGHT/UP/EMPTY + if ((x < x1 && x < cx1 && x < cx2 && x < x2) || + (x > x1 && x > cx1 && x > cx2 && x > x2) || + (y > y1 && y > cy1 && y > cy2 && y > y2) || + (x1 == cx1 && cx1 == cx2 && cx2 == x2)) + { + return 0; + } + + // DOWN + if (y < y1 && y < cy1 && y < cy2 && y < y2 && x != x1 && x != x2) { + if (x1 < x2) { + return x1 < x && x < x2 ? 1 : 0; + } + return x2 < x && x < x1 ? -1 : 0; + } + + // INSIDE + CubicCurve c = new CubicCurve(x1, y1, cx1, cy1, cx2, cy2, x2, y2); + double px = x - x1; + double py = y - y1; + double res[] = new double[3]; + int rc = c.solvePoint(res, px); + return c.cross(res, rc, py, py); + } + + /** + * Returns how many times ray from point (x,y) cross path + */ + public static int crossPath(PathIterator p, double x, double y) { + int cross = 0; + double mx, my, cx, cy; + mx = my = cx = cy = 0.0; + double coords[] = new double[6]; + + while (!p.isDone()) { + switch (p.currentSegment(coords)) { + case PathIterator.SEG_MOVETO: + if (cx != mx || cy != my) { + cross += crossLine(cx, cy, mx, my, x, y); + } + mx = cx = coords[0]; + my = cy = coords[1]; + break; + case PathIterator.SEG_LINETO: + cross += crossLine(cx, cy, cx = coords[0], cy = coords[1], x, y); + break; + case PathIterator.SEG_QUADTO: + cross += crossQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3], x, y); + break; + case PathIterator.SEG_CUBICTO: + cross += crossCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], cx = coords[4], cy = coords[5], x, y); + break; + case PathIterator.SEG_CLOSE: + if (cy != my || cx != mx) { + cross += crossLine(cx, cy, cx = mx, cy = my, x, y); + } + break; + } + p.next(); + } + if (cy != my) { + cross += crossLine(cx, cy, mx, my, x, y); + } + return cross; + } + + /** + * Returns how many times ray from point (x,y) cross shape + */ + public static int crossShape(Shape s, double x, double y) { + if (!s.getBounds2D().contains(x, y)) { + return 0; + } + return crossPath(s.getPathIterator(null), x, y); + } + + /** + * Returns true if value enough small + */ + public static boolean isZero(double val) { + return -DELTA < val && val < DELTA; + } + + /** + * Sort bound array + */ + static void sortBound(double bound[], int bc) { + for(int i = 0; i < bc - 4; i += 4) { + int k = i; + for(int j = i + 4; j < bc; j += 4) { + if (bound[k] > bound[j]) { + k = j; + } + } + if (k != i) { + double tmp = bound[i]; + bound[i] = bound[k]; + bound[k] = tmp; + tmp = bound[i + 1]; + bound[i + 1] = bound[k + 1]; + bound[k + 1] = tmp; + tmp = bound[i + 2]; + bound[i + 2] = bound[k + 2]; + bound[k + 2] = tmp; + tmp = bound[i + 3]; + bound[i + 3] = bound[k + 3]; + bound[k + 3] = tmp; + } + } + } + + /** + * Returns are bounds intersect or not intersect rectangle + */ + static int crossBound(double bound[], int bc, double py1, double py2) { + + // LEFT/RIGHT + if (bc == 0) { + return 0; + } + + // Check Y coordinate + int up = 0; + int down = 0; + for(int i = 2; i < bc; i += 4) { + if (bound[i] < py1) { + up++; + continue; + } + if (bound[i] > py2) { + down++; + continue; + } + return CROSSING; + } + + // UP + if (down == 0) { + return 0; + } + + if (up != 0) { + // bc >= 2 + sortBound(bound, bc); + boolean sign = bound[2] > py2; + for(int i = 6; i < bc; i += 4) { + boolean sign2 = bound[i] > py2; + if (sign != sign2 && bound[i + 1] != bound[i - 3]) { + return CROSSING; + } + sign = sign2; + } + } + return UNKNOWN; + } + + /** + * Returns how many times rectangle stripe cross line or the are intersect + */ + public static int intersectLine(double x1, double y1, double x2, double y2, double rx1, double ry1, double rx2, double ry2) { + + // LEFT/RIGHT/UP + if ((rx2 < x1 && rx2 < x2) || + (rx1 > x1 && rx1 > x2) || + (ry1 > y1 && ry1 > y2)) + { + return 0; + } + + // DOWN + if (ry2 < y1 && ry2 < y2) { + } else { + + // INSIDE + if (x1 == x2) { + return CROSSING; + } + + // Build bound + double bx1, bx2; + if (x1 < x2) { + bx1 = x1 < rx1 ? rx1 : x1; + bx2 = x2 < rx2 ? x2 : rx2; + } else { + bx1 = x2 < rx1 ? rx1 : x2; + bx2 = x1 < rx2 ? x1 : rx2; + } + double k = (y2 - y1) / (x2 - x1); + double by1 = k * (bx1 - x1) + y1; + double by2 = k * (bx2 - x1) + y1; + + // BOUND-UP + if (by1 < ry1 && by2 < ry1) { + return 0; + } + + // BOUND-DOWN + if (by1 > ry2 && by2 > ry2) { + } else { + return CROSSING; + } + } + + // EMPTY + if (x1 == x2) { + return 0; + } + + // CURVE-START + if (rx1 == x1) { + return x1 < x2 ? 0 : -1; + } + + // CURVE-END + if (rx1 == x2) { + return x1 < x2 ? 1 : 0; + } + + if (x1 < x2) { + return x1 < rx1 && rx1 < x2 ? 1 : 0; + } + return x2 < rx1 && rx1 < x1 ? -1 : 0; + + } + + /** + * Returns how many times rectangle stripe cross quad curve or the are intersect + */ + public static int intersectQuad(double x1, double y1, double cx, double cy, double x2, double y2, double rx1, double ry1, double rx2, double ry2) { + + // LEFT/RIGHT/UP ------------------------------------------------------ + if ((rx2 < x1 && rx2 < cx && rx2 < x2) || + (rx1 > x1 && rx1 > cx && rx1 > x2) || + (ry1 > y1 && ry1 > cy && ry1 > y2)) + { + return 0; + } + + // DOWN --------------------------------------------------------------- + if (ry2 < y1 && ry2 < cy && ry2 < y2 && rx1 != x1 && rx1 != x2) { + if (x1 < x2) { + return x1 < rx1 && rx1 < x2 ? 1 : 0; + } + return x2 < rx1 && rx1 < x1 ? -1 : 0; + } + + // INSIDE ------------------------------------------------------------- + QuadCurve c = new QuadCurve(x1, y1, cx, cy, x2, y2); + double px1 = rx1 - x1; + double py1 = ry1 - y1; + double px2 = rx2 - x1; + double py2 = ry2 - y1; + + double res1[] = new double[3]; + double res2[] = new double[3]; + int rc1 = c.solvePoint(res1, px1); + int rc2 = c.solvePoint(res2, px2); + + // INSIDE-LEFT/RIGHT + if (rc1 == 0 && rc2 == 0) { + return 0; + } + + // Build bound -------------------------------------------------------- + double minX = px1 - DELTA; + double maxX = px2 + DELTA; + double bound[] = new double[28]; + int bc = 0; + // Add roots + bc = c.addBound(bound, bc, res1, rc1, minX, maxX, false, 0); + bc = c.addBound(bound, bc, res2, rc2, minX, maxX, false, 1); + // Add extremal points` + rc2 = c.solveExtrem(res2); + bc = c.addBound(bound, bc, res2, rc2, minX, maxX, true, 2); + // Add start and end + if (rx1 < x1 && x1 < rx2) { + bound[bc++] = 0.0; + bound[bc++] = 0.0; + bound[bc++] = 0.0; + bound[bc++] = 4; + } + if (rx1 < x2 && x2 < rx2) { + bound[bc++] = 1.0; + bound[bc++] = c.ax; + bound[bc++] = c.ay; + bound[bc++] = 5; + } + // End build bound ---------------------------------------------------- + + int cross = crossBound(bound, bc, py1, py2); + if (cross != UNKNOWN) { + return cross; + } + return c.cross(res1, rc1, py1, py2); + } + + /** + * Returns how many times rectangle stripe cross cubic curve or the are intersect + */ + public static int intersectCubic(double x1, double y1, double cx1, double cy1, double cx2, double cy2, double x2, double y2, double rx1, double ry1, double rx2, double ry2) { + + // LEFT/RIGHT/UP + if ((rx2 < x1 && rx2 < cx1 && rx2 < cx2 && rx2 < x2) || + (rx1 > x1 && rx1 > cx1 && rx1 > cx2 && rx1 > x2) || + (ry1 > y1 && ry1 > cy1 && ry1 > cy2 && ry1 > y2)) + { + return 0; + } + + // DOWN + if (ry2 < y1 && ry2 < cy1 && ry2 < cy2 && ry2 < y2 && rx1 != x1 && rx1 != x2) { + if (x1 < x2) { + return x1 < rx1 && rx1 < x2 ? 1 : 0; + } + return x2 < rx1 && rx1 < x1 ? -1 : 0; + } + + // INSIDE + CubicCurve c = new CubicCurve(x1, y1, cx1, cy1, cx2, cy2, x2, y2); + double px1 = rx1 - x1; + double py1 = ry1 - y1; + double px2 = rx2 - x1; + double py2 = ry2 - y1; + + double res1[] = new double[3]; + double res2[] = new double[3]; + int rc1 = c.solvePoint(res1, px1); + int rc2 = c.solvePoint(res2, px2); + + // LEFT/RIGHT + if (rc1 == 0 && rc2 == 0) { + return 0; + } + + double minX = px1 - DELTA; + double maxX = px2 + DELTA; + + // Build bound -------------------------------------------------------- + double bound[] = new double[40]; + int bc = 0; + // Add roots + bc = c.addBound(bound, bc, res1, rc1, minX, maxX, false, 0); + bc = c.addBound(bound, bc, res2, rc2, minX, maxX, false, 1); + // Add extrimal points + rc2 = c.solveExtremX(res2); + bc = c.addBound(bound, bc, res2, rc2, minX, maxX, true, 2); + rc2 = c.solveExtremY(res2); + bc = c.addBound(bound, bc, res2, rc2, minX, maxX, true, 4); + // Add start and end + if (rx1 < x1 && x1 < rx2) { + bound[bc++] = 0.0; + bound[bc++] = 0.0; + bound[bc++] = 0.0; + bound[bc++] = 6; + } + if (rx1 < x2 && x2 < rx2) { + bound[bc++] = 1.0; + bound[bc++] = c.ax; + bound[bc++] = c.ay; + bound[bc++] = 7; + } + // End build bound ---------------------------------------------------- + + int cross = crossBound(bound, bc, py1, py2); + if (cross != UNKNOWN) { + return cross; + } + return c.cross(res1, rc1, py1, py2); + } + + /** + * Returns how many times rectangle stripe cross path or the are intersect + */ + public static int intersectPath(PathIterator p, double x, double y, double w, double h) { + + int cross = 0; + int count; + double mx, my, cx, cy; + mx = my = cx = cy = 0.0; + double coords[] = new double[6]; + + double rx1 = x; + double ry1 = y; + double rx2 = x + w; + double ry2 = y + h; + + while (!p.isDone()) { + count = 0; + switch (p.currentSegment(coords)) { + case PathIterator.SEG_MOVETO: + if (cx != mx || cy != my) { + count = intersectLine(cx, cy, mx, my, rx1, ry1, rx2, ry2); + } + mx = cx = coords[0]; + my = cy = coords[1]; + break; + case PathIterator.SEG_LINETO: + count = intersectLine(cx, cy, cx = coords[0], cy = coords[1], rx1, ry1, rx2, ry2); + break; + case PathIterator.SEG_QUADTO: + count = intersectQuad(cx, cy, coords[0], coords[1], cx = coords[2], cy = coords[3], rx1, ry1, rx2, ry2); + break; + case PathIterator.SEG_CUBICTO: + count = intersectCubic(cx, cy, coords[0], coords[1], coords[2], coords[3], cx = coords[4], cy = coords[5], rx1, ry1, rx2, ry2); + break; + case PathIterator.SEG_CLOSE: + if (cy != my || cx != mx) { + count = intersectLine(cx, cy, mx, my, rx1, ry1, rx2, ry2); + } + cx = mx; + cy = my; + break; + } + if (count == CROSSING) { + return CROSSING; + } + cross += count; + p.next(); + } + if (cy != my) { + count = intersectLine(cx, cy, mx, my, rx1, ry1, rx2, ry2); + if (count == CROSSING) { + return CROSSING; + } + cross += count; + } + return cross; + } + + /** + * Returns how many times rectangle stripe cross shape or the are intersect + */ + public static int intersectShape(Shape s, double x, double y, double w, double h) { + if (!s.getBounds2D().intersects(x, y, w, h)) { + return 0; + } + return intersectPath(s.getPathIterator(null), x, y, w, h); + } + + /** + * Returns true if cross count correspond inside location for non zero path rule + */ + public static boolean isInsideNonZero(int cross) { + return cross != 0; + } + + /** + * Returns true if cross count correspond inside location for even-odd path rule + */ + public static boolean isInsideEvenOdd(int cross) { + return (cross & 1) != 0; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/apache/harmony/awt/internal/nls/Messages.java b/app/src/main/java/org/apache/harmony/awt/internal/nls/Messages.java new file mode 100644 index 000000000..c340358db --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/internal/nls/Messages.java @@ -0,0 +1,151 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * THE FILE HAS BEEN AUTOGENERATED BY MSGTOOL TOOL. + * All changes made to this file manually will be overwritten + * if this tool runs again. Better make changes in the template file. + */ + +package org.apache.harmony.awt.internal.nls; + + +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +// BEGIN android-deleted +/* + * For Android, this module is a separate library and not part of the + * boot classpath, so its resources won't be found on the boot classpath + * as is assumed by MsgHelp.getString(). We instead use a local MsgHelp + * which bottoms out in a call to the useful part of its lower-level + * namesake. + */ +//import org.apache.harmony.kernel.vm.VM; +//import org.apache.harmony.luni.util.MsgHelp; +// END android-deleted + +/** + * This class retrieves strings from a resource bundle and returns them, + * formatting them with MessageFormat when required. + *

+ * It is used by the system classes to provide national language support, by + * looking up messages in the + * org.apache.harmony.awt.internal.nls.messages + * + * resource bundle. Note that if this file is not available, or an invalid key + * is looked up, or resource bundle support is not available, the key itself + * will be returned as the associated message. This means that the KEY + * should a reasonable human-readable (english) string. + * + */ +public class Messages { + + // BEGIN android-deleted + //private static final String sResource = + // "org.apache.harmony.awt.internal.nls.messages"; + // END android-deleted + + /** + * Retrieves a message which has no arguments. + * + * @param msg + * String the key to look up. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg) { + // BEGIN android-changed + return MsgHelp.getString(msg); + // END android-changed + } + + /** + * Retrieves a message which takes 1 argument. + * + * @param msg + * String the key to look up. + * @param arg + * Object the object to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object arg) { + return getString(msg, new Object[] { arg }); + } + + /** + * Retrieves a message which takes 1 integer argument. + * + * @param msg + * String the key to look up. + * @param arg + * int the integer to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, int arg) { + return getString(msg, new Object[] { Integer.toString(arg) }); + } + + /** + * Retrieves a message which takes 1 character argument. + * + * @param msg + * String the key to look up. + * @param arg + * char the character to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, char arg) { + return getString(msg, new Object[] { String.valueOf(arg) }); + } + + /** + * Retrieves a message which takes 2 arguments. + * + * @param msg + * String the key to look up. + * @param arg1 + * Object an object to insert in the formatted output. + * @param arg2 + * Object another object to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object arg1, Object arg2) { + return getString(msg, new Object[] { arg1, arg2 }); + } + + /** + * Retrieves a message which takes several arguments. + * + * @param msg + * String the key to look up. + * @param args + * Object[] the objects to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object[] args) { + // BEGIN android-changed + return MsgHelp.getString(msg, args); + // END android-changed + } + + // BEGIN android-note + // Duplicate code was dropped in favor of using MsgHelp. + // END android-note +} diff --git a/app/src/main/java/org/apache/harmony/awt/internal/nls/MsgHelp.java b/app/src/main/java/org/apache/harmony/awt/internal/nls/MsgHelp.java new file mode 100644 index 000000000..b57fe1166 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/internal/nls/MsgHelp.java @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This implementation is based on the class of the same name in + * org.apache.harmony.luni.util. + */ + +package org.apache.harmony.awt.internal.nls; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Logger; +import java.util.Locale; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; +import java.util.MissingResourceException; + +/** + * This class contains helper methods for loading resource bundles and + * formatting external message strings. + */ +public final class MsgHelp { + /** name of the resource for this class */ + private static final String RESOURCE_NAME = + "/org/apache/harmony/awt/internal/nls/messages.properties"; + + /** the resource bundle for this class */ + private static final ResourceBundle THE_BUNDLE; + + static { + ResourceBundle rb = null; + + try { + InputStream in = MsgHelp.class.getResourceAsStream( + RESOURCE_NAME); + rb = new PropertyResourceBundle(in); + } catch (IOException ex) { + Logger.global.warning("Couldn't read resource bundle: " + + ex); + } catch (RuntimeException ex) { + // Shouldn't happen, but deal at least somewhat gracefully. + Logger.global.warning("Couldn't find resource bundle: " + + ex); + } + + THE_BUNDLE = rb; + } + + public static String getString(String msg) { + if (THE_BUNDLE == null) { + return msg; + } + try { + return THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + return "Missing message: " + msg; + } + } + + static public String getString(String msg, Object[] args) { + String format = msg; + if (THE_BUNDLE != null) { + try { + format = THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + } + } + + return org.apache.harmony.luni.util.MsgHelp.format(format, args); + } +} diff --git a/app/src/main/java/org/apache/harmony/awt/wtk/CursorFactory.java b/app/src/main/java/org/apache/harmony/awt/wtk/CursorFactory.java new file mode 100644 index 000000000..35e7d33bb --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/wtk/CursorFactory.java @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Dmitry A. Durnev + * @version $Revision$ + */ +package org.apache.harmony.awt.wtk; + +import java.awt.Dimension; +import java.awt.Image; + +/** + * Provides factory for NativeCursor + */ +public abstract class CursorFactory { + protected NativeCursor[] systemCursors = { + null, null, null, null, + null, null, null, null, + null, null, null, null, + null, null, + }; + /** + * Creates and returns NativeCursor for predefined + * Java Cursor + * + * @param type - type of predefined Java Cursor + * @return created cursor + */ + public abstract NativeCursor createCursor(int type); + + /** + * Gets a cached instance of system(predefined) native cursor + * or creates a new one. This is a platform-independent method. + * + * @param type - type of predefined Java Cursor + * @return created cursor + */ + public NativeCursor getCursor(int type) { + if (type >= 0 && type < systemCursors.length) { + NativeCursor cursor = systemCursors[type]; + if (cursor == null) { + cursor = createCursor(type); + systemCursors[type] = cursor; + } + return cursor; + } + return null; + } + /** + * Creates and returns custom NativeCursor from image + * + * @param img - image(source) to create cursor from + * @param xHotSpot - x coordinate of the hotspot relative to the source's origin + * @param yHotSpot - y coordinate of the hotspot relative to the source's origin + * @return created cursor + */ + public abstract NativeCursor createCustomCursor(Image img, int xHotSpot, int yHotSpot); + + /** + * Query native system for the best cursor size closest to specified dimensions + * @param prefWidth - preferred width + * @param prefHeight - preferred height + * @return closest supported dimensions to ones specified + */ + public abstract Dimension getBestCursorSize(int prefWidth, int prefHeight); + + /** + * @return maximum number of colors supported by custom cursors + */ + public abstract int getMaximumCursorColors(); +} diff --git a/app/src/main/java/org/apache/harmony/awt/wtk/NativeCursor.java b/app/src/main/java/org/apache/harmony/awt/wtk/NativeCursor.java new file mode 100644 index 000000000..2c6eb1ef6 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/wtk/NativeCursor.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Dmitry A. Durnev + * @version $Revision$ + */ +package org.apache.harmony.awt.wtk; + +/** + * The interface provides access to platform dependent functionality + * for the class java.awt.Cursor. + */ +public interface NativeCursor { + /** + * Sets the current cursor shape + * to this cursor when a pointer is inside + * @param winID - window(currently used only on X11) + */ + void setCursor(long winID); + /** + * Destroys the native resource associated with + * this cursor + */ + void destroyCursor(); + + /** + * @return Native handle associated with this cursor + */ + long getId(); + +} diff --git a/app/src/main/java/org/apache/harmony/awt/wtk/NativeWindow.java b/app/src/main/java/org/apache/harmony/awt/wtk/NativeWindow.java new file mode 100644 index 000000000..cda9d8ffe --- /dev/null +++ b/app/src/main/java/org/apache/harmony/awt/wtk/NativeWindow.java @@ -0,0 +1,220 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Mikhail Danilov + * @version $Revision$ + */ +package org.apache.harmony.awt.wtk; + +import java.awt.Image; +import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; + +// import org.apache.harmony.awt.gl.MultiRectArea; + + +/** + * Provides cross-platform way to manipulate native window. + * + * Results of methods are reported through native messages. + */ +public interface NativeWindow { + /** + * Returns system id of the associated window + * @return HWND on Windows, xwindow on X + */ + long getId(); + + /** + * Shows/hides window + * @param v - new visibility + */ + void setVisible(boolean v); + + /** + * Means only size should be changed + */ + static final int BOUNDS_NOMOVE = 1; + + /** + * Means only position should be changed + */ + static final int BOUNDS_NOSIZE = 2; + + /** + * Tries to set desired window bounds. It's not gurantied the + * property will have the desired value. The value change + * should be reported by system event (as for other properties). + * + *

If child, position is relative to parent window. + * @param x - desired x + * @param y - desired y + * @param w - desired width + * @param h - desired height + * @param boundsMask - bitwise OR of BOUNDS_* constants. + * Governs the new bounds interpretation. + */ + void setBounds(int x, int y, int w, int h, int boundsMask); + + /** + * Returns last notified window bounds. This means the last bounds + * reported by system event. + * + *

If child, position is relative to parent window. + * @return last notified window bounds + */ + Rectangle getBounds(); + + /** + * Returns last notified insets. This means the last insets + * reported by system event. Insets are margins around client area + * ocupied by system provided decor, ususally border and titlebar. + * @return last notified insets + */ + Insets getInsets(); + + /** + * Enables/disables processing of input (key, mouse) event + * by window. If disabled input events are ignored. + * @param value - if enabled + */ + void setEnabled(boolean value); + + /** + * Sets the "focusable" window state. + * @param value - if true makes window focusable + */ + void setFocusable(boolean value); + + /** + * + * @return current focusable window state + */ + boolean isFocusable(); + + /** + * Tries to set application input focus to the window or clear + * current focus from focused window. + * + *

For toplevel windows it's not gurantied focus will land in + * desired window even if function returns true. Focus traversal should be tracked + * by processing system events. + * + * @param focus - if true sets focus, else clears focus + * @return if success + */ + boolean setFocus(boolean focus); + + /** + * Destroys the asscoiated window. + * Attempts to use it thereafter can result in + * unpredictable bechavior. + */ + void dispose(); + + /** + * Changes window Z-order to place this window under, If w is null + * places places this window on the top. Z-order is per parent. + * Toplevels a children of desktop in terms of Z-order. + * @param w - window to place under. + */ + void placeAfter(NativeWindow w); + + /** + * Places window on top of Z-order + */ + void toFront(); + + /** + * Places window on bottom of Z-order + */ + void toBack(); + + /** + * Makes the window resizable/not resizable by user + * @param value - if resizable + */ + void setResizable(boolean value); + + /** + * Sets the window caption + * @param title - caption text + */ + void setTitle(String title); + + /** + * Activate the mouse event capturing + */ + void grabMouse(); + + /** + * Deactivate mouse event capturing + */ + void ungrabMouse(); + + /** + * Set extended state for top-level window. + * + * @param state - new state, bitmask of ICONIFIED, MAXIMIZED_BOTH, etc. + */ + void setState(int state); + + /** + * Set the image to be displayed in the minimized icon for + * top-level [decorated] window. + * @param image the icon image to be displayed + */ + void setIconImage(Image image); + + /** + * Makes window top-most if value is true, + * non-topmost(normal) otherwise. + */ + void setAlwaysOnTop(boolean value); + + /** + * Set desired [top-level] window bounds when being in maximized state. + * Fields set to Integer.MAX_VALUE are ignored[system-supplied values are + * used instead] + */ + void setMaximizedBounds(Rectangle bounds); + + /** + * Get absolute position on the screen + */ + Point getScreenPos(); + + /** + * Set a window "packed" flag: + * the flag indicates that if insets change + * client area shouldn't be resized, but frame + * must be resized instead + */ + void setPacked(boolean packed); + + /** + * Make window an "input method window" by setting + * special window style, e. g. small title bar, no + * close, minimize/maximize buttons. For internal + * use by input method framework. + * + */ + void setIMStyle(); + + // MultiRectArea getObscuredRegion(Rectangle part); +} diff --git a/app/src/main/java/org/apache/harmony/beans/internal/nls/Messages.java b/app/src/main/java/org/apache/harmony/beans/internal/nls/Messages.java new file mode 100644 index 000000000..51e8168fa --- /dev/null +++ b/app/src/main/java/org/apache/harmony/beans/internal/nls/Messages.java @@ -0,0 +1,151 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * THE FILE HAS BEEN AUTOGENERATED BY MSGTOOL TOOL. + * All changes made to this file manually will be overwritten + * if this tool runs again. Better make changes in the template file. + */ + +package org.apache.harmony.beans.internal.nls; + + +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +// BEGIN android-deleted +/* + * For Android, this module is a separate library and not part of the + * boot classpath, so its resources won't be found on the boot classpath + * as is assumed by MsgHelp.getString(). We instead use a local MsgHelp + * which bottoms out in a call to the useful part of its lower-level + * namesake. + */ +//import org.apache.harmony.kernel.vm.VM; +//import org.apache.harmony.luni.util.MsgHelp; +// END android-deleted + +/** + * This class retrieves strings from a resource bundle and returns them, + * formatting them with MessageFormat when required. + *

+ * It is used by the system classes to provide national language support, by + * looking up messages in the + * org.apache.harmony.beans.internal.nls.messages + * + * resource bundle. Note that if this file is not available, or an invalid key + * is looked up, or resource bundle support is not available, the key itself + * will be returned as the associated message. This means that the KEY + * should a reasonable human-readable (english) string. + * + */ +public class Messages { + + // BEGIN android-deleted + // private static final String sResource = + // "org.apache.harmony.beans.internal.nls.messages"; //$NON-NLS-1$ + // END android-deleted + + /** + * Retrieves a message which has no arguments. + * + * @param msg + * String the key to look up. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg) { + // BEGIN android-changed + return MsgHelp.getString(msg); + // END android-changed + } + + /** + * Retrieves a message which takes 1 argument. + * + * @param msg + * String the key to look up. + * @param arg + * Object the object to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object arg) { + return getString(msg, new Object[] { arg }); + } + + /** + * Retrieves a message which takes 1 integer argument. + * + * @param msg + * String the key to look up. + * @param arg + * int the integer to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, int arg) { + return getString(msg, new Object[] { Integer.toString(arg) }); + } + + /** + * Retrieves a message which takes 1 character argument. + * + * @param msg + * String the key to look up. + * @param arg + * char the character to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, char arg) { + return getString(msg, new Object[] { String.valueOf(arg) }); + } + + /** + * Retrieves a message which takes 2 arguments. + * + * @param msg + * String the key to look up. + * @param arg1 + * Object an object to insert in the formatted output. + * @param arg2 + * Object another object to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object arg1, Object arg2) { + return getString(msg, new Object[] { arg1, arg2 }); + } + + /** + * Retrieves a message which takes several arguments. + * + * @param msg + * String the key to look up. + * @param args + * Object[] the objects to insert in the formatted output. + * @return String the message for that key in the system message bundle. + */ + static public String getString(String msg, Object[] args) { + // BEGIN android-changed + return MsgHelp.getString(msg, args); + // END android-changed + } + + // BEGIN android-note + // Duplicate code was dropped in favor of using MsgHelp. + // END android-note +} diff --git a/app/src/main/java/org/apache/harmony/beans/internal/nls/MsgHelp.java b/app/src/main/java/org/apache/harmony/beans/internal/nls/MsgHelp.java new file mode 100644 index 000000000..68faabfa3 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/beans/internal/nls/MsgHelp.java @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * This implementation is based on the class of the same name in + * org.apache.harmony.luni.util. + */ + +package org.apache.harmony.beans.internal.nls; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Logger; +import java.util.Locale; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; +import java.util.MissingResourceException; + +/** + * This class contains helper methods for loading resource bundles and + * formatting external message strings. + */ +public final class MsgHelp { + /** name of the resource for this class */ + private static final String RESOURCE_NAME = + "/org/apache/harmony/beans/internal/nls/messages.properties"; + + /** the resource bundle for this class */ + private static final ResourceBundle THE_BUNDLE; + + static { + ResourceBundle rb = null; + + try { + InputStream in = MsgHelp.class.getResourceAsStream( + RESOURCE_NAME); + rb = new PropertyResourceBundle(in); + } catch (IOException ex) { + Logger.global.warning("Couldn't read resource bundle: " + + ex); + } catch (RuntimeException ex) { + // Shouldn't happen, but deal at least somewhat gracefully. + Logger.global.warning("Couldn't find resource bundle: " + + ex); + } + + THE_BUNDLE = rb; + } + + public static String getString(String msg) { + if (THE_BUNDLE == null) { + return msg; + } + try { + return THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + return "Missing message: " + msg; + } + } + + static public String getString(String msg, Object[] args) { + String format = msg; + if (THE_BUNDLE != null) { + try { + format = THE_BUNDLE.getString(msg); + } catch (MissingResourceException e) { + } + } + + return org.apache.harmony.luni.util.MsgHelp.format(format, args); + } +} diff --git a/app/src/main/java/org/apache/harmony/luni/util/MsgHelp.java b/app/src/main/java/org/apache/harmony/luni/util/MsgHelp.java new file mode 100644 index 000000000..34360ae38 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/luni/util/MsgHelp.java @@ -0,0 +1,177 @@ + +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.harmony.luni.util; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; +// BEGIN android-added +import java.lang.ref.SoftReference; +import java.util.HashMap; +import java.util.logging.Logger; +// END android-added +// BEGIN android-changed +//import dalvik.system.VMStack; +// END android-changed +/** + * This class contains helper methods for loading resource bundles and + * formatting external message strings. + */ +public final class MsgHelp { + // BEGIN android-added + // A HashMap mapping a resource name to a SoftReference to a ResourceBundle + // holding the messages for that resource. + private static HashMap> sRefMap = null; + public synchronized static ResourceBundle loadBundle(String resource) { + if (sRefMap == null) { + sRefMap = new HashMap>(); + } + SoftReference bundleRef = sRefMap.get(resource); + if (bundleRef == null || bundleRef.get() == null) { + // Attempt to load the messages. + try { + ResourceBundle bundle = setLocale(Locale.getDefault(), + resource); + bundleRef = new SoftReference(bundle); + sRefMap.put(resource, bundleRef); + return bundle; + } catch (Throwable e) { + Logger.global.warning("Got Throwable " + e + + " loading messages"); + return null; + } + } else { + return bundleRef.get(); + } + } + public static String getString(String resource, String msg) { + ResourceBundle bundle = MsgHelp.loadBundle(resource); + if (bundle == null) { + return msg; + } + try { + return bundle.getString(msg); + } catch (MissingResourceException e) { + return "Missing message: " + msg; + } + } + static public String getString(String resource, String msg, Object[] args) { + String format = msg; + ResourceBundle bundle = MsgHelp.loadBundle(resource); + if (bundle != null) { + try { + format = bundle.getString(msg); + } catch (MissingResourceException e) { + } + } + return format(format, args); + } + // END android-added + /** + * Generates a formatted text string given a source string containing + * "argument markers" of the form "{argNum}" where each argNum must be in + * the range 0..9. The result is generated by inserting the toString of each + * argument into the position indicated in the string. + *

+ * To insert the "{" character into the output, use a single backslash + * character to escape it (i.e. "\{"). The "}" character does not need to be + * escaped. + * + * @param format + * String the format to use when printing. + * @param args + * Object[] the arguments to use. + * @return String the formatted message. + */ + public static String format(String format, Object[] args) { + StringBuilder answer = new StringBuilder(format.length() + + (args.length * 20)); + String[] argStrings = new String[args.length]; + for (int i = 0; i < args.length; ++i) { + if (args[i] == null) + argStrings[i] = ""; + else + argStrings[i] = args[i].toString(); + } + int lastI = 0; + for (int i = format.indexOf('{', 0); i >= 0; i = format.indexOf('{', + lastI)) { + if (i != 0 && format.charAt(i - 1) == '\\') { + // It's escaped, just print and loop. + if (i != 1) + answer.append(format.substring(lastI, i - 1)); + answer.append('{'); + lastI = i + 1; + } else { + // It's a format character. + if (i > format.length() - 3) { + // Bad format, just print and loop. + answer.append(format.substring(lastI, format.length())); + lastI = format.length(); + } else { + int argnum = (byte) Character.digit(format.charAt(i + 1), + 10); + if (argnum < 0 || format.charAt(i + 2) != '}') { + // Bad format, just print and loop. + answer.append(format.substring(lastI, i + 1)); + lastI = i + 1; + } else { + // Got a good one! + answer.append(format.substring(lastI, i)); + if (argnum >= argStrings.length) + answer.append(""); + else + answer.append(argStrings[argnum]); + lastI = i + 3; + } + } + } + } + if (lastI < format.length()) + answer.append(format.substring(lastI, format.length())); + return answer.toString(); + } + /** + * Changes the locale of the messages. + * + * @param locale + * Locale the locale to change to. + * @param resource + * the name of the bundle resource + */ + static public ResourceBundle setLocale(final Locale locale, + final String resource) { + try { + // BEGIN android-removed + // final ClassLoader loader = VM.bootCallerClassLoader(); + // END android-removed + return (ResourceBundle) AccessController + .doPrivileged(new PrivilegedAction() { + public Object run() { + // BEGIN android-changed + return ResourceBundle.getBundle(resource, locale, + ClassLoader.getSystemClassLoader()); + // END android-changed + } + }); + } catch (MissingResourceException e) { + } + return null; + } +} diff --git a/app/src/main/java/org/apache/harmony/luni/util/NotImplementedException.java b/app/src/main/java/org/apache/harmony/luni/util/NotImplementedException.java new file mode 100644 index 000000000..b270eb575 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/luni/util/NotImplementedException.java @@ -0,0 +1,86 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.harmony.luni.util; +import java.io.PrintStream; +/** + * This exception is thrown by methods that are not currently implemented, so + * that programs that call the stubs fail early and predictably. + * + */ +public class NotImplementedException extends RuntimeException { + /** + * Comment for serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * Default constructor. + */ + public NotImplementedException() { + this(System.err); + } + /* + * Constructor that prints the message of the exception on the given stream + */ + @SuppressWarnings("nls") + public NotImplementedException(PrintStream stream) { + super(); + stream.println("*** NOT IMPLEMENTED EXCEPTION ***"); + StackTraceElement thrower = getStackTrace()[0]; + stream.println("*** thrown from class -> " + thrower.getClassName()); + stream.println("*** method -> " + thrower.getMethodName()); + stream.print("*** defined in -> "); + if (thrower.isNativeMethod()) { + stream.println("a native method"); + } else { + String fileName = thrower.getFileName(); + if (fileName == null) { + stream.println("an unknown source"); + } else { + int lineNumber = thrower.getLineNumber(); + stream.print("the file \"" + fileName + "\""); + if (lineNumber >= 0) { + stream.print(" on line #" + lineNumber); + } + stream.println(); + } + } + } + /** + * Constructor that takes a reason message. + * + * @param detailMessage + */ + public NotImplementedException(String detailMessage) { + super(detailMessage); + } + /** + * Constructor that takes a reason and a wrapped exception. + * + * @param detailMessage + * @param throwable + */ + public NotImplementedException(String detailMessage, Throwable throwable) { + super(detailMessage, throwable); + } + /** + * Constructor that takes a wrapped exception. + * + * @param throwable + */ + public NotImplementedException(Throwable throwable) { + super(throwable); + } +} diff --git a/app/src/main/java/org/apache/harmony/misc/HashCode.java b/app/src/main/java/org/apache/harmony/misc/HashCode.java new file mode 100644 index 000000000..c7acae29d --- /dev/null +++ b/app/src/main/java/org/apache/harmony/misc/HashCode.java @@ -0,0 +1,203 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.harmony.misc; + +/** + * This class is a convenience method to sequentially calculate hash code of the + * object based on the field values. The result depends on the order of elements + * appended. The exact formula is the same as for + * java.util.List.hashCode. + * + * If you need order independent hash code just summate, multiply or XOR all + * elements. + * + *

+ * Suppose we have class: + * + *


+ * class Thing {
+ *     long id;
+ *     String name;
+ *     float weight;
+ * }
+ * 
+ * + * The hash code calculation can be expressed in 2 forms. + * + *

+ * For maximum performance: + * + *


+ * public int hashCode() {
+ *     int hashCode = HashCode.EMPTY_HASH_CODE;
+ *     hashCode = HashCode.combine(hashCode, id);
+ *     hashCode = HashCode.combine(hashCode, name);
+ *     hashCode = HashCode.combine(hashCode, weight);
+ *     return hashCode;
+ * }
+ * 
+ * + *

+ * For convenience:

+ * public int hashCode() {
+ *     return new HashCode().append(id).append(name).append(weight).hashCode();
+ * }
+ * 
+ * + * @see java.util.List#hashCode() + */ +public final class HashCode { + /** + * The hashCode value before any data is appended, equals to 1. + * @see java.util.List#hashCode() + */ + public static final int EMPTY_HASH_CODE = 1; + + private int hashCode = EMPTY_HASH_CODE; + + /** + * Returns accumulated hashCode + */ + public final int hashCode() { + return hashCode; + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, boolean value) { + int v = value ? 1231 : 1237; + return combine(hashCode, v); + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, long value) { + int v = (int) (value ^ (value >>> 32)); + return combine(hashCode, v); + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, float value) { + int v = Float.floatToIntBits(value); + return combine(hashCode, v); + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, double value) { + long v = Double.doubleToLongBits(value); + return combine(hashCode, v); + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, Object value) { + return combine(hashCode, value.hashCode()); + } + + /** + * Combines hashCode of previous elements sequence and value's hashCode. + * @param hashCode previous hashCode value + * @param value new element + * @return combined hashCode + */ + public static int combine(int hashCode, int value) { + return 31 * hashCode + value; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(int value) { + hashCode = combine(hashCode, value); + return this; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(long value) { + hashCode = combine(hashCode, value); + return this; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(float value) { + hashCode = combine(hashCode, value); + return this; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(double value) { + hashCode = combine(hashCode, value); + return this; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(boolean value) { + hashCode = combine(hashCode, value); + return this; + } + + /** + * Appends value's hashCode to the current hashCode. + * @param value new element + * @return this + */ + public final HashCode append(Object value) { + hashCode = combine(hashCode, value); + return this; + } +} diff --git a/app/src/main/java/org/apache/harmony/misc/SystemUtils.java b/app/src/main/java/org/apache/harmony/misc/SystemUtils.java new file mode 100644 index 000000000..6f8dcc644 --- /dev/null +++ b/app/src/main/java/org/apache/harmony/misc/SystemUtils.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.harmony.misc; + +/** + * Some system utils + */ +public class SystemUtils { + // Public constants + // OSes + public static final int OS_WINDOWS = 1; + public static final int OS_LINUX = 2; + public static final int OS_UNKNOWN = -1; + + // Architectures + public static final int ARC_IA32 = 1; + public static final int ARC_IA64 = 2; + public static final int ARC_UNKNOWN = -1; + + // Private fields + private static int os = 0; + private static int arc = 0; + + /** + * getOS method returns on of the operating system codes: + * OS_WINDOWS, OS_LINUX or OS_UNKNOWN + * @return Operating system code + */ + public static int getOS() { + if (os == 0) { + String osname = System.getProperty("os.name").substring(0,3); + if (osname.compareToIgnoreCase("win") == 0) { + os = OS_WINDOWS; + } else { + if (osname.compareToIgnoreCase("lin") == 0) { + os = OS_LINUX; + } else + os = OS_UNKNOWN; + } + } + return os; + } +} diff --git a/app/src/main/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl b/app/src/main/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl new file mode 100644 index 000000000..237b98f73 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl @@ -0,0 +1,83 @@ +#ifdef DOUBLE_FP + #ifdef AMD_FP + #pragma OPENCL EXTENSION cl_amd_fp64 : enable + #else + #ifndef CL_VERSION_1_2 + #pragma OPENCL EXTENSION cl_khr_fp64 : enable + #endif + #endif + #define varfloat double + #define _255 255.0 +#else + #define varfloat float + #define _255 255.0f +#endif + +#ifdef USE_TEXTURE + #define OUTPUT_TYPE __write_only image2d_t +#else + #define OUTPUT_TYPE global uint * +#endif + +/** + * For a description of this algorithm please refer to + * http://en.wikipedia.org/wiki/Mandelbrot_set + * @author Michael Bien + */ +kernel void mandelbrot( + const int width, const int height, + const varfloat x0, const varfloat y0, + const varfloat rangeX, const varfloat rangeY, + OUTPUT_TYPE output, global uint *colorMap, + const int colorMapSize, const int maxIterations +) { + unsigned int ix = get_global_id(0); + unsigned int iy = get_global_id(1); + + varfloat r = x0 + ix * rangeX / width; + varfloat i = y0 + iy * rangeY / height; + + varfloat x = 0; + varfloat y = 0; + + varfloat magnitudeSquared = 0; + int iteration = 0; + + while ( magnitudeSquared < 4 && iteration < maxIterations ) { + varfloat x2 = x*x; + varfloat y2 = y*y; + y = 2 * x * y + i; + x = x2 - y2 + r; + magnitudeSquared = x2+y2; + iteration++; + } + + if ( iteration == maxIterations ) { + #ifdef USE_TEXTURE + write_imagef(output, (int2)(ix, iy), (float4)0); + #else + output[iy * width + ix] = 0; + #endif + } else { + float alpha = (float)iteration / maxIterations; + int colorIndex = (int)(alpha * colorMapSize); + #ifdef USE_TEXTURE + // We could have changed colorMap to a texture + sampler, but the + // unpacking below has minimal overhead and it's kinda interesting. + // We could also use an R32UI texture and do the unpacking in GLSL, + // but then we'd require OpenGL 3.0 (GLSL 1.30). + uint c = colorMap[colorIndex]; + float4 oc = (float4)( + (c & 0xFF) >> 0, + (c & 0xFF00) >> 8, + (c & 0xFF0000) >> 16, + 255.0f + ); + write_imagef(output, (int2)(ix, iy), oc / 255.0f); + #else + output[iy * width + ix] = colorMap[colorIndex]; + #endif + // monochrom + //output[iy * width + ix] = 255*iteration/maxIterations; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.fp b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.fp new file mode 100644 index 000000000..65c3ed2eb --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.fp @@ -0,0 +1,40 @@ +!!ARBfp1.0 +OPTION ARB_precision_hint_fastest; + +ATTRIB winPos = fragment.position; +ATTRIB iDots = fragment.texcoord[0]; + +PARAM ambience = state.lightmodel.ambient; + +PARAM specularColor = state.light[0].specular; + +PARAM UNIFORMS = program.local[0]; + +TEMP temp; + +OUTPUT oColor = result.color; + +# Offset window-space fragment position. +ADD temp.xyz, winPos, UNIFORMS.zwxx; +# Normalize position. +DP3 temp.w, temp, temp; +RSQ temp.w, temp.w; +MUL temp.xy, temp, temp.w; + +# Multiply with current sin. +MUL temp.xy, temp, UNIFORMS.x; +# {-1..1} => {0..1} +MAD temp.xy, temp, 0.5, 0.5; +# Intensify colors. +MUL temp.xy, temp, 2.0; +MOV temp.z, 1.0; + +# Accumulate color contributions. +MAD temp.xyz, iDots.x, temp, ambience; +# Calculate ^ +POW temp.w, iDots.y, UNIFORMS.y; +MAD oColor.xyz, temp.w, specularColor, temp; + +MOV oColor.w, 1.0; + +END \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.vp b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.vp new file mode 100644 index 000000000..d6407f9d1 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFP.vp @@ -0,0 +1,37 @@ +!!ARBvp1.0 + +ATTRIB iPos = vertex.position; +ATTRIB iNormal = vertex.normal; + +PARAM mvp[4] = { state.matrix.mvp }; +PARAM mvIT[4] = { state.matrix.modelview.invtrans }; + +PARAM lightDir = state.light[0].position; +PARAM halfDir = state.light[0].half; + +PARAM UNIFORMS = program.local[0]; + +TEMP normal, dots; + +OUTPUT oPos = result.position; +OUTPUT oDots = result.texcoord[0]; + +# Transform the vertex to clip coordinates. +DP4 oPos.x, mvp[0], iPos; +DP4 oPos.y, mvp[1], iPos; +DP4 oPos.z, mvp[2], iPos; +DP4 oPos.w, mvp[3], iPos; + +# Transform the normal to eye coordinates. +DP3 normal.x, mvIT[0], iNormal; +DP3 normal.y, mvIT[1], iNormal; +DP3 normal.z, mvIT[2], iNormal; + +# Compute diffuse and specular dot products and clamp them. +DP3 dots.x, normal, lightDir; +MAX oDots.x, dots.x, 0.0; + +DP3 dots.y, normal, halfDir; +MAX oDots.y, dots.y, 0.0; + +END \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.fsh b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.fsh new file mode 100644 index 000000000..dd5102979 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.fsh @@ -0,0 +1,21 @@ +uniform vec4 UNIFORMS; + +varying vec2 dots; + +void main(void) { + // Offset window-space fragment position. + vec3 color2D = vec3(gl_FragCoord + UNIFORMS.zwxx); + + // Normalize position. + // Multiply with current sin. + color2D.xy = normalize(color2D).xy * UNIFORMS.x; + // {-1..1} => {0..1} & Intensify colors. + color2D.xy = (vec2(color2D) * 0.5 + 0.5) * 2.0; + color2D.z = 1.0; + + // Accumulate color contributions. + // Hardcoded ambience and specular color, due to buggy drivers. + color2D = dots.x * color2D + vec3(0.2, 0.2, 0.2); + gl_FragColor.rgb = pow(dots.y, UNIFORMS.y) * vec3(1.0, 1.0, 0.5) + color2D; + gl_FragColor.a = 1.0; +} \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.vsh b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.vsh new file mode 100644 index 000000000..242ba9f49 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderFSH.vsh @@ -0,0 +1,13 @@ +uniform vec4 UNIFORMS; + +varying vec2 dots; + +void main(void) { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + + vec3 normal = gl_NormalMatrix * gl_Normal; + + // Pass the dot products to the fragment shader. + dots.x = max(dot(normal, vec3(gl_LightSource[0].position)), 0.0); + dots.y = max(dot(normal, vec3(gl_LightSource[0].halfVector)), 0.0); +} \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderUNI.vsh b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderUNI.vsh new file mode 100644 index 000000000..d1fbd74e2 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderUNI.vsh @@ -0,0 +1,28 @@ +#version 140 +#extension GL_ARB_uniform_buffer_object : enable + +layout(std140) uniform test { + vec2 uniformA; + vec3 uniformB; +}; + +void main(void) { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + + vec3 normal = gl_NormalMatrix * gl_Normal; + + float diffuseDot = max(dot(normal, vec3(gl_LightSource[0].position)), 0.0); + float specularDot = max(dot(normal, vec3(gl_LightSource[0].halfVector)), 0.0); + specularDot = pow(specularDot, uniformA.y); + + // Normalize position, to get a {-1..1} value for each vertex. + // Multiply with current sin. + vec3 color3D = normalize(vec3(gl_Vertex)) * uniformA.x; + // {-1..1} => {0..1} & Intensify colors. + color3D = (color3D * 0.5 + 0.5) * 2.0; + + // Accumulate color contributions. + color3D = diffuseDot * (uniformB + color3D) + vec3(gl_LightModel.ambient); + gl_FrontColor.rgb = specularDot * vec3(gl_LightSource[0].specular) + color3D; + gl_FrontColor.a = 1.0; +} \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVP.vp b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVP.vp new file mode 100644 index 000000000..efb5ed121 --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVP.vp @@ -0,0 +1,59 @@ +!!ARBvp1.0 + +ATTRIB iPos = vertex.position; +ATTRIB iNormal = vertex.normal; + +PARAM mvp[4] = { state.matrix.mvp }; +PARAM mvIT[4] = { state.matrix.modelview.invtrans }; + +PARAM ambience = state.lightmodel.ambient; + +PARAM lightDir = state.light[0].position; +PARAM halfDir = state.light[0].half; +PARAM diffuseColor = state.light[0].diffuse; +PARAM specularColor = state.light[0].specular; + +PARAM UNIFORMS = program.local[0]; + +TEMP temp, temp2, normal, dots; + +OUTPUT oPos = result.position; +OUTPUT oColor = result.color; + +# Transform the vertex to clip coordinates. +DP4 oPos.x, mvp[0], iPos; +DP4 oPos.y, mvp[1], iPos; +DP4 oPos.z, mvp[2], iPos; +DP4 oPos.w, mvp[3], iPos; + +# Transform the normal to eye coordinates. +DP3 normal.x, mvIT[0], iNormal; +DP3 normal.y, mvIT[1], iNormal; +DP3 normal.z, mvIT[2], iNormal; + +# Compute diffuse and specular dot products and use LIT to compute +# lighting coefficients. +DP3 dots.x, normal, lightDir; +DP3 dots.y, normal, halfDir; +MOV dots.w, UNIFORMS.y; +LIT dots, dots; + +# Normalize position, to get a {-1..1} value for each vertex. +DP3 temp.w, iPos, iPos; +RSQ temp.w, temp.w; +MUL temp.xyz, iPos, temp.w; + +# Multiply with current sin. +MUL temp.xyz, temp, UNIFORMS.x; +# {-1..1} => {0..1} +MAD temp.xyz, temp, 0.5, 0.5; +# Intensify colors. +MUL temp.xyz, temp, 2.0; + +# Accumulate color contributions. +MAD temp.xyz, dots.y, temp, ambience; +MAD oColor.xyz, dots.z, specularColor, temp; +MOV oColor.w, 1.0; + + +END \ No newline at end of file diff --git a/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVSH.vsh b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVSH.vsh new file mode 100644 index 000000000..3516b3f5a --- /dev/null +++ b/app/src/main/java/org/lwjgl/test/opengl/shaders/shaderVSH.vsh @@ -0,0 +1,22 @@ +uniform vec2 UNIFORMS; + +void main(void) { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + + vec3 normal = gl_NormalMatrix * gl_Normal; + + float diffuseDot = max(dot(normal, vec3(gl_LightSource[0].position)), 0.0); + float specularDot = max(dot(normal, vec3(gl_LightSource[0].halfVector)), 0.0); + specularDot = pow(specularDot, UNIFORMS.y); + + // Normalize position, to get a {-1..1} value for each vertex. + // Multiply with current sin. + vec3 color3D = normalize(vec3(gl_Vertex)) * UNIFORMS.x; + // {-1..1} => {0..1} & Intensify colors. + color3D = (color3D * 0.5 + 0.5) * 2.0; + + // Accumulate color contributions. + color3D = diffuseDot * color3D + vec3(gl_LightModel.ambient); + gl_FrontColor.rgb = specularDot * vec3(gl_LightSource[0].specular) + color3D; + gl_FrontColor.a = 1.0; +} \ No newline at end of file diff --git a/app/src/main/java/sun/applet/AppletAudioClip.java b/app/src/main/java/sun/applet/AppletAudioClip.java new file mode 100644 index 000000000..7624248e6 --- /dev/null +++ b/app/src/main/java/sun/applet/AppletAudioClip.java @@ -0,0 +1,30 @@ +package sun.applet; + +import java.applet.*; + +public class AppletAudioClip implements AudioClip +{ + public AppletAudioClip(java.net.URL url) + { + super(); + } + + @Override + public void play() + { + // TODO: Implement this method + } + + @Override + public void loop() + { + // TODO: Implement this method + } + + @Override + public void stop() + { + // TODO: Implement this method + } + +} diff --git a/app/src/main/java/sun/misc/FakeUnsafe.java b/app/src/main/java/sun/misc/FakeUnsafe.java new file mode 100644 index 000000000..facb0dd31 --- /dev/null +++ b/app/src/main/java/sun/misc/FakeUnsafe.java @@ -0,0 +1,14 @@ +package sun.misc; + +public final class FakeUnsafe +{ + private FakeUnsafe() {} + + public static FakeUnsafe getUnsafe() { + return new FakeUnsafe(); + } + + public void ensureClassInitialized(Class unused) { + + } +} diff --git a/app/src/main/java/sun/misc/JavaIOAccess.java b/app/src/main/java/sun/misc/JavaIOAccess.java new file mode 100644 index 000000000..ab2888bfc --- /dev/null +++ b/app/src/main/java/sun/misc/JavaIOAccess.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; +import java.io.Console; +import java.nio.charset.Charset; + +public interface JavaIOAccess { + public Console console(); + public Charset charset(); +} diff --git a/app/src/main/java/sun/misc/JavaIOFileDescriptorAccess.java b/app/src/main/java/sun/misc/JavaIOFileDescriptorAccess.java new file mode 100644 index 000000000..9e987e6c3 --- /dev/null +++ b/app/src/main/java/sun/misc/JavaIOFileDescriptorAccess.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package sun.misc; + +import java.io.FileDescriptor; + +/* + * @author Chris Hegarty + */ + +public interface JavaIOFileDescriptorAccess { + public void set(FileDescriptor obj, int fd); + public int get(FileDescriptor fd); + + // Only valid on Windows + public void setHandle(FileDescriptor obj, long handle); + public long getHandle(FileDescriptor obj); +} diff --git a/app/src/main/java/sun/misc/JavaNetHttpCookieAccess.java b/app/src/main/java/sun/misc/JavaNetHttpCookieAccess.java new file mode 100644 index 000000000..129703f07 --- /dev/null +++ b/app/src/main/java/sun/misc/JavaNetHttpCookieAccess.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import java.net.HttpCookie; +import java.util.List; + +public interface JavaNetHttpCookieAccess { + /* + * Constructs cookies from Set-Cookie or Set-Cookie2 header string, + * retaining the original header String in the cookie itself. + */ + public List parse(String header); + + /* + * Returns the original header this cookie was consructed from, if it was + * constructed by parsing a header, otherwise null. + */ + public String header(HttpCookie cookie); +} + diff --git a/app/src/main/java/sun/misc/JavaNioAccess.java b/app/src/main/java/sun/misc/JavaNioAccess.java new file mode 100644 index 000000000..e4f0a7812 --- /dev/null +++ b/app/src/main/java/sun/misc/JavaNioAccess.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import java.nio.Buffer; +import java.nio.ByteBuffer; + +public interface JavaNioAccess { + /** + * Provides access to information on buffer usage. + */ + interface BufferPool { + String getName(); + long getCount(); + long getTotalCapacity(); + long getMemoryUsed(); + } + BufferPool getDirectBufferPool(); + + /** + * Constructs a direct ByteBuffer referring to the block of memory starting + * at the given memory address and and extending {@code cap} bytes. + * The {@code ob} parameter is an arbitrary object that is attached + * to the resulting buffer. + */ + ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob); + + /** + * Truncates a buffer by changing its capacity to 0. + */ + void truncate(Buffer buf); + +} diff --git a/app/src/main/java/sun/misc/JavaSecurityProtectionDomainAccess.java b/app/src/main/java/sun/misc/JavaSecurityProtectionDomainAccess.java new file mode 100644 index 000000000..95560ffab --- /dev/null +++ b/app/src/main/java/sun/misc/JavaSecurityProtectionDomainAccess.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package sun.misc; + +import java.security.PermissionCollection; +import java.security.ProtectionDomain; + +public interface JavaSecurityProtectionDomainAccess { + interface ProtectionDomainCache { + void put(ProtectionDomain pd, PermissionCollection pc); + PermissionCollection get(ProtectionDomain pd); + } + /** + * Returns the ProtectionDomainCache. + */ + ProtectionDomainCache getProtectionDomainCache(); +} diff --git a/app/src/main/java/sun/misc/JavaUtilJarAccess.java b/app/src/main/java/sun/misc/JavaUtilJarAccess.java new file mode 100644 index 000000000..0f1efd1d2 --- /dev/null +++ b/app/src/main/java/sun/misc/JavaUtilJarAccess.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import java.io.IOException; +import java.net.URL; +import java.security.CodeSource; +import java.util.Enumeration; +import java.util.List; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + +public interface JavaUtilJarAccess { + public boolean jarFileHasClassPathAttribute(JarFile jar) throws IOException; + public CodeSource[] getCodeSources(JarFile jar, URL url); + public CodeSource getCodeSource(JarFile jar, URL url, String name); + public Enumeration entryNames(JarFile jar, CodeSource[] cs); + public Enumeration entries2(JarFile jar); + public void setEagerValidation(JarFile jar, boolean eager); + public List getManifestDigests(JarFile jar); +} diff --git a/app/src/main/java/sun/misc/JavaUtilZipAccess.java b/app/src/main/java/sun/misc/JavaUtilZipAccess.java new file mode 100644 index 000000000..b29d7ed68 --- /dev/null +++ b/app/src/main/java/sun/misc/JavaUtilZipAccess.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import java.util.zip.Adler32; +import java.nio.ByteBuffer; + +public interface JavaUtilZipAccess { + public void update(Adler32 adler32, ByteBuffer buf); +} diff --git a/app/src/main/java/sun/misc/SharedSecrets.java b/app/src/main/java/sun/misc/SharedSecrets.java new file mode 100644 index 000000000..6209e92ef --- /dev/null +++ b/app/src/main/java/sun/misc/SharedSecrets.java @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import java.util.jar.JarFile; +import java.io.Console; +import java.io.FileDescriptor; +import java.security.ProtectionDomain; +import java.util.zip.Adler32; +//import javax.security.auth.kerberos.KeyTab; + +import java.security.AccessController; + +/** A repository of "shared secrets", which are a mechanism for + calling implementation-private methods in another package without + using reflection. A package-private class implements a public + interface and provides the ability to call package-private methods + within that package; the object implementing that interface is + provided through a third package to which access is restricted. + This framework avoids the primary disadvantage of using reflection + for this purpose, namely the loss of compile-time checking. */ + +public class SharedSecrets { + private static final FakeUnsafe FakeUnsafe = FakeUnsafe.getUnsafe(); + private static JavaUtilJarAccess javaUtilJarAccess; + //private static JavaLangAccess javaLangAccess; + private static JavaIOAccess javaIOAccess; + //private static JavaNetAccess javaNetAccess; + private static JavaNetHttpCookieAccess javaNetHttpCookieAccess; + private static JavaNioAccess javaNioAccess; + private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; + private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess; + //private static JavaSecurityAccess javaSecurityAccess; + //private static JavaxSecurityAuthKerberosAccess javaxSecurityAuthKerberosAccess; + private static JavaUtilZipAccess javaUtilZipAccess; + + public static JavaUtilJarAccess javaUtilJarAccess() { + if (javaUtilJarAccess == null) { + // Ensure JarFile is initialized; we know that that class + // provides the shared secret + FakeUnsafe.ensureClassInitialized(JarFile.class); + } + return javaUtilJarAccess; + } + + public static void setJavaUtilJarAccess(JavaUtilJarAccess access) { + javaUtilJarAccess = access; + } +/* + public static void setJavaLangAccess(JavaLangAccess jla) { + javaLangAccess = jla; + } + + public static JavaLangAccess getJavaLangAccess() { + return javaLangAccess; + } + + public static void setJavaNetAccess(JavaNetAccess jna) { + javaNetAccess = jna; + } + + public static JavaNetAccess getJavaNetAccess() { + return javaNetAccess; + } +*/ + public static void setJavaNetHttpCookieAccess(JavaNetHttpCookieAccess a) { + javaNetHttpCookieAccess = a; + } + + public static JavaNetHttpCookieAccess getJavaNetHttpCookieAccess() { + if (javaNetHttpCookieAccess == null) + FakeUnsafe.ensureClassInitialized(java.net.HttpCookie.class); + return javaNetHttpCookieAccess; + } + + public static void setJavaNioAccess(JavaNioAccess jna) { + javaNioAccess = jna; + } + + public static JavaNioAccess getJavaNioAccess() { + if (javaNioAccess == null) { + // Ensure java.nio.ByteOrder is initialized; we know that + // this class initializes java.nio.Bits that provides the + // shared secret. + FakeUnsafe.ensureClassInitialized(java.nio.ByteOrder.class); + } + return javaNioAccess; + } + + public static void setJavaIOAccess(JavaIOAccess jia) { + javaIOAccess = jia; + } + + public static JavaIOAccess getJavaIOAccess() { + if (javaIOAccess == null) { + FakeUnsafe.ensureClassInitialized(Console.class); + } + return javaIOAccess; + } + + public static void setJavaIOFileDescriptorAccess(JavaIOFileDescriptorAccess jiofda) { + javaIOFileDescriptorAccess = jiofda; + } + + public static JavaIOFileDescriptorAccess getJavaIOFileDescriptorAccess() { + if (javaIOFileDescriptorAccess == null) + FakeUnsafe.ensureClassInitialized(FileDescriptor.class); + + return javaIOFileDescriptorAccess; + } + + public static void setJavaSecurityProtectionDomainAccess + (JavaSecurityProtectionDomainAccess jspda) { + javaSecurityProtectionDomainAccess = jspda; + } + + public static JavaSecurityProtectionDomainAccess + getJavaSecurityProtectionDomainAccess() { + if (javaSecurityProtectionDomainAccess == null) + FakeUnsafe.ensureClassInitialized(ProtectionDomain.class); + return javaSecurityProtectionDomainAccess; + } +/* + public static void setJavaSecurityAccess(JavaSecurityAccess jsa) { + javaSecurityAccess = jsa; + } + + public static JavaSecurityAccess getJavaSecurityAccess() { + if (javaSecurityAccess == null) { + FakeUnsafe.ensureClassInitialized(AccessController.class); + } + return javaSecurityAccess; + } + + public static void setJavaxSecurityAuthKerberosAccess + (JavaxSecurityAuthKerberosAccess jsaka) { + javaxSecurityAuthKerberosAccess = jsaka; + } + + public static JavaxSecurityAuthKerberosAccess + getJavaxSecurityAuthKerberosAccess() { + if (javaxSecurityAuthKerberosAccess == null) + FakeUnsafe.ensureClassInitialized(KeyTab.class); + return javaxSecurityAuthKerberosAccess; + } +*/ + public static void setJavaUtilZipAccess(JavaUtilZipAccess access) { + javaUtilZipAccess = access; + } + + public static JavaUtilZipAccess getJavaUtilZipAccess() { + if (javaUtilZipAccess == null) { + FakeUnsafe.ensureClassInitialized(Adler32.class); + } + return javaUtilZipAccess; + } +} diff --git a/app/src/main/java/sun/misc/Unsafe.java b/app/src/main/java/sun/misc/Unsafe.java new file mode 100644 index 000000000..45e1081a2 --- /dev/null +++ b/app/src/main/java/sun/misc/Unsafe.java @@ -0,0 +1,1013 @@ +/* + * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package sun.misc; + +import java.security.*; +import java.lang.reflect.*; + + +/** + * A collection of methods for performing low-level, unsafe operations. + * Although the class and all methods are public, use of this class is + * limited because only trusted code can obtain instances of it. + * + * @author John R. Rose + * @see #getUnsafe + */ + +/* + * MOD tested: SecurityException: Unsafe access denied??? but Android + * doesn't have Unsafe! + * Why this happend? Now FIXME using sun/misc/FakeUnsafe.java + */ + +public final class Unsafe { + + /* + private static native void registerNatives(); + static { + registerNatives(); + sun.reflect.Reflection.registerMethodsToFilter(Unsafe.class, "getUnsafe"); + } + */ + + private Unsafe() {} + + private static final Unsafe theUnsafe = new Unsafe(); + + /** + * Provides the caller with the capability of performing unsafe + * operations. + * + *

The returned Unsafe object should be carefully guarded + * by the caller, since it can be used to read and write data at arbitrary + * memory addresses. It must never be passed to untrusted code. + * + *

Most methods in this class are very low-level, and correspond to a + * small number of hardware instructions (on typical machines). Compilers + * are encouraged to optimize these methods accordingly. + * + *

Here is a suggested idiom for using unsafe operations: + * + *

+     * class MyTrustedClass {
+     *   private static final Unsafe unsafe = Unsafe.getUnsafe();
+     *   ...
+     *   private long myCountAddress = ...;
+     *   public int getCount() { return unsafe.getByte(myCountAddress); }
+     * }
+     * 
+ * + * (It may assist compilers to make the local variable be + * final.) + * + * @exception SecurityException if a security manager exists and its + * checkPropertiesAccess method doesn't allow + * access to the system properties. + */ + public static Unsafe getUnsafe() { + /* + Class cc = sun.reflect.Reflection.getCallerClass(2); + if (cc.getClassLoader() != null) + throw new SecurityException("Unsafe"); + */ + return theUnsafe; + } + + /// peek and poke operations + /// (compilers should optimize these to memory ops) + + // These work on object fields in the Java heap. + // They will not work on elements of packed arrays. + + /** + * Fetches a value from a given Java variable. + * More specifically, fetches a field or array element within the given + * object o at the given offset, or (if o is + * null) from the memory address whose numerical value is the given + * offset. + *

+ * The results are undefined unless one of the following cases is true: + *

    + *
  • The offset was obtained from {@link #objectFieldOffset} on + * the {@link java.lang.reflect.Field} of some Java field and the object + * referred to by o is of a class compatible with that + * field's class. + * + *
  • The offset and object reference o (either null or + * non-null) were both obtained via {@link #staticFieldOffset} + * and {@link #staticFieldBase} (respectively) from the + * reflective {@link Field} representation of some Java field. + * + *
  • The object referred to by o is an array, and the offset + * is an integer of the form B+N*S, where N is + * a valid index into the array, and B and S are + * the values obtained by {@link #arrayBaseOffset} and {@link + * #arrayIndexScale} (respectively) from the array's class. The value + * referred to is the Nth element of the array. + * + *
+ *

+ * If one of the above cases is true, the call references a specific Java + * variable (field or array element). However, the results are undefined + * if that variable is not in fact of the type returned by this method. + *

+ * This method refers to a variable by means of two parameters, and so + * it provides (in effect) a double-register addressing mode + * for Java variables. When the object reference is null, this method + * uses its offset as an absolute address. This is similar in operation + * to methods such as {@link #getInt(long)}, which provide (in effect) a + * single-register addressing mode for non-Java variables. + * However, because Java variables may have a different layout in memory + * from non-Java variables, programmers should not assume that these + * two addressing modes are ever equivalent. Also, programmers should + * remember that offsets from the double-register addressing mode cannot + * be portably confused with longs used in the single-register addressing + * mode. + * + * @param o Java heap object in which the variable resides, if any, else + * null + * @param offset indication of where the variable resides in a Java heap + * object, if any, else a memory address locating the variable + * statically + * @return the value fetched from the indicated Java variable + * @throws RuntimeException No defined exceptions are thrown, not even + * {@link NullPointerException} + */ + public native int getInt(Object o, long offset); + + /** + * Stores a value into a given Java variable. + *

+ * The first two parameters are interpreted exactly as with + * {@link #getInt(Object, long)} to refer to a specific + * Java variable (field or array element). The given value + * is stored into that variable. + *

+ * The variable must be of the same type as the method + * parameter x. + * + * @param o Java heap object in which the variable resides, if any, else + * null + * @param offset indication of where the variable resides in a Java heap + * object, if any, else a memory address locating the variable + * statically + * @param x the value to store into the indicated Java variable + * @throws RuntimeException No defined exceptions are thrown, not even + * {@link NullPointerException} + */ + public native void putInt(Object o, long offset, int x); + + /** + * Fetches a reference value from a given Java variable. + * @see #getInt(Object, long) + */ + public native Object getObject(Object o, long offset); + + /** + * Stores a reference value into a given Java variable. + *

+ * Unless the reference x being stored is either null + * or matches the field type, the results are undefined. + * If the reference o is non-null, car marks or + * other store barriers for that object (if the VM requires them) + * are updated. + * @see #putInt(Object, int, int) + */ + public native void putObject(Object o, long offset, Object x); + + /** @see #getInt(Object, long) */ + public native boolean getBoolean(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putBoolean(Object o, long offset, boolean x); + /** @see #getInt(Object, long) */ + public native byte getByte(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putByte(Object o, long offset, byte x); + /** @see #getInt(Object, long) */ + public native short getShort(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putShort(Object o, long offset, short x); + /** @see #getInt(Object, long) */ + public native char getChar(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putChar(Object o, long offset, char x); + /** @see #getInt(Object, long) */ + public native long getLong(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putLong(Object o, long offset, long x); + /** @see #getInt(Object, long) */ + public native float getFloat(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putFloat(Object o, long offset, float x); + /** @see #getInt(Object, long) */ + public native double getDouble(Object o, long offset); + /** @see #putInt(Object, int, int) */ + public native void putDouble(Object o, long offset, double x); + + /** + * This method, like all others with 32-bit offsets, was native + * in a previous release but is now a wrapper which simply casts + * the offset to a long value. It provides backward compatibility + * with bytecodes compiled against 1.4. + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public int getInt(Object o, int offset) { + return getInt(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putInt(Object o, int offset, int x) { + putInt(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public Object getObject(Object o, int offset) { + return getObject(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putObject(Object o, int offset, Object x) { + putObject(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public boolean getBoolean(Object o, int offset) { + return getBoolean(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putBoolean(Object o, int offset, boolean x) { + putBoolean(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public byte getByte(Object o, int offset) { + return getByte(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putByte(Object o, int offset, byte x) { + putByte(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public short getShort(Object o, int offset) { + return getShort(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putShort(Object o, int offset, short x) { + putShort(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public char getChar(Object o, int offset) { + return getChar(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putChar(Object o, int offset, char x) { + putChar(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public long getLong(Object o, int offset) { + return getLong(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putLong(Object o, int offset, long x) { + putLong(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public float getFloat(Object o, int offset) { + return getFloat(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putFloat(Object o, int offset, float x) { + putFloat(o, (long)offset, x); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public double getDouble(Object o, int offset) { + return getDouble(o, (long)offset); + } + + /** + * @deprecated As of 1.4.1, cast the 32-bit offset argument to a long. + * See {@link #staticFieldOffset}. + */ + @Deprecated + public void putDouble(Object o, int offset, double x) { + putDouble(o, (long)offset, x); + } + + // These work on values in the C heap. + + /** + * Fetches a value from a given memory address. If the address is zero, or + * does not point into a block obtained from {@link #allocateMemory}, the + * results are undefined. + * + * @see #allocateMemory + */ + public native byte getByte(long address); + + /** + * Stores a value into a given memory address. If the address is zero, or + * does not point into a block obtained from {@link #allocateMemory}, the + * results are undefined. + * + * @see #getByte(long) + */ + public native void putByte(long address, byte x); + + /** @see #getByte(long) */ + public native short getShort(long address); + /** @see #putByte(long, byte) */ + public native void putShort(long address, short x); + /** @see #getByte(long) */ + public native char getChar(long address); + /** @see #putByte(long, byte) */ + public native void putChar(long address, char x); + /** @see #getByte(long) */ + public native int getInt(long address); + /** @see #putByte(long, byte) */ + public native void putInt(long address, int x); + /** @see #getByte(long) */ + public native long getLong(long address); + /** @see #putByte(long, byte) */ + public native void putLong(long address, long x); + /** @see #getByte(long) */ + public native float getFloat(long address); + /** @see #putByte(long, byte) */ + public native void putFloat(long address, float x); + /** @see #getByte(long) */ + public native double getDouble(long address); + /** @see #putByte(long, byte) */ + public native void putDouble(long address, double x); + + /** + * Fetches a native pointer from a given memory address. If the address is + * zero, or does not point into a block obtained from {@link + * #allocateMemory}, the results are undefined. + * + *

If the native pointer is less than 64 bits wide, it is extended as + * an unsigned number to a Java long. The pointer may be indexed by any + * given byte offset, simply by adding that offset (as a simple integer) to + * the long representing the pointer. The number of bytes actually read + * from the target address maybe determined by consulting {@link + * #addressSize}. + * + * @see #allocateMemory + */ + public native long getAddress(long address); + + /** + * Stores a native pointer into a given memory address. If the address is + * zero, or does not point into a block obtained from {@link + * #allocateMemory}, the results are undefined. + * + *

The number of bytes actually written at the target address maybe + * determined by consulting {@link #addressSize}. + * + * @see #getAddress(long) + */ + public native void putAddress(long address, long x); + + /// wrappers for malloc, realloc, free: + + /** + * Allocates a new block of native memory, of the given size in bytes. The + * contents of the memory are uninitialized; they will generally be + * garbage. The resulting native pointer will never be zero, and will be + * aligned for all value types. Dispose of this memory by calling {@link + * #freeMemory}, or resize it with {@link #reallocateMemory}. + * + * @throws IllegalArgumentException if the size is negative or too large + * for the native size_t type + * + * @throws OutOfMemoryError if the allocation is refused by the system + * + * @see #getByte(long) + * @see #putByte(long, byte) + */ + public native long allocateMemory(long bytes); + + /** + * Resizes a new block of native memory, to the given size in bytes. The + * contents of the new block past the size of the old block are + * uninitialized; they will generally be garbage. The resulting native + * pointer will be zero if and only if the requested size is zero. The + * resulting native pointer will be aligned for all value types. Dispose + * of this memory by calling {@link #freeMemory}, or resize it with {@link + * #reallocateMemory}. The address passed to this method may be null, in + * which case an allocation will be performed. + * + * @throws IllegalArgumentException if the size is negative or too large + * for the native size_t type + * + * @throws OutOfMemoryError if the allocation is refused by the system + * + * @see #allocateMemory + */ + public native long reallocateMemory(long address, long bytes); + + /** + * Sets all bytes in a given block of memory to a fixed value + * (usually zero). + * + *

This method determines a block's base address by means of two parameters, + * and so it provides (in effect) a double-register addressing mode, + * as discussed in {@link #getInt(Object,long)}. When the object reference is null, + * the offset supplies an absolute base address. + * + *

The stores are in coherent (atomic) units of a size determined + * by the address and length parameters. If the effective address and + * length are all even modulo 8, the stores take place in 'long' units. + * If the effective address and length are (resp.) even modulo 4 or 2, + * the stores take place in units of 'int' or 'short'. + * + * @since 1.7 + */ + public native void setMemory(Object o, long offset, long bytes, byte value); + + /** + * Sets all bytes in a given block of memory to a fixed value + * (usually zero). This provides a single-register addressing mode, + * as discussed in {@link #getInt(Object,long)}. + * + *

Equivalent to setMemory(null, address, bytes, value). + */ + public void setMemory(long address, long bytes, byte value) { + setMemory(null, address, bytes, value); + } + + /** + * Sets all bytes in a given block of memory to a copy of another + * block. + * + *

This method determines each block's base address by means of two parameters, + * and so it provides (in effect) a double-register addressing mode, + * as discussed in {@link #getInt(Object,long)}. When the object reference is null, + * the offset supplies an absolute base address. + * + *

The transfers are in coherent (atomic) units of a size determined + * by the address and length parameters. If the effective addresses and + * length are all even modulo 8, the transfer takes place in 'long' units. + * If the effective addresses and length are (resp.) even modulo 4 or 2, + * the transfer takes place in units of 'int' or 'short'. + * + * @since 1.7 + */ + public native void copyMemory(Object srcBase, long srcOffset, + Object destBase, long destOffset, + long bytes); + /** + * Sets all bytes in a given block of memory to a copy of another + * block. This provides a single-register addressing mode, + * as discussed in {@link #getInt(Object,long)}. + * + * Equivalent to copyMemory(null, srcAddress, null, destAddress, bytes). + */ + public void copyMemory(long srcAddress, long destAddress, long bytes) { + copyMemory(null, srcAddress, null, destAddress, bytes); + } + + /** + * Disposes of a block of native memory, as obtained from {@link + * #allocateMemory} or {@link #reallocateMemory}. The address passed to + * this method may be null, in which case no action is taken. + * + * @see #allocateMemory + */ + public native void freeMemory(long address); + + /// random queries + + /** + * This constant differs from all results that will ever be returned from + * {@link #staticFieldOffset}, {@link #objectFieldOffset}, + * or {@link #arrayBaseOffset}. + */ + public static final int INVALID_FIELD_OFFSET = -1; + + /** + * Returns the offset of a field, truncated to 32 bits. + * This method is implemented as follows: + *

+     * public int fieldOffset(Field f) {
+     *     if (Modifier.isStatic(f.getModifiers()))
+     *         return (int) staticFieldOffset(f);
+     *     else
+     *         return (int) objectFieldOffset(f);
+     * }
+     * 
+ * @deprecated As of 1.4.1, use {@link #staticFieldOffset} for static + * fields and {@link #objectFieldOffset} for non-static fields. + */ + @Deprecated + public int fieldOffset(Field f) { + if (Modifier.isStatic(f.getModifiers())) + return (int) staticFieldOffset(f); + else + return (int) objectFieldOffset(f); + } + + /** + * Returns the base address for accessing some static field + * in the given class. This method is implemented as follows: + *
+     * public Object staticFieldBase(Class c) {
+     *     Field[] fields = c.getDeclaredFields();
+     *     for (int i = 0; i < fields.length; i++) {
+     *         if (Modifier.isStatic(fields[i].getModifiers())) {
+     *             return staticFieldBase(fields[i]);
+     *         }
+     *     }
+     *     return null;
+     * }
+     * 
+ * @deprecated As of 1.4.1, use {@link #staticFieldBase(Field)} + * to obtain the base pertaining to a specific {@link Field}. + * This method works only for JVMs which store all statics + * for a given class in one place. + */ + @Deprecated + public Object staticFieldBase(Class c) { + Field[] fields = c.getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + if (Modifier.isStatic(fields[i].getModifiers())) { + return staticFieldBase(fields[i]); + } + } + return null; + } + + /** + * Report the location of a given field in the storage allocation of its + * class. Do not expect to perform any sort of arithmetic on this offset; + * it is just a cookie which is passed to the unsafe heap memory accessors. + * + *

Any given field will always have the same offset and base, and no + * two distinct fields of the same class will ever have the same offset + * and base. + * + *

As of 1.4.1, offsets for fields are represented as long values, + * although the Sun JVM does not use the most significant 32 bits. + * However, JVM implementations which store static fields at absolute + * addresses can use long offsets and null base pointers to express + * the field locations in a form usable by {@link #getInt(Object,long)}. + * Therefore, code which will be ported to such JVMs on 64-bit platforms + * must preserve all bits of static field offsets. + * @see #getInt(Object, long) + */ + public native long staticFieldOffset(Field f); + + /** + * Report the location of a given static field, in conjunction with {@link + * #staticFieldBase}. + *

Do not expect to perform any sort of arithmetic on this offset; + * it is just a cookie which is passed to the unsafe heap memory accessors. + * + *

Any given field will always have the same offset, and no two distinct + * fields of the same class will ever have the same offset. + * + *

As of 1.4.1, offsets for fields are represented as long values, + * although the Sun JVM does not use the most significant 32 bits. + * It is hard to imagine a JVM technology which needs more than + * a few bits to encode an offset within a non-array object, + * However, for consistency with other methods in this class, + * this method reports its result as a long value. + * @see #getInt(Object, long) + */ + public native long objectFieldOffset(Field f); + + /** + * Report the location of a given static field, in conjunction with {@link + * #staticFieldOffset}. + *

Fetch the base "Object", if any, with which static fields of the + * given class can be accessed via methods like {@link #getInt(Object, + * long)}. This value may be null. This value may refer to an object + * which is a "cookie", not guaranteed to be a real Object, and it should + * not be used in any way except as argument to the get and put routines in + * this class. + */ + public native Object staticFieldBase(Field f); + + /** + * Ensure the given class has been initialized. This is often + * needed in conjunction with obtaining the static field base of a + * class. + */ + public native void ensureClassInitialized(Class c); + + /** + * Report the offset of the first element in the storage allocation of a + * given array class. If {@link #arrayIndexScale} returns a non-zero value + * for the same class, you may use that scale factor, together with this + * base offset, to form new offsets to access elements of arrays of the + * given class. + * + * @see #getInt(Object, long) + * @see #putInt(Object, long, int) + */ + public native int arrayBaseOffset(Class arrayClass); + + /** The value of {@code arrayBaseOffset(boolean[].class)} */ + public static final int ARRAY_BOOLEAN_BASE_OFFSET + = theUnsafe.arrayBaseOffset(boolean[].class); + + /** The value of {@code arrayBaseOffset(byte[].class)} */ + public static final int ARRAY_BYTE_BASE_OFFSET + = theUnsafe.arrayBaseOffset(byte[].class); + + /** The value of {@code arrayBaseOffset(short[].class)} */ + public static final int ARRAY_SHORT_BASE_OFFSET + = theUnsafe.arrayBaseOffset(short[].class); + + /** The value of {@code arrayBaseOffset(char[].class)} */ + public static final int ARRAY_CHAR_BASE_OFFSET + = theUnsafe.arrayBaseOffset(char[].class); + + /** The value of {@code arrayBaseOffset(int[].class)} */ + public static final int ARRAY_INT_BASE_OFFSET + = theUnsafe.arrayBaseOffset(int[].class); + + /** The value of {@code arrayBaseOffset(long[].class)} */ + public static final int ARRAY_LONG_BASE_OFFSET + = theUnsafe.arrayBaseOffset(long[].class); + + /** The value of {@code arrayBaseOffset(float[].class)} */ + public static final int ARRAY_FLOAT_BASE_OFFSET + = theUnsafe.arrayBaseOffset(float[].class); + + /** The value of {@code arrayBaseOffset(double[].class)} */ + public static final int ARRAY_DOUBLE_BASE_OFFSET + = theUnsafe.arrayBaseOffset(double[].class); + + /** The value of {@code arrayBaseOffset(Object[].class)} */ + public static final int ARRAY_OBJECT_BASE_OFFSET + = theUnsafe.arrayBaseOffset(Object[].class); + + /** + * Report the scale factor for addressing elements in the storage + * allocation of a given array class. However, arrays of "narrow" types + * will generally not work properly with accessors like {@link + * #getByte(Object, int)}, so the scale factor for such classes is reported + * as zero. + * + * @see #arrayBaseOffset + * @see #getInt(Object, long) + * @see #putInt(Object, long, int) + */ + public native int arrayIndexScale(Class arrayClass); + + /** The value of {@code arrayIndexScale(boolean[].class)} */ + public static final int ARRAY_BOOLEAN_INDEX_SCALE + = theUnsafe.arrayIndexScale(boolean[].class); + + /** The value of {@code arrayIndexScale(byte[].class)} */ + public static final int ARRAY_BYTE_INDEX_SCALE + = theUnsafe.arrayIndexScale(byte[].class); + + /** The value of {@code arrayIndexScale(short[].class)} */ + public static final int ARRAY_SHORT_INDEX_SCALE + = theUnsafe.arrayIndexScale(short[].class); + + /** The value of {@code arrayIndexScale(char[].class)} */ + public static final int ARRAY_CHAR_INDEX_SCALE + = theUnsafe.arrayIndexScale(char[].class); + + /** The value of {@code arrayIndexScale(int[].class)} */ + public static final int ARRAY_INT_INDEX_SCALE + = theUnsafe.arrayIndexScale(int[].class); + + /** The value of {@code arrayIndexScale(long[].class)} */ + public static final int ARRAY_LONG_INDEX_SCALE + = theUnsafe.arrayIndexScale(long[].class); + + /** The value of {@code arrayIndexScale(float[].class)} */ + public static final int ARRAY_FLOAT_INDEX_SCALE + = theUnsafe.arrayIndexScale(float[].class); + + /** The value of {@code arrayIndexScale(double[].class)} */ + public static final int ARRAY_DOUBLE_INDEX_SCALE + = theUnsafe.arrayIndexScale(double[].class); + + /** The value of {@code arrayIndexScale(Object[].class)} */ + public static final int ARRAY_OBJECT_INDEX_SCALE + = theUnsafe.arrayIndexScale(Object[].class); + + /** + * Report the size in bytes of a native pointer, as stored via {@link + * #putAddress}. This value will be either 4 or 8. Note that the sizes of + * other primitive types (as stored in native memory blocks) is determined + * fully by their information content. + */ + public native int addressSize(); + + /** The value of {@code addressSize()} */ + public static final int ADDRESS_SIZE = theUnsafe.addressSize(); + + /** + * Report the size in bytes of a native memory page (whatever that is). + * This value will always be a power of two. + */ + public native int pageSize(); + + + /// random trusted operations from JNI: + + /** + * Tell the VM to define a class, without security checks. By default, the + * class loader and protection domain come from the caller's class. + */ + public native Class defineClass(String name, byte[] b, int off, int len, + ClassLoader loader, + ProtectionDomain protectionDomain); + + public native Class defineClass(String name, byte[] b, int off, int len); + + /** + * Define a class but do not make it known to the class loader or system dictionary. + *

+ * For each CP entry, the corresponding CP patch must either be null or have + * the a format that matches its tag: + *

    + *
  • Integer, Long, Float, Double: the corresponding wrapper object type from java.lang + *
  • Utf8: a string (must have suitable syntax if used as signature or name) + *
  • Class: any java.lang.Class object + *
  • String: any object (not just a java.lang.String) + *
  • InterfaceMethodRef: (NYI) a method handle to invoke on that call site's arguments + *
+ * @params hostClass context for linkage, access control, protection domain, and class loader + * @params data bytes of a class file + * @params cpPatches where non-null entries exist, they replace corresponding CP entries in data + */ + public native Class defineAnonymousClass(Class hostClass, byte[] data, Object[] cpPatches); + + + /** Allocate an instance but do not run any constructor. + Initializes the class if it has not yet been. */ + public native Object allocateInstance(Class cls) + throws InstantiationException; + + /** Lock the object. It must get unlocked via {@link #monitorExit}. */ + public native void monitorEnter(Object o); + + /** + * Unlock the object. It must have been locked via {@link + * #monitorEnter}. + */ + public native void monitorExit(Object o); + + /** + * Tries to lock the object. Returns true or false to indicate + * whether the lock succeeded. If it did, the object must be + * unlocked via {@link #monitorExit}. + */ + public native boolean tryMonitorEnter(Object o); + + /** Throw the exception without telling the verifier. */ + public native void throwException(Throwable ee); + + + /** + * Atomically update Java variable to x if it is currently + * holding expected. + * @return true if successful + */ + public final native boolean compareAndSwapObject(Object o, long offset, + Object expected, + Object x); + + /** + * Atomically update Java variable to x if it is currently + * holding expected. + * @return true if successful + */ + public final native boolean compareAndSwapInt(Object o, long offset, + int expected, + int x); + + /** + * Atomically update Java variable to x if it is currently + * holding expected. + * @return true if successful + */ + public final native boolean compareAndSwapLong(Object o, long offset, + long expected, + long x); + + /** + * Fetches a reference value from a given Java variable, with volatile + * load semantics. Otherwise identical to {@link #getObject(Object, long)} + */ + public native Object getObjectVolatile(Object o, long offset); + + /** + * Stores a reference value into a given Java variable, with + * volatile store semantics. Otherwise identical to {@link #putObject(Object, long, Object)} + */ + public native void putObjectVolatile(Object o, long offset, Object x); + + /** Volatile version of {@link #getInt(Object, long)} */ + public native int getIntVolatile(Object o, long offset); + + /** Volatile version of {@link #putInt(Object, long, int)} */ + public native void putIntVolatile(Object o, long offset, int x); + + /** Volatile version of {@link #getBoolean(Object, long)} */ + public native boolean getBooleanVolatile(Object o, long offset); + + /** Volatile version of {@link #putBoolean(Object, long, boolean)} */ + public native void putBooleanVolatile(Object o, long offset, boolean x); + + /** Volatile version of {@link #getByte(Object, long)} */ + public native byte getByteVolatile(Object o, long offset); + + /** Volatile version of {@link #putByte(Object, long, byte)} */ + public native void putByteVolatile(Object o, long offset, byte x); + + /** Volatile version of {@link #getShort(Object, long)} */ + public native short getShortVolatile(Object o, long offset); + + /** Volatile version of {@link #putShort(Object, long, short)} */ + public native void putShortVolatile(Object o, long offset, short x); + + /** Volatile version of {@link #getChar(Object, long)} */ + public native char getCharVolatile(Object o, long offset); + + /** Volatile version of {@link #putChar(Object, long, char)} */ + public native void putCharVolatile(Object o, long offset, char x); + + /** Volatile version of {@link #getLong(Object, long)} */ + public native long getLongVolatile(Object o, long offset); + + /** Volatile version of {@link #putLong(Object, long, long)} */ + public native void putLongVolatile(Object o, long offset, long x); + + /** Volatile version of {@link #getFloat(Object, long)} */ + public native float getFloatVolatile(Object o, long offset); + + /** Volatile version of {@link #putFloat(Object, long, float)} */ + public native void putFloatVolatile(Object o, long offset, float x); + + /** Volatile version of {@link #getDouble(Object, long)} */ + public native double getDoubleVolatile(Object o, long offset); + + /** Volatile version of {@link #putDouble(Object, long, double)} */ + public native void putDoubleVolatile(Object o, long offset, double x); + + /** + * Version of {@link #putObjectVolatile(Object, long, Object)} + * that does not guarantee immediate visibility of the store to + * other threads. This method is generally only useful if the + * underlying field is a Java volatile (or if an array cell, one + * that is otherwise only accessed using volatile accesses). + */ + public native void putOrderedObject(Object o, long offset, Object x); + + /** Ordered/Lazy version of {@link #putIntVolatile(Object, long, int)} */ + public native void putOrderedInt(Object o, long offset, int x); + + /** Ordered/Lazy version of {@link #putLongVolatile(Object, long, long)} */ + public native void putOrderedLong(Object o, long offset, long x); + + /** + * Unblock the given thread blocked on park, or, if it is + * not blocked, cause the subsequent call to park not to + * block. Note: this operation is "unsafe" solely because the + * caller must somehow ensure that the thread has not been + * destroyed. Nothing special is usually required to ensure this + * when called from Java (in which there will ordinarily be a live + * reference to the thread) but this is not nearly-automatically + * so when calling from native code. + * @param thread the thread to unpark. + * + */ + public native void unpark(Object thread); + + /** + * Block current thread, returning when a balancing + * unpark occurs, or a balancing unpark has + * already occurred, or the thread is interrupted, or, if not + * absolute and time is not zero, the given time nanoseconds have + * elapsed, or if absolute, the given deadline in milliseconds + * since Epoch has passed, or spuriously (i.e., returning for no + * "reason"). Note: This operation is in the Unsafe class only + * because unpark is, so it would be strange to place it + * elsewhere. + */ + public native void park(boolean isAbsolute, long time); + + /** + * Gets the load average in the system run queue assigned + * to the available processors averaged over various periods of time. + * This method retrieves the given nelem samples and + * assigns to the elements of the given loadavg array. + * The system imposes a maximum of 3 samples, representing + * averages over the last 1, 5, and 15 minutes, respectively. + * + * @params loadavg an array of double of size nelems + * @params nelems the number of samples to be retrieved and + * must be 1 to 3. + * + * @return the number of samples actually retrieved; or -1 + * if the load average is unobtainable. + */ + public native int getLoadAverage(double[] loadavg, int nelems); +} diff --git a/app/src/main/java/sun/security/action/GetBooleanAction.java b/app/src/main/java/sun/security/action/GetBooleanAction.java new file mode 100644 index 000000000..a4b53195b --- /dev/null +++ b/app/src/main/java/sun/security/action/GetBooleanAction.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.action; + +/** + * A convenience class for retrieving the boolean value of a system property + * as a privileged action. + * + *

An instance of this class can be used as the argument of + * AccessController.doPrivileged. + * + *

The following code retrieves the boolean value of the system + * property named "prop" as a privileged action:

+ * + *

+ * boolean b = java.security.AccessController.doPrivileged
+ *              (new GetBooleanAction("prop")).booleanValue();
+ * 
+ * + * @author Roland Schemers + * @see java.security.PrivilegedAction + * @see java.security.AccessController + * @since 1.2 + */ + +public class GetBooleanAction +implements java.security.PrivilegedAction { + private String theProp; + + /** + * Constructor that takes the name of the system property whose boolean + * value needs to be determined. + * + * @param theProp the name of the system property. + */ + public GetBooleanAction(String theProp) { + this.theProp = theProp; + } + + /** + * Determines the boolean value of the system property whose name was + * specified in the constructor. + * + * @return the Boolean value of the system property. + */ + public Boolean run() { + return Boolean.getBoolean(theProp); + } +} diff --git a/app/src/main/java/sun/security/action/GetBooleanSecurityPropertyAction.java b/app/src/main/java/sun/security/action/GetBooleanSecurityPropertyAction.java new file mode 100644 index 000000000..9d63c9077 --- /dev/null +++ b/app/src/main/java/sun/security/action/GetBooleanSecurityPropertyAction.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.action; + +import java.security.Security; + +/** + * A convenience class for retrieving the boolean value of a security property + * as a privileged action. + * + *

An instance of this class can be used as the argument of + * AccessController.doPrivileged. + * + *

The following code retrieves the boolean value of the security + * property named "prop" as a privileged action:

+ * + *

+ * boolean b = java.security.AccessController.doPrivileged
+ *              (new GetBooleanSecurityPropertyAction("prop")).booleanValue();
+ * 
+ * + */ +public class GetBooleanSecurityPropertyAction +implements java.security.PrivilegedAction { + private String theProp; + + /** + * Constructor that takes the name of the security property whose boolean + * value needs to be determined. + * + * @param theProp the name of the security property + */ + public GetBooleanSecurityPropertyAction(String theProp) { + this.theProp = theProp; + } + + /** + * Determines the boolean value of the security property whose name was + * specified in the constructor. + * + * @return the Boolean value of the security property. + */ + public Boolean run() { + boolean b = false; + try { + String value = Security.getProperty(theProp); + b = (value != null) && value.equalsIgnoreCase("true"); + } catch (NullPointerException e) {} + return b; + } +} diff --git a/app/src/main/java/sun/security/action/GetIntegerAction.java b/app/src/main/java/sun/security/action/GetIntegerAction.java new file mode 100644 index 000000000..036118137 --- /dev/null +++ b/app/src/main/java/sun/security/action/GetIntegerAction.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.action; + +/** + * A convenience class for retrieving the integer value of a system property + * as a privileged action. + * + *

An instance of this class can be used as the argument of + * AccessController.doPrivileged. + * + *

The following code retrieves the integer value of the system + * property named "prop" as a privileged action. Since it does + * not pass a default value to be used in case the property + * "prop" is not defined, it has to check the result for + * null:

+ * + *

+ * Integer tmp = java.security.AccessController.doPrivileged
+ *     (new sun.security.action.GetIntegerAction("prop"));
+ * int i;
+ * if (tmp != null) {
+ *     i = tmp.intValue();
+ * }
+ * 
+ * + *

The following code retrieves the integer value of the system + * property named "prop" as a privileged action, and also passes + * a default value to be used in case the property "prop" is not + * defined:

+ * + *

+ * int i = ((Integer)java.security.AccessController.doPrivileged(
+ *                         new GetIntegerAction("prop", 3))).intValue();
+ * 
+ * + * @author Roland Schemers + * @see java.security.PrivilegedAction + * @see java.security.AccessController + * @since 1.2 + */ + +public class GetIntegerAction +implements java.security.PrivilegedAction { + private String theProp; + private int defaultVal; + private boolean defaultSet = false; + + /** + * Constructor that takes the name of the system property whose integer + * value needs to be determined. + * + * @param theProp the name of the system property. + */ + public GetIntegerAction(String theProp) { + this.theProp = theProp; + } + + /** + * Constructor that takes the name of the system property and the default + * value of that property. + * + * @param theProp the name of the system property. + * @param defaulVal the default value. + */ + public GetIntegerAction(String theProp, int defaultVal) { + this.theProp = theProp; + this.defaultVal = defaultVal; + this.defaultSet = true; + } + + /** + * Determines the integer value of the system property whose name was + * specified in the constructor. + * + *

If there is no property of the specified name, or if the property + * does not have the correct numeric format, then an Integer + * object representing the default value that was specified in the + * constructor is returned, or null if no default value was + * specified. + * + * @return the Integer value of the property. + */ + public Integer run() { + Integer value = Integer.getInteger(theProp); + if ((value == null) && defaultSet) + return new Integer(defaultVal); + return value; + } +} diff --git a/app/src/main/java/sun/security/action/GetPropertyAction.java b/app/src/main/java/sun/security/action/GetPropertyAction.java new file mode 100644 index 000000000..cb102c9f9 --- /dev/null +++ b/app/src/main/java/sun/security/action/GetPropertyAction.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.action; + +/** + * A convenience class for retrieving the string value of a system + * property as a privileged action. + * + *

An instance of this class can be used as the argument of + * AccessController.doPrivileged. + * + *

The following code retrieves the value of the system + * property named "prop" as a privileged action:

+ * + *

+ * String s = java.security.AccessController.doPrivileged
+ *                      (new GetPropertyAction("prop"));
+ * 
+ * + * @author Roland Schemers + * @see java.security.PrivilegedAction + * @see java.security.AccessController + * @since 1.2 + */ + +public class GetPropertyAction +implements java.security.PrivilegedAction { + private String theProp; + private String defaultVal; + + /** + * Constructor that takes the name of the system property whose + * string value needs to be determined. + * + * @param theProp the name of the system property. + */ + public GetPropertyAction(String theProp) { + this.theProp = theProp; + } + + /** + * Constructor that takes the name of the system property and the default + * value of that property. + * + * @param theProp the name of the system property. + * @param defaulVal the default value. + */ + public GetPropertyAction(String theProp, String defaultVal) { + this.theProp = theProp; + this.defaultVal = defaultVal; + } + + /** + * Determines the string value of the system property whose + * name was specified in the constructor. + * + * @return the string value of the system property, + * or the default value if there is no property with that key. + */ + public String run() { + String value = System.getProperty(theProp); + return (value == null) ? defaultVal : value; + } +} diff --git a/app/src/main/java/sun/security/util/PermissionFactory.java b/app/src/main/java/sun/security/util/PermissionFactory.java new file mode 100644 index 000000000..c6457fffd --- /dev/null +++ b/app/src/main/java/sun/security/util/PermissionFactory.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.util; + +import java.security.Permission; + +/** + * A factory object that creates Permission objects. + */ + +public interface PermissionFactory { + T newPermission(String name); +} diff --git a/app/src/main/java/sun/security/util/SecurityConstants.java b/app/src/main/java/sun/security/util/SecurityConstants.java new file mode 100644 index 000000000..f1fd2fbde --- /dev/null +++ b/app/src/main/java/sun/security/util/SecurityConstants.java @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.security.util; + +import java.net.SocketPermission; +import java.net.NetPermission; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.Permission; +import java.security.BasicPermission; +import java.security.SecurityPermission; +import java.security.AllPermission; + +/** + * Permission constants and string constants used to create permissions + * used throughout the JDK. + */ +public final class SecurityConstants { + // Cannot create one of these + private SecurityConstants () { + } + + // Commonly used string constants for permission actions used by + // SecurityManager. Declare here for shortcut when checking permissions + // in FilePermission, SocketPermission, and PropertyPermission. + + public static final String FILE_DELETE_ACTION = "delete"; + public static final String FILE_EXECUTE_ACTION = "execute"; + public static final String FILE_READ_ACTION = "read"; + public static final String FILE_WRITE_ACTION = "write"; + public static final String FILE_READLINK_ACTION = "readlink"; + + public static final String SOCKET_RESOLVE_ACTION = "resolve"; + public static final String SOCKET_CONNECT_ACTION = "connect"; + public static final String SOCKET_LISTEN_ACTION = "listen"; + public static final String SOCKET_ACCEPT_ACTION = "accept"; + public static final String SOCKET_CONNECT_ACCEPT_ACTION = "connect,accept"; + + public static final String PROPERTY_RW_ACTION = "read,write"; + public static final String PROPERTY_READ_ACTION = "read"; + public static final String PROPERTY_WRITE_ACTION = "write"; + + // Permission constants used in the various checkPermission() calls in JDK. + + // java.lang.Class, java.lang.SecurityManager, java.lang.System, + // java.net.URLConnection, java.security.AllPermission, java.security.Policy, + // sun.security.provider.PolicyFile + public static final AllPermission ALL_PERMISSION = new AllPermission(); + + /** + * Permission type used when AWT is not present. + */ + private static class FakeAWTPermission extends BasicPermission { + private static final long serialVersionUID = -1L; + public FakeAWTPermission(String name) { + super(name); + } + public String toString() { + return "(\"java.awt.AWTPermission\" \"" + getName() + "\")"; + } + } + + /** + * Permission factory used when AWT is not present. + */ + private static class FakeAWTPermissionFactory + implements PermissionFactory + { + @Override + public FakeAWTPermission newPermission(String name) { + return new FakeAWTPermission(name); + } + } + + /** + * AWT Permissions used in the JDK. + */ + public static class AWT { + private AWT() { } + + /** + * The class name of the factory to create java.awt.AWTPermission objects. + */ + private static final String AWTFactory = "sun.awt.AWTPermissionFactory"; + + /** + * The PermissionFactory to create AWT permissions (or fake permissions + * if AWT is not present). + */ + private static final PermissionFactory factory = permissionFactory(); + + private static PermissionFactory permissionFactory() { + Class c = AccessController + .doPrivileged(new PrivilegedAction>() { + public Class run() { + try { + return Class.forName(AWTFactory, true, null); + } catch (ClassNotFoundException e) { + // not available + return null; + } + }}); + if (c != null) { + // AWT present + try { + return (PermissionFactory)c.newInstance(); + } catch (InstantiationException x) { + throw new InternalError(x.getMessage()); + } catch (IllegalAccessException x) { + throw new InternalError(x.getMessage()); + } + } else { + // AWT not present + return new FakeAWTPermissionFactory(); + } + } + + private static Permission newAWTPermission(String name) { + return factory.newPermission(name); + } + + // java.lang.SecurityManager + public static final Permission TOPLEVEL_WINDOW_PERMISSION = + newAWTPermission("showWindowWithoutWarningBanner"); + + // java.lang.SecurityManager + public static final Permission ACCESS_CLIPBOARD_PERMISSION = + newAWTPermission("accessClipboard"); + + // java.lang.SecurityManager + public static final Permission CHECK_AWT_EVENTQUEUE_PERMISSION = + newAWTPermission("accessEventQueue"); + + // java.awt.Dialog + public static final Permission TOOLKIT_MODALITY_PERMISSION = + newAWTPermission("toolkitModality"); + + // java.awt.Robot + public static final Permission READ_DISPLAY_PIXELS_PERMISSION = + newAWTPermission("readDisplayPixels"); + + // java.awt.Robot + public static final Permission CREATE_ROBOT_PERMISSION = + newAWTPermission("createRobot"); + + // java.awt.MouseInfo + public static final Permission WATCH_MOUSE_PERMISSION = + newAWTPermission("watchMousePointer"); + + // java.awt.Window + public static final Permission SET_WINDOW_ALWAYS_ON_TOP_PERMISSION = + newAWTPermission("setWindowAlwaysOnTop"); + + // java.awt.Toolkit + public static final Permission ALL_AWT_EVENTS_PERMISSION = + newAWTPermission("listenToAllAWTEvents"); + + // java.awt.SystemTray + public static final Permission ACCESS_SYSTEM_TRAY_PERMISSION = + newAWTPermission("accessSystemTray"); + } + + // java.net.URL + public static final NetPermission SPECIFY_HANDLER_PERMISSION = + new NetPermission("specifyStreamHandler"); + + // java.net.ProxySelector + public static final NetPermission SET_PROXYSELECTOR_PERMISSION = + new NetPermission("setProxySelector"); + + // java.net.ProxySelector + public static final NetPermission GET_PROXYSELECTOR_PERMISSION = + new NetPermission("getProxySelector"); + + // java.net.CookieHandler + public static final NetPermission SET_COOKIEHANDLER_PERMISSION = + new NetPermission("setCookieHandler"); + + // java.net.CookieHandler + public static final NetPermission GET_COOKIEHANDLER_PERMISSION = + new NetPermission("getCookieHandler"); + + // java.net.ResponseCache + public static final NetPermission SET_RESPONSECACHE_PERMISSION = + new NetPermission("setResponseCache"); + + // java.net.ResponseCache + public static final NetPermission GET_RESPONSECACHE_PERMISSION = + new NetPermission("getResponseCache"); + + // java.lang.SecurityManager, sun.applet.AppletPanel, sun.misc.Launcher + public static final RuntimePermission CREATE_CLASSLOADER_PERMISSION = + new RuntimePermission("createClassLoader"); + + // java.lang.SecurityManager + public static final RuntimePermission CHECK_MEMBER_ACCESS_PERMISSION = + new RuntimePermission("accessDeclaredMembers"); + + // java.lang.SecurityManager, sun.applet.AppletSecurity + public static final RuntimePermission MODIFY_THREAD_PERMISSION = + new RuntimePermission("modifyThread"); + + // java.lang.SecurityManager, sun.applet.AppletSecurity + public static final RuntimePermission MODIFY_THREADGROUP_PERMISSION = + new RuntimePermission("modifyThreadGroup"); + + // java.lang.Class + public static final RuntimePermission GET_PD_PERMISSION = + new RuntimePermission("getProtectionDomain"); + + // java.lang.Class, java.lang.ClassLoader, java.lang.Thread + public static final RuntimePermission GET_CLASSLOADER_PERMISSION = + new RuntimePermission("getClassLoader"); + + // java.lang.Thread + public static final RuntimePermission STOP_THREAD_PERMISSION = + new RuntimePermission("stopThread"); + + // java.lang.Thread + public static final RuntimePermission GET_STACK_TRACE_PERMISSION = + new RuntimePermission("getStackTrace"); + + // java.security.AccessControlContext + public static final SecurityPermission CREATE_ACC_PERMISSION = + new SecurityPermission("createAccessControlContext"); + + // java.security.AccessControlContext + public static final SecurityPermission GET_COMBINER_PERMISSION = + new SecurityPermission("getDomainCombiner"); + + // java.security.Policy, java.security.ProtectionDomain + public static final SecurityPermission GET_POLICY_PERMISSION = + new SecurityPermission ("getPolicy"); + + // java.lang.SecurityManager + public static final SocketPermission LOCAL_LISTEN_PERMISSION = + new SocketPermission("localhost:1024-", SOCKET_LISTEN_ACTION); +} diff --git a/app/src/main/java/sun/util/CoreResourceBundleControl.java b/app/src/main/java/sun/util/CoreResourceBundleControl.java new file mode 100644 index 000000000..4857379f5 --- /dev/null +++ b/app/src/main/java/sun/util/CoreResourceBundleControl.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +//#warn This file is preprocessed before being compiled + +package sun.util; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.ResourceBundle; +import java.util.ResourceBundle.Control; +import java.util.*; + +/** + * This is a convenient class for loading some of internal resources faster + * if they are built with Resources.gmk defined in J2SE workspace. Also, + * they have to be in class file format. + * + * "LOCALE_LIST" will be replaced at built time by a list of locales we + * defined in Defs.gmk. We want to exclude these locales from search to + * gain better performance. For example, since we know if the resource + * is built with Resources.gmk, they are not going to provide basename_en.class + * & basename_en_US.class resources, in that case, continuing searching them + * is expensive. By excluding them from the candidate locale list, these + * resources won't be searched. + * + * @since 1.6. + */ +public class CoreResourceBundleControl extends ResourceBundle.Control { + /* the candidate locale list to search */ + private Collection excludedJDKLocales; + /* singlton instance of the resource bundle control. */ + private static CoreResourceBundleControl resourceBundleControlInstance = + new CoreResourceBundleControl(); + + protected CoreResourceBundleControl() { + // MOD: Implement + excludedJDKLocales = Arrays.asList(Locale.getAvailableLocales()); + //excludedJDKLocales = Arrays.asList(#LOCALE_LIST#); + } + + /** + * This method is to provide a customized ResourceBundle.Control to speed + * up the search of resources in JDK. + * + * @return the instance of resource bundle control. + */ + public static CoreResourceBundleControl getRBControlInstance() { + return resourceBundleControlInstance; + } + + /** + * This method is to provide a customized ResourceBundle.Control to speed + * up the search of resources in JDK, with the bundle's package name check. + * + * @param bundleName bundle name to check + * @return the instance of resource bundle control if the bundle is JDK's, + * otherwise returns null. + */ + public static CoreResourceBundleControl getRBControlInstance(String bundleName) { + if (bundleName.startsWith("com.sun.") || + bundleName.startsWith("java.") || + bundleName.startsWith("javax.") || + bundleName.startsWith("sun.")) { + return resourceBundleControlInstance; + } else { + return null; + } + } + + /** + * @returns a list of candidate locales to search from. + * @exception NullPointerException if baseName or locale is null. + */ + @Override + public List getCandidateLocales(String baseName, Locale locale) { + List candidates = super.getCandidateLocales(baseName, locale); + candidates.removeAll(excludedJDKLocales); + return candidates; + } + + /** + * @ returns TTL_DONT_CACHE so that ResourceBundle instance won't be cached. + * User of this CoreResourceBundleControl should probably maintain a hard reference + * to the ResourceBundle object themselves. + */ + @Override + public long getTimeToLive(String baseName, Locale locale) { + return ResourceBundle.Control.TTL_DONT_CACHE; + } +} diff --git a/app/src/main/jniLibs/arm64-v8a/libboardwalk.so b/app/src/main/jniLibs/arm64-v8a/libboardwalk.so new file mode 100644 index 000000000..cb3bfda44 Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/libboardwalk.so differ diff --git a/app/src/main/jniLibs/arm64-v8a/libgl04es.so b/app/src/main/jniLibs/arm64-v8a/libgl04es.so new file mode 100644 index 000000000..e8679fbd8 Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/libgl04es.so differ diff --git a/app/src/main/jniLibs/arm64-v8a/liblwjgl.so b/app/src/main/jniLibs/arm64-v8a/liblwjgl.so new file mode 100644 index 000000000..a67d890bc Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/liblwjgl.so differ diff --git a/app/src/main/jniLibs/arm64-v8a/libopenal.so b/app/src/main/jniLibs/arm64-v8a/libopenal.so new file mode 100644 index 000000000..b7aec3046 Binary files /dev/null and b/app/src/main/jniLibs/arm64-v8a/libopenal.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/libboardwalk.so b/app/src/main/jniLibs/armeabi-v7a/libboardwalk.so new file mode 100644 index 000000000..b9983bd64 Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/libboardwalk.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/libgl04es.so b/app/src/main/jniLibs/armeabi-v7a/libgl04es.so new file mode 100644 index 000000000..55afa94d0 Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/libgl04es.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/liblwjgl.so b/app/src/main/jniLibs/armeabi-v7a/liblwjgl.so new file mode 100644 index 000000000..74df428e9 Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/liblwjgl.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/libopenal.so b/app/src/main/jniLibs/armeabi-v7a/libopenal.so new file mode 100644 index 000000000..951446e14 Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/libopenal.so differ diff --git a/app/src/main/jniLibs/armeabi-v7a/libtwitchsdk.so b/app/src/main/jniLibs/armeabi-v7a/libtwitchsdk.so new file mode 100644 index 000000000..d3ab7df21 Binary files /dev/null and b/app/src/main/jniLibs/armeabi-v7a/libtwitchsdk.so differ diff --git a/app/src/main/jniLibs/x86/libboardwalk.so b/app/src/main/jniLibs/x86/libboardwalk.so new file mode 100644 index 000000000..fd5e8cb09 Binary files /dev/null and b/app/src/main/jniLibs/x86/libboardwalk.so differ diff --git a/app/src/main/jniLibs/x86/libgl04es.so b/app/src/main/jniLibs/x86/libgl04es.so new file mode 100644 index 000000000..1141f95f7 Binary files /dev/null and b/app/src/main/jniLibs/x86/libgl04es.so differ diff --git a/app/src/main/jniLibs/x86/liblwjgl.so b/app/src/main/jniLibs/x86/liblwjgl.so new file mode 100644 index 000000000..4bfddd8d3 Binary files /dev/null and b/app/src/main/jniLibs/x86/liblwjgl.so differ diff --git a/app/src/main/jniLibs/x86/libopenal.so b/app/src/main/jniLibs/x86/libopenal.so new file mode 100644 index 000000000..42c78f249 Binary files /dev/null and b/app/src/main/jniLibs/x86/libopenal.so differ diff --git a/app/src/main/res/anim/translate_left_side.xml b/app/src/main/res/anim/translate_left_side.xml new file mode 100644 index 000000000..962be1cc6 --- /dev/null +++ b/app/src/main/res/anim/translate_left_side.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/anim/translate_right_side.xml b/app/src/main/res/anim/translate_right_side.xml new file mode 100644 index 000000000..607d4f8d0 --- /dev/null +++ b/app/src/main/res/anim/translate_right_side.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/drawable-anydpi-v21/ic_folder.xml b/app/src/main/res/drawable-anydpi-v21/ic_folder.xml new file mode 100644 index 000000000..d7c6145c6 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/ic_folder.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-hdpi/ic_file.png b/app/src/main/res/drawable-hdpi/ic_file.png new file mode 100644 index 000000000..7cdd8a417 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_file.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_folder.png b/app/src/main/res/drawable-hdpi/ic_folder.png new file mode 100644 index 000000000..1d25a2d1f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_folder.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 000000000..dec611dc2 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_file.png b/app/src/main/res/drawable-mdpi/ic_file.png new file mode 100644 index 000000000..e8bd151de Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_file.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_folder.png b/app/src/main/res/drawable-mdpi/ic_folder.png new file mode 100644 index 000000000..6e6b8705e Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_folder.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 000000000..5e57ab6bf Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_file.png b/app/src/main/res/drawable-xhdpi/ic_file.png new file mode 100644 index 000000000..522ed223f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_file.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_folder.png b/app/src/main/res/drawable-xhdpi/ic_folder.png new file mode 100644 index 000000000..49272b0f9 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_folder.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 000000000..2dc2e632d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_file.png b/app/src/main/res/drawable-xxhdpi/ic_file.png new file mode 100644 index 000000000..3f7745842 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_file.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_folder.png b/app/src/main/res/drawable-xxhdpi/ic_folder.png new file mode 100644 index 000000000..5c4360af8 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_folder.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..fe4400a59 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..f0db29f28 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable/bg_wool_dark.png b/app/src/main/res/drawable/bg_wool_dark.png new file mode 100644 index 000000000..764d80d9e Binary files /dev/null and b/app/src/main/res/drawable/bg_wool_dark.png differ diff --git a/app/src/main/res/drawable/bitmap_wool_dark.xml b/app/src/main/res/drawable/bitmap_wool_dark.xml new file mode 100644 index 000000000..d9063f00b --- /dev/null +++ b/app/src/main/res/drawable/bitmap_wool_dark.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/drawable/border_edittext.xml b/app/src/main/res/drawable/border_edittext.xml new file mode 100644 index 000000000..1efc68f00 --- /dev/null +++ b/app/src/main/res/drawable/border_edittext.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable/control_button.xml b/app/src/main/res/drawable/control_button.xml new file mode 100644 index 000000000..1584cc507 --- /dev/null +++ b/app/src/main/res/drawable/control_button.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable/control_button_normal.xml b/app/src/main/res/drawable/control_button_normal.xml new file mode 100644 index 000000000..b40a1e69b --- /dev/null +++ b/app/src/main/res/drawable/control_button_normal.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable/control_button_pressed.xml b/app/src/main/res/drawable/control_button_pressed.xml new file mode 100644 index 000000000..7cba97e87 --- /dev/null +++ b/app/src/main/res/drawable/control_button_pressed.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_close.png b/app/src/main/res/drawable/ic_close.png new file mode 100644 index 000000000..59742a955 Binary files /dev/null and b/app/src/main/res/drawable/ic_close.png differ diff --git a/app/src/main/res/drawable/ic_minimize.png b/app/src/main/res/drawable/ic_minimize.png new file mode 100644 index 000000000..39338e71b Binary files /dev/null and b/app/src/main/res/drawable/ic_minimize.png differ diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png new file mode 100644 index 000000000..24e7121aa Binary files /dev/null and b/app/src/main/res/drawable/logo.png differ diff --git a/app/src/main/res/drawable/mcbtn_normal.png b/app/src/main/res/drawable/mcbtn_normal.png new file mode 100644 index 000000000..070790479 Binary files /dev/null and b/app/src/main/res/drawable/mcbtn_normal.png differ diff --git a/app/src/main/res/drawable/mcbtn_pressed.png b/app/src/main/res/drawable/mcbtn_pressed.png new file mode 100644 index 000000000..c9f23e96b Binary files /dev/null and b/app/src/main/res/drawable/mcbtn_pressed.png differ diff --git a/app/src/main/res/drawable/mcbutton.xml b/app/src/main/res/drawable/mcbutton.xml new file mode 100644 index 000000000..4ae8d22fa --- /dev/null +++ b/app/src/main/res/drawable/mcbutton.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable/menu_hamburger.png b/app/src/main/res/drawable/menu_hamburger.png new file mode 100644 index 000000000..b44b25862 Binary files /dev/null and b/app/src/main/res/drawable/menu_hamburger.png differ diff --git a/app/src/main/res/drawable/mojang_logo.png b/app/src/main/res/drawable/mojang_logo.png new file mode 100644 index 000000000..194253529 Binary files /dev/null and b/app/src/main/res/drawable/mojang_logo.png differ diff --git a/app/src/main/res/drawable/mouse_pointer.png b/app/src/main/res/drawable/mouse_pointer.png new file mode 100644 index 000000000..9e57a97c7 Binary files /dev/null and b/app/src/main/res/drawable/mouse_pointer.png differ diff --git a/app/src/main/res/layout/bottom_bar.xml b/app/src/main/res/layout/bottom_bar.xml new file mode 100644 index 000000000..db1ac02cd --- /dev/null +++ b/app/src/main/res/layout/bottom_bar.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/launcher_login.xml b/app/src/main/res/layout/launcher_login.xml new file mode 100644 index 000000000..f3a2b4b9a --- /dev/null +++ b/app/src/main/res/layout/launcher_login.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/launcher_main.xml b/app/src/main/res/layout/launcher_main.xml new file mode 100644 index 000000000..9e3831bd7 --- /dev/null +++ b/app/src/main/res/layout/launcher_main.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +