Android Open Source - HapiPodcastJ Zip Exporter






From Project

Back to project page HapiPodcastJ.

License

The source code is released under:

GNU General Public License

If you think the Android project HapiPodcastJ listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package info.xuluan.podcast.utils;
//from   w  w w  .  ja  v a  2s. c  o  m
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.zip.ZipOutputStream;

import android.app.Activity;
import android.text.TextUtils;
import android.widget.Toast;

public class ZipExporter {
  public interface ContentWriter {
    void writeContent(ZipOutputStream zos) throws IOException;
  }
  
  public static void exportToZipFile(Activity act, String filename, ContentWriter cw) {
    String filepath = SDCardMgr.getExportDir()+"/"+filename;
    File outFile = new File(filepath);
    ZipOutputStream zos = null;
    Toast.makeText(act, "Please wait... ", Toast.LENGTH_LONG).show(); 
    try {
      FileOutputStream os = new FileOutputStream(outFile);
      zos = new ZipOutputStream(new BufferedOutputStream(os));
      zos.setLevel(0); //mp3 files don't compress well, and our XML is small
      cw.writeContent(zos);
      zos.close();
      zos = null;
      Toast.makeText(act, "Exported zip file to : "+ filepath, 
          Toast.LENGTH_LONG).show();
    } catch (IOException ex) {
      ex.printStackTrace();
      Toast.makeText(act, "Export zip failed ", 
          Toast.LENGTH_LONG).show();
    } finally {
      try {
        if (zos!=null)
          zos.close();
      } catch (Exception ex) {}
    }
  }
  
  public static String getExportZipFileName(String base)
  {
    base = base.replaceAll("[\\s\\\\:\\<\\>\\[\\]\\*\\|\\/\\?\\{\\}\\'\\\"]+", "_");    
    return base+".zip";
  }

  public static void writeTagLine(PrintWriter out, String tag, int level, boolean isStart) {
    writeIndent(out,level);
    out.print("<"+(isStart?"":"/")+tag+">\n");
  }
  
  public static void writeXmlField(PrintWriter out, String fieldName, long value, int level) {
    writeXmlField(out, fieldName, Long.toString(value), level);
  }
  
  public static void writeXmlField(PrintWriter out, String fieldName, String text, int level) {
    if (text==null)
      return;
    writeIndent(out,level);
    out.print("<"+fieldName+">");
    out.print(TextUtils.htmlEncode(text).toString());
    out.print("</"+fieldName+">\n");
  }

  public static void writeIndent(PrintWriter out, int level) {
    for (; level>0; level--)
      out.print("  ");  //indent
  }

}




Java Source Code List

info.xuluan.podcast.AddChannelActivity.java
info.xuluan.podcast.BackupChannelsActivity.java
info.xuluan.podcast.ChannelActivity.java
info.xuluan.podcast.ChannelDetailsActivity.java
info.xuluan.podcast.ChannelsActivity.java
info.xuluan.podcast.DownloadActivity.java
info.xuluan.podcast.EpisodeDetailsActivity.java
info.xuluan.podcast.EpisodeIcons.java
info.xuluan.podcast.EpisodesActivity.java
info.xuluan.podcast.FlingGestureDetector.java
info.xuluan.podcast.Flingable.java
info.xuluan.podcast.HapiActivity.java
info.xuluan.podcast.HapiListActivity.java
info.xuluan.podcast.HapiPreferenceActivity.java
info.xuluan.podcast.HomeActivity.java
info.xuluan.podcast.MainActivity.java
info.xuluan.podcast.PlayerActivity.java
info.xuluan.podcast.PodcastBaseActivity.java
info.xuluan.podcast.PodcastTab.java
info.xuluan.podcast.Pref.java
info.xuluan.podcast.SearchActivity.java
info.xuluan.podcast.StartupActivity.java
info.xuluan.podcast.TabsHelper.java
info.xuluan.podcast.actionbar.ActionBarHelperBase.java
info.xuluan.podcast.actionbar.ActionBarHelperHoneycomb.java
info.xuluan.podcast.actionbar.ActionBarHelperICS.java
info.xuluan.podcast.actionbar.ActionBarHelper.java
info.xuluan.podcast.actionbar.SimpleMenuItem.java
info.xuluan.podcast.actionbar.SimpleMenu.java
info.xuluan.podcast.fetcher.FeedFetcher.java
info.xuluan.podcast.fetcher.Response.java
info.xuluan.podcast.parser.FeedHandler.java
info.xuluan.podcast.parser.FeedParserHandler.java
info.xuluan.podcast.parser.FeedParserListenerInterface.java
info.xuluan.podcast.parser.FeedParserListener.java
info.xuluan.podcast.parser.FeedParser.java
info.xuluan.podcast.parser.OPMLParserHandler.java
info.xuluan.podcast.parser.SearchItem.java
info.xuluan.podcast.provider.FeedItem.java
info.xuluan.podcast.provider.ItemColumns.java
info.xuluan.podcast.provider.PodcastOpenHelper.java
info.xuluan.podcast.provider.PodcastProvider.java
info.xuluan.podcast.provider.SubscriptionColumns.java
info.xuluan.podcast.provider.Subscription.java
info.xuluan.podcast.service.PlayerService.java
info.xuluan.podcast.service.PodcastService.java
info.xuluan.podcast.utils.DialogMenu.java
info.xuluan.podcast.utils.FileUtils.java
info.xuluan.podcast.utils.IconCursorAdapter.java
info.xuluan.podcast.utils.LabeledFrame.java
info.xuluan.podcast.utils.LockHandler.java
info.xuluan.podcast.utils.Log.java
info.xuluan.podcast.utils.SDCardMgr.java
info.xuluan.podcast.utils.StrUtils.java
info.xuluan.podcast.utils.ZipExporter.java
info.xuluan.podcast.utils.ZipImporter.java