Android Open Source - dccsched Notes Exporter






From Project

Back to project page dccsched.

License

The source code is released under:

Apache License

If you think the Android project dccsched 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

/*
 * Copyright 2010 Google Inc./* w  w w.  j av  a  2s .  c  o  m*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.underhilllabs.dccsched.util;

import com.underhilllabs.dccsched.provider.ScheduleContract.Notes;

import org.xmlpull.v1.XmlSerializer;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.text.format.Time;
import android.util.Xml;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/**
 * Simple exporter that writes {@link Notes} contents into a {@link File} using
 * {@link Xml#newSerializer()}.
 */
public class NotesExporter {

    public static File writeExportedNotes(Context context) throws IOException {
        // TODO: allow customization by accepting dir uri and output file
        final ContentResolver resolver = context.getContentResolver();
        final File notesFile = context.getFileStreamPath("notes.xml");
        final BufferedWriter out = new BufferedWriter(new FileWriter(notesFile));
        final XmlSerializer serializer = Xml.newSerializer();

        serializer.setOutput(out);
        serializer.startDocument("UTF-8", true);
        serializer.startTag("", Tags.NOTES);

        final Time time = new Time();

        final Uri notesUri = Notes.CONTENT_URI;
        final Cursor cursor = resolver.query(notesUri, NotesQuery.PROJECTION, null, null,
                Notes.DEFAULT_SORT);
        try {
            while (cursor.moveToNext()) {
                serializer.startTag("", Tags.NOTE);
                {
                    serializer.startTag("", Tags.SESSION_ID);
                    serializer.text(cursor.getString(NotesQuery.SESSION_ID));
                    serializer.endTag("", Tags.SESSION_ID);
                }
                {
                    serializer.startTag("", Tags.TIME);
                    time.set(cursor.getLong(NotesQuery.NOTE_TIME));
                    final String timeString = time.format3339(false);
                    serializer.text(timeString);
                    serializer.endTag("", Tags.TIME);
                }
                {
                    serializer.startTag("", Tags.CONTENT);
                    serializer.text(cursor.getString(NotesQuery.NOTE_CONTENT));
                    serializer.endTag("", Tags.CONTENT);
                }
                serializer.endTag("", Tags.NOTE);
            }
        } finally {
            cursor.close();
        }

        serializer.endTag("", Tags.NOTES);
        serializer.endDocument();

        out.flush();
        out.close();

        return notesFile;
    }

    private interface Tags {
        String NOTES = "notes";
        String NOTE = "note";
        String SESSION_ID = "sessionId";
        String CONTENT = "content";
        String TIME = "time";
    }

    private interface NotesQuery {
        String[] PROJECTION = {
                Notes.SESSION_ID,
                Notes.NOTE_CONTENT,
                Notes.NOTE_TIME,
        };

        int SESSION_ID = 0;
        int NOTE_CONTENT = 1;
        int NOTE_TIME = 2;
    }
}




Java Source Code List

com.underhilllabs.dccsched.io.LocalBlocksHandler.java
com.underhilllabs.dccsched.io.LocalExecutor.java
com.underhilllabs.dccsched.io.LocalRoomsHandler.java
com.underhilllabs.dccsched.io.LocalSearchSuggestHandler.java
com.underhilllabs.dccsched.io.LocalSessionsHandler.java
com.underhilllabs.dccsched.io.LocalTracksHandler.java
com.underhilllabs.dccsched.io.RemoteExecutor.java
com.underhilllabs.dccsched.io.RemoteSessionsHandler.java
com.underhilllabs.dccsched.io.RemoteSpeakersHandler.java
com.underhilllabs.dccsched.io.RemoteVendorsHandler.java
com.underhilllabs.dccsched.io.RemoteWorksheetsHandler.java
com.underhilllabs.dccsched.io.XmlHandler.java
com.underhilllabs.dccsched.provider.ScheduleContract.java
com.underhilllabs.dccsched.provider.ScheduleDatabase.java
com.underhilllabs.dccsched.provider.ScheduleProvider.java
com.underhilllabs.dccsched.service.SyncService.java
com.underhilllabs.dccsched.ui.BlocksActivity.java
com.underhilllabs.dccsched.ui.HomeActivity.java
com.underhilllabs.dccsched.ui.MapActivity.java
com.underhilllabs.dccsched.ui.NoteEditActivity.java
com.underhilllabs.dccsched.ui.NotesActivity.java
com.underhilllabs.dccsched.ui.ScheduleActivity.java
com.underhilllabs.dccsched.ui.SearchActivity.java
com.underhilllabs.dccsched.ui.SessionDetailActivity.java
com.underhilllabs.dccsched.ui.SessionsActivity.java
com.underhilllabs.dccsched.ui.StarredActivity.java
com.underhilllabs.dccsched.ui.TrackDetailActivity.java
com.underhilllabs.dccsched.ui.TracksActivity.java
com.underhilllabs.dccsched.ui.VendorDetailActivity.java
com.underhilllabs.dccsched.ui.VendorsActivity.java
com.underhilllabs.dccsched.ui.widget.BlockView.java
com.underhilllabs.dccsched.ui.widget.BlocksLayout.java
com.underhilllabs.dccsched.ui.widget.TimeRulerView.java
com.underhilllabs.dccsched.util.DetachableResultReceiver.java
com.underhilllabs.dccsched.util.FractionalTouchDelegate.java
com.underhilllabs.dccsched.util.Lists.java
com.underhilllabs.dccsched.util.Maps.java
com.underhilllabs.dccsched.util.MathUtils.java
com.underhilllabs.dccsched.util.NotesExporter.java
com.underhilllabs.dccsched.util.NotifyingAsyncQueryHandler.java
com.underhilllabs.dccsched.util.ParserUtils.java
com.underhilllabs.dccsched.util.SelectionBuilder.java
com.underhilllabs.dccsched.util.Sets.java
com.underhilllabs.dccsched.util.SpreadsheetEntry.java
com.underhilllabs.dccsched.util.UIUtils.java
com.underhilllabs.dccsched.util.WorksheetEntry.java