private String getCustomValuesText(PDroidAppSetting setting) {
    if (setting.getCustomValues() != null && setting.getCustomValues().size() > 0) {
      List<String> customValueStrings = new LinkedList<String>();
      for (SimpleImmutableEntry<String, String> customValue : setting.getCustomValues()) {
        SpannableStringBuilder builder = new SpannableStringBuilder();
        if (customValue.getKey() != null && !(customValue.getKey().isEmpty())) {
          builder.append(customValue.getKey()).append(":");
        }
        if (customValue.getValue() != null && !(customValue.getValue().isEmpty())) {
          builder.append(customValue.getValue());
          builder.setSpan(
              new StyleSpan(Typeface.ITALIC),
              builder.length() - customValue.getValue().length(),
              builder.length(),
              0);
        }

        if (!builder.toString().isEmpty()) {
          customValueStrings.add(builder.toString());
        }
      }

      if (customValueStrings.size() > 0) {
        return TextUtils.join(
            context.getString(R.string.detail_custom_value_spacer), customValueStrings);
      }
    }
    return null;
  }
 protected static Entry<File, File[]> getActionRoots(VCSContext context) {
   Set<File> repositories = GitUtils.getRepositoryRoots(context);
   if (repositories.isEmpty()) {
     LOG.log(
         Level.FINE, "No repository in the given context: {0}", context.getRootFiles()); // NOI18N
     return null;
   }
   SimpleImmutableEntry<File, File[]> actionRoots = GitUtils.getActionRoots(context);
   if (actionRoots != null) {
     File repository = actionRoots.getKey();
     if (repositories.size() > 1) {
       LOG.log(
           Level.FINE,
           "Multiple repositories in the given context: {0}, selected {1}",
           new Object[] {context.getRootFiles(), repository}); // NOI18N
     }
   }
   return actionRoots;
 }