Working in the multi-type Galton-Watson branching-process framework we analyse the spread of a pandemic via a most general random contact graph. Our model consists of several communities, and takes an input parameters that outline the contacts between individuals in different communities. Given these parameters, we determine whether there will be a pandemic outbreak and if yes, we calculate the size of the giant--connected-component of the graph, thereby, determining the fraction of the population of each type that would contract the disease before it ends. We show that the disease spread has a natural evolution direction given by the Perron-Frobenius eigenvector of a matrix whose entries encode the average number of individuals of one type expected to be infected by an individual of another type. The corresponding eigenvalue is the basic reproduction number of the pandemic. We perform numerical simulations that compare homogeneous and heterogeneous disease spread graphs and quantify the difference between the pandemics. We elaborate on the difference between herd immunity and the end of the pandemics and the effect of countermeasures on the fraction of infected population.