discord-jadx/app/src/main/java/androidx/work/impl/utils/RawQueries.java

66 lines
2.2 KiB
Java

package androidx.work.impl.utils;
import androidx.annotation.NonNull;
import androidx.sqlite.db.SimpleSQLiteQuery;
import androidx.sqlite.db.SupportSQLiteQuery;
import androidx.work.WorkInfo;
import androidx.work.WorkQuery;
import androidx.work.impl.model.WorkTypeConverters;
import java.util.ArrayList;
import java.util.List;
public final class RawQueries {
private RawQueries() {
}
private static void bindings(@NonNull StringBuilder sb, int i) {
if (i > 0) {
sb.append("?");
for (int i2 = 1; i2 < i; i2++) {
sb.append(",");
sb.append("?");
}
}
}
@NonNull
public static SupportSQLiteQuery workQueryToRawQuery(@NonNull WorkQuery workQuery) {
ArrayList arrayList = new ArrayList();
StringBuilder sb = new StringBuilder("SELECT * FROM workspec");
List<WorkInfo.State> states = workQuery.getStates();
String str = " AND";
String str2 = " WHERE";
if (!states.isEmpty()) {
ArrayList arrayList2 = new ArrayList(states.size());
for (WorkInfo.State state : states) {
arrayList2.add(Integer.valueOf(WorkTypeConverters.stateToInt(state)));
}
sb.append(str2);
sb.append(" state IN (");
bindings(sb, arrayList2.size());
sb.append(")");
arrayList.addAll(arrayList2);
str2 = str;
}
List<String> tags = workQuery.getTags();
if (!tags.isEmpty()) {
sb.append(str2);
sb.append(" id IN (SELECT work_spec_id FROM worktag WHERE tag IN (");
bindings(sb, tags.size());
sb.append("))");
arrayList.addAll(tags);
} else {
str = str2;
}
List<String> uniqueWorkNames = workQuery.getUniqueWorkNames();
if (!uniqueWorkNames.isEmpty()) {
sb.append(str);
sb.append(" id IN (SELECT work_spec_id FROM workname WHERE name IN (");
bindings(sb, uniqueWorkNames.size());
sb.append("))");
arrayList.addAll(uniqueWorkNames);
}
sb.append(";");
return new SimpleSQLiteQuery(sb.toString(), arrayList.toArray());
}
}