/*
* DeliciousDroid - http://code.google.com/p/DeliciousDroid/
*
* Copyright (C) 2010 Matt Schmidt
*
* DeliciousDroid is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 3 of the License,
* or (at your option) any later version.
*
* DeliciousDroid is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DeliciousDroid; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
package com.deliciousdroid.action;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import com.deliciousdroid.activity.AddBookmark;
import com.deliciousdroid.activity.BrowseBookmarks;
import com.deliciousdroid.activity.BrowseBundles;
import com.deliciousdroid.activity.BrowseTags;
import com.deliciousdroid.activity.ViewBookmark;
import com.deliciousdroid.Constants;
import com.deliciousdroid.Constants.BookmarkViewType;
import com.deliciousdroid.providers.BookmarkContent.Bookmark;
import com.deliciousdroid.providers.BookmarkContentProvider;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
public class IntentHelper {
public static Intent OpenInBrowser(String url){
Uri link = Uri.parse(url);
return new Intent(Intent.ACTION_VIEW, link);
}
public static Intent ReadBookmark(String url){
String readUrl = "";
try {
readUrl = Constants.TEXT_EXTRACTOR_URL + URLEncoder.encode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Uri readLink = Uri.parse(readUrl);
return new Intent(Intent.ACTION_VIEW, readLink);
}
public static Intent SendBookmark(String url, String title) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, url);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, title);
sendIntent.putExtra(Intent.EXTRA_TITLE, title);
return sendIntent;
}
public static Intent AddBookmark(String url, String account, Context context) {
Intent addBookmark = new Intent(context, AddBookmark.class);
addBookmark.setAction(Intent.ACTION_SEND);
if(url != null)
addBookmark.putExtra(Intent.EXTRA_TEXT, url);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bookmarks");
addBookmark.setData(data.build());
return addBookmark;
}
public static Intent ViewBookmark(Bookmark b, BookmarkViewType type, String account, Context context) {
Intent viewBookmark = new Intent(context, ViewBookmark.class);
viewBookmark.setAction(Intent.ACTION_VIEW);
viewBookmark.addCategory(Intent.CATEGORY_DEFAULT);
viewBookmark.putExtra("com.deliciousdroid.BookmarkViewType", type);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bookmarks");
if(b.getId() != 0) {
data.appendEncodedPath(Integer.toString(b.getId()));
} else {
data.appendEncodedPath(Integer.toString(0));
data.appendQueryParameter("url", b.getUrl());
data.appendQueryParameter("title", b.getDescription());
data.appendQueryParameter("notes", b.getNotes());
data.appendQueryParameter("tags", b.getTagString());
data.appendQueryParameter("time", Long.toString(b.getTime()));
data.appendQueryParameter("account", b.getAccount());
}
viewBookmark.setData(data.build());
return viewBookmark;
}
public static Intent EditBookmark(Bookmark b, String account, Context context) {
Intent editBookmark = new Intent(context, AddBookmark.class);
editBookmark.setAction(Intent.ACTION_EDIT);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bookmarks");
data.appendEncodedPath(Integer.toString(b.getId()));
editBookmark.setData(data.build());
return editBookmark;
}
public static Intent ViewBookmarks(String tag, String account, Context context) {
Intent i = new Intent(context, BrowseBookmarks.class);
i.setAction(Intent.ACTION_VIEW);
i.addCategory(Intent.CATEGORY_DEFAULT);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bookmarks");
if(tag != null && !tag.equals(""))
data.appendQueryParameter("tagname", tag);
i.setData(data.build());
return i;
}
public static Intent ViewBundles(String account, Context context) {
Intent i = new Intent(context, BrowseBundles.class);
i.setAction(Intent.ACTION_VIEW);
i.addCategory(Intent.CATEGORY_DEFAULT);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bundles");
i.setData(data.build());
return i;
}
public static Intent ViewTags(String account, Context context) {
Intent i = new Intent(context, BrowseTags.class);
i.setAction(Intent.ACTION_VIEW);
i.addCategory(Intent.CATEGORY_DEFAULT);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("tags");
i.setData(data.build());
return i;
}
public static Intent ViewTabletTags(String account, Context context) {
Intent i = new Intent(context, BrowseBookmarks.class);
i.setAction(Intent.ACTION_VIEW);
i.addCategory(Intent.CATEGORY_DEFAULT);
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority(account + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("tags");
i.setData(data.build());
return i;
}
public static Intent SearchBookmarks(String query, String account, Context context) {
Intent i = new Intent(context, BrowseBookmarks.class);
i.setAction(Intent.ACTION_SEARCH);
i.putExtra(SearchManager.QUERY, query);
i.putExtra("MainSearchResults", "1");
return i;
}
public static Intent SearchTags(String query, String account, Context context) {
Intent i = new Intent(context, BrowseTags.class);
i.setAction(Intent.ACTION_SEARCH);
i.putExtra(SearchManager.QUERY, query);
i.putExtra("MainSearchResults", "1");
return i;
}
public static Intent SearchGlobalTags(String query, String account, Context context) {
Intent i = new Intent(context, BrowseBookmarks.class);
i.setAction(Intent.ACTION_SEARCH);
i.putExtra(SearchManager.QUERY, query);
i.putExtra("MainSearchResults", "1");
Uri.Builder data = new Uri.Builder();
data.scheme(Constants.CONTENT_SCHEME);
data.encodedAuthority("global" + "@" + BookmarkContentProvider.AUTHORITY);
data.appendEncodedPath("bookmarks");
i.setData(data.build());
return i;
}
}