mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-20 19:18:37 +00:00
Lint to prevent glide log usage.
This commit is contained in:
@@ -24,7 +24,7 @@ public final class Log {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void e(@NonNull String tag, @NonNull String message) {
|
public static void e(@NonNull String tag, @NonNull String message) {
|
||||||
e(tag, message, null);
|
SignalGlideCodecs.getLogProvider().e(tag, message, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void e(@NonNull String tag, @NonNull String message, @Nullable Throwable throwable) {
|
public static void e(@NonNull String tag, @NonNull String message, @Nullable Throwable throwable) {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import android.graphics.Paint;
|
|||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
|
||||||
import org.signal.glide.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.signal.glide.apng.io.APNGReader;
|
import org.signal.glide.apng.io.APNGReader;
|
||||||
import org.signal.glide.apng.io.APNGWriter;
|
import org.signal.glide.apng.io.APNGWriter;
|
||||||
import org.signal.glide.common.decode.Frame;
|
import org.signal.glide.common.decode.Frame;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import android.os.Message;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
|
import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
|
||||||
|
|
||||||
import org.signal.glide.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.signal.glide.common.decode.FrameSeqDecoder;
|
import org.signal.glide.common.decode.FrameSeqDecoder;
|
||||||
import org.signal.glide.common.loader.Loader;
|
import org.signal.glide.common.loader.Loader;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import android.os.Looper;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.WorkerThread;
|
import androidx.annotation.WorkerThread;
|
||||||
|
|
||||||
import org.signal.glide.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.signal.glide.common.executor.FrameDecoderExecutor;
|
import org.signal.glide.common.executor.FrameDecoderExecutor;
|
||||||
import org.signal.glide.common.io.Reader;
|
import org.signal.glide.common.io.Reader;
|
||||||
import org.signal.glide.common.io.Writer;
|
import org.signal.glide.common.io.Writer;
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ public final class SignalLogDetector extends Detector implements Detector.UastSc
|
|||||||
context.report(LOG_NOT_SIGNAL, call, context.getLocation(call), "Using 'android.util.Log' instead of a Signal Logger", fix);
|
context.report(LOG_NOT_SIGNAL, call, context.getLocation(call), "Using 'android.util.Log' instead of a Signal Logger", fix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (evaluator.isMemberInClass(method, "org.signal.glide.Log")) {
|
||||||
|
LintFix fix = quickFixIssueLog(call);
|
||||||
|
context.report(LOG_NOT_SIGNAL, call, context.getLocation(call), "Using 'org.signal.glide.Log' instead of a Signal Logger", fix);
|
||||||
|
}
|
||||||
|
|
||||||
if (evaluator.isMemberInClass(method, "org.whispersystems.libsignal.logging.Log")) {
|
if (evaluator.isMemberInClass(method, "org.whispersystems.libsignal.logging.Log")) {
|
||||||
LintFix fix = quickFixIssueLog(call);
|
LintFix fix = quickFixIssueLog(call);
|
||||||
context.report(LOG_NOT_APP, call, context.getLocation(call), "Using Signal server logger instead of app level Logger", fix);
|
context.report(LOG_NOT_APP, call, context.getLocation(call), "Using Signal server logger instead of app level Logger", fix);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public final class LogDetectorTest {
|
|||||||
|
|
||||||
private static final TestFile serviceLogStub = java(readResourceAsString("ServiceLogStub.java"));
|
private static final TestFile serviceLogStub = java(readResourceAsString("ServiceLogStub.java"));
|
||||||
private static final TestFile appLogStub = java(readResourceAsString("AppLogStub.java"));
|
private static final TestFile appLogStub = java(readResourceAsString("AppLogStub.java"));
|
||||||
|
private static final TestFile glideLogStub = java(readResourceAsString("GlideLogStub.java"));
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void androidLogUsed_LogNotSignal_2_args() {
|
public void androidLogUsed_LogNotSignal_2_args() {
|
||||||
@@ -153,6 +154,30 @@ public final class LogDetectorTest {
|
|||||||
.expectFixDiffs("");
|
.expectFixDiffs("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void glideLogUsed_LogNotSignal_2_args() {
|
||||||
|
lint()
|
||||||
|
.files(glideLogStub,
|
||||||
|
java("package foo;\n" +
|
||||||
|
"import org.signal.glide.Log;\n" +
|
||||||
|
"public class Example {\n" +
|
||||||
|
" public void log() {\n" +
|
||||||
|
" Log.d(\"TAG\", \"msg\");\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}")
|
||||||
|
)
|
||||||
|
.issues(SignalLogDetector.LOG_NOT_SIGNAL)
|
||||||
|
.run()
|
||||||
|
.expect("src/foo/Example.java:5: Error: Using 'org.signal.glide.Log' instead of a Signal Logger [LogNotSignal]\n" +
|
||||||
|
" Log.d(\"TAG\", \"msg\");\n" +
|
||||||
|
" ~~~~~~~~~~~~~~~~~~~\n" +
|
||||||
|
"1 errors, 0 warnings")
|
||||||
|
.expectFixDiffs("Fix for src/foo/Example.java line 5: Replace with org.signal.core.util.logging.Log.d(\"TAG\", \"msg\"):\n" +
|
||||||
|
"@@ -5 +5\n" +
|
||||||
|
"- Log.d(\"TAG\", \"msg\");\n" +
|
||||||
|
"+ org.signal.core.util.logging.Log.d(\"TAG\", \"msg\");");
|
||||||
|
}
|
||||||
|
|
||||||
private static String readResourceAsString(String resourceName) {
|
private static String readResourceAsString(String resourceName) {
|
||||||
InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream(resourceName);
|
InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream(resourceName);
|
||||||
assertNotNull(inputStream);
|
assertNotNull(inputStream);
|
||||||
|
|||||||
41
lintchecks/src/test/resources/GlideLogStub.java
Normal file
41
lintchecks/src/test/resources/GlideLogStub.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package org.signal.glide;
|
||||||
|
|
||||||
|
public class Log {
|
||||||
|
|
||||||
|
public static String tag(Class<?> clazz) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void v(String tag, String msg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void v(String tag, String msg, Throwable tr) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void d(String tag, String msg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void d(String tag, String msg, Throwable tr) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void i(String tag, String msg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void i(String tag, String msg, Throwable tr) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void w(String tag, String msg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void w(String tag, String msg, Throwable tr) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void w(String tag, Throwable tr) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void e(String tag, String msg) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void e(String tag, String msg, Throwable tr) {
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user