package com.chrome.codereview.model; import android.content.Context; import android.text.TextPaint; import android.widget.TextView; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; /** * Created by sergeyv on 29/4/14. */ public class Diff { private static final String INDEX = "Index: "; private Map<String, List<String>> fileDiffs = new HashMap<String, List<String>>(); private final int patchSetId; public Diff(int patchSetId, String diffString) { parse(diffString); this.patchSetId = patchSetId; } public void parse(String s) { Scanner scanner = new Scanner(s); List<String> diffs = new ArrayList<String>(); while (scanner.hasNext()) { String line = scanner.nextLine(); if (line.startsWith(INDEX)) { String fileName = line.substring(INDEX.length()); diffs = new ArrayList<String>(); fileDiffs.put(fileName, diffs); scanner.nextLine(); //diff --git scanner.nextLine(); //index scanner.nextLine(); //--- a/ scanner.nextLine(); //+++ b/ continue; } diffs.add(line.replace(" ", "\u00A0")); } } public List<String> diffForFile(String fileName) { if (!fileDiffs.containsKey(fileName)) { return Collections.emptyList(); } return fileDiffs.get(fileName); } public int patchSetId() { return patchSetId; } }