docs: @NonNull
      public static Artwork fromCursor(@NonNull Cursor cursor) {
          Builder builder = new Builder();
          int componentNameColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_SOURCE_COMPONENT_NAME);
          if (componentNameColumnIndex != -1) {
              builder.componentName(ComponentName.unflattenFromString(cursor.getString(componentNameColumnIndex)));
          }
          int imageUriColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_IMAGE_URI);
          if (imageUriColumnIndex != -1) {
              String uriString = cursor.getString(imageUriColumnIndex);
              if (!TextUtils.isEmpty(uriString)) {
                  builder.imageUri(Uri.parse(uriString));
              }
          }
          int titleColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_TITLE);
          if (titleColumnIndex != -1) {
              builder.title(cursor.getString(titleColumnIndex));
          }
          int bylineColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_BYLINE);
          if (bylineColumnIndex != -1) {
              builder.byline(cursor.getString(bylineColumnIndex));
          }
          int attributionColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_ATTRIBUTION);
          if (attributionColumnIndex != -1) {
              builder.attribution(cursor.getString(attributionColumnIndex));
          }
          int tokenColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_TOKEN);
          if (tokenColumnIndex != -1) {
              builder.token(cursor.getString(tokenColumnIndex));
          }
          int viewIntentColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_VIEW_INTENT);
          if (viewIntentColumnIndex != -1) {
              try {
                  String viewIntent = cursor.getString(viewIntentColumnIndex);
                  if (!TextUtils.isEmpty(viewIntent)) {
                      builder.viewIntent(Intent.parseUri(viewIntent, Intent.URI_INTENT_SCHEME));
                  }
              } catch (URISyntaxException ignored) {
              }
          }
          int metaFontColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_META_FONT);
          if (metaFontColumnIndex != -1) {
              // Assume the COLUMN_NAME_META_FONT value is valid
              //noinspection WrongConstant
              builder.metaFont(cursor.getString(metaFontColumnIndex));
          }
          int dateAddedColumnIndex = cursor.getColumnIndex(MuzeiContract.Artwork.COLUMN_NAME_DATE_ADDED);
          if (dateAddedColumnIndex != -1) {
              builder.dateAdded(new Date(cursor.getLong(dateAddedColumnIndex)));
          }
          return builder.build();
      }