Full port of the CW/Morse decoder from Morse Expert 1.15 (com.ve3nea.morse_expert), preserving obfuscated class names and logic. Ads (gms.ads), billing (BillingClient), and library code were removed per user; SettingsActivity deferred to Compose integration. Ported modules: - pas.*: decoder engine interface + JNI (libnativedecoderjni.so, armeabi-v7a) - k3.*: FFT library (pseudo-enum q rewritten from smali; sun.misc stubs for Unsafe/Cleaner since Android lacks them; FFT path uses float[] branch) - i3.*, g3.*, j3.*, s.*, d1.AbstractC1518b: DSP/sin-cos tables (long[] tables f/f11589g restored from smali) - H2.a/b: audio capture + decode control core (jadx catch-block illusions cleaned per smali; recording try/catch restored around write block) - J2.a/b: waterfall OpenGL renderer + palette (r10 = anchor color per smali) - E2.g: waterfall touch frequency picker (height = ScaleView per smali) - B0.b/B.RunnableC0001b: status-bar + decoded-text UI runnables (real constructors recovered from smali) - MainActivity → controller class (Activity injected; immersive status bar inlined); C1646n trimmed to view holder; D.n keeps waterfall texture case - F2.a: text selection menu (Save/Share) Verified: :feature:cw:compileDebugJavaWithJavac BUILD SUCCESSFUL.
69 lines
2.0 KiB
Java
69 lines
2.0 KiB
Java
package k3;
|
|
|
|
/**
|
|
* R8 生成的伪 enum(k3 FFT 库的数组类型枚举)。
|
|
* smali 中 q 的直接子类:l(LONG/5)、m(FLOAT/6)、n(DOUBLE/7),
|
|
* 其余常量(BYTE/UNSIGNED_BYTE/SHORT/INT/COMPLEX_FLOAT/COMPLEX_DOUBLE/STRING/OBJECT)
|
|
* 直接以 q 实例表达。
|
|
*/
|
|
public class q {
|
|
public static final l f;
|
|
|
|
/* renamed from: g, reason: collision with root package name */
|
|
public static final m f12106g;
|
|
|
|
/* renamed from: h, reason: collision with root package name */
|
|
public static final n f12107h;
|
|
|
|
/* renamed from: i, reason: collision with root package name */
|
|
public static final /* synthetic */ q[] f12108i;
|
|
|
|
private final String name;
|
|
private final int ordinal;
|
|
|
|
protected q(String name, int ordinal) {
|
|
this.name = name;
|
|
this.ordinal = ordinal;
|
|
}
|
|
|
|
public final String name() {
|
|
return name;
|
|
}
|
|
|
|
public final int ordinal() {
|
|
return ordinal;
|
|
}
|
|
|
|
public static q valueOf(String str) {
|
|
for (q qVar : f12108i) {
|
|
if (qVar.name.equals(str)) {
|
|
return qVar;
|
|
}
|
|
}
|
|
throw new IllegalArgumentException("No enum constant k3.q." + str);
|
|
}
|
|
|
|
public static q[] values() {
|
|
return (q[]) f12108i.clone();
|
|
}
|
|
|
|
static {
|
|
q logic = new q("LOGIC", 0);
|
|
q byteType = new q("BYTE", 1);
|
|
q unsignedByte = new q("UNSIGNED_BYTE", 2);
|
|
q shortType = new q("SHORT", 3);
|
|
q intType = new q("INT", 4);
|
|
l longType = new l();
|
|
f = longType;
|
|
m floatType = new m();
|
|
f12106g = floatType;
|
|
n doubleType = new n();
|
|
f12107h = doubleType;
|
|
q complexFloat = new q("COMPLEX_FLOAT", 8);
|
|
q complexDouble = new q("COMPLEX_DOUBLE", 9);
|
|
q string = new q("STRING", 10);
|
|
q object = new q("OBJECT", 11);
|
|
f12108i = new q[]{logic, byteType, unsignedByte, shortType, intType, longType, floatType, doubleType, complexFloat, complexDouble, string, object};
|
|
}
|
|
}
|