Niedzielski has uploaded a new change for review. https://gerrit.wikimedia.org/r/278061
Change subject: Add namespace and database column ...................................................................... Add namespace and database column Change-Id: I7836fc9ce9a0ab12104ad45ade7f714b67b82d06 --- A app/src/main/java/org/wikipedia/database/column/NamespaceColumn.java A app/src/main/java/org/wikipedia/page/Namespace.java 2 files changed, 105 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/61/278061/1 diff --git a/app/src/main/java/org/wikipedia/database/column/NamespaceColumn.java b/app/src/main/java/org/wikipedia/database/column/NamespaceColumn.java new file mode 100644 index 0000000..0711de5 --- /dev/null +++ b/app/src/main/java/org/wikipedia/database/column/NamespaceColumn.java @@ -0,0 +1,17 @@ +package org.wikipedia.database.column; + +import android.database.Cursor; +import android.support.annotation.NonNull; + +import org.wikipedia.page.Namespace; + +public class NamespaceColumn extends Column<Namespace> { + public NamespaceColumn(@NonNull String name) { + super(name, "integer not null"); + } + + @NonNull + public Namespace val(@NonNull Cursor cursor) { + return Namespace.of(getInt(cursor)); + } +} \ No newline at end of file diff --git a/app/src/main/java/org/wikipedia/page/Namespace.java b/app/src/main/java/org/wikipedia/page/Namespace.java new file mode 100644 index 0000000..f62562d --- /dev/null +++ b/app/src/main/java/org/wikipedia/page/Namespace.java @@ -0,0 +1,88 @@ +package org.wikipedia.page; + +import android.support.annotation.NonNull; + +import org.wikipedia.model.EnumCode; +import org.wikipedia.model.EnumCodeMap; + +// https://en.wikipedia.org/wiki/Wikipedia:Namespace +// https://www.mediawiki.org/wiki/Extension_default_namespaces +// https://github.com/wikimedia/wikipedia-ios/blob/master/Wikipedia/Code/NSNumber+MWKTitleNamespace.h +// https://www.mediawiki.org/wiki/Manual:Namespace#Built-in_namespaces +public enum Namespace implements EnumCode { + MEDIA(-2), + SPECIAL(-1) { + @Override + public boolean talk() { + return false; + } + }, + MAIN(0), // Main or Article + TALK(1), + USER(2), + USER_TALK(3), + PROJECT(4), + PROJECT_TALK(5), + FILE(6), + FILE_TALK(7), + MEDIAWIKI(8), + MEDIAWIKI_TALK(9), + TEMPLATE(10), + TEMPLATE_TALK(11), + HELP(12), + HELP_TALK(13), + CATEGORY(14), + CATEGORY_TALK(15), + PORTAL(100), + PORTAL_TALK(101), + BOOK(108), + BOOK_TALK(109), + DRAFT(118), + DRAFT_TALK(119), + EDUCATION_PROGRAM(446), + EDUCATION_PROGRAM_TALK(447), + TIMED_TEXT(710), + TIMED_TEXT_TALK(711), + MODULE(828), + MODULE_TALK(829), + GADGET(2300), + GADGET_TALK(2301), + GADGET_DEFINITION(2302), + GADGET_DEFINITION_TALK(2303), + TOPIC(2600); + + private static final int TALK_MASK = 0x1; + private static final EnumCodeMap<Namespace> MAP = new EnumCodeMap<>(Namespace.class); + + private final int code; + + @NonNull + public static Namespace of(int code) { + return MAP.get(code); + } + + @Override + public int code() { + return code; + } + + public boolean special() { + return this == SPECIAL; + } + + public boolean main() { + return this == MAIN; + } + + public boolean file() { + return this == FILE; + } + + public boolean talk() { + return (code & TALK_MASK) == TALK_MASK; + } + + Namespace(int code) { + this.code = code; + } +} \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/278061 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7836fc9ce9a0ab12104ad45ade7f714b67b82d06 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits