/**
* Copyright (C) 2013 HalZhang
*/
package com.halzhang.android.apps.startupnews.utils;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import com.halzhang.android.apps.startupnews.ui.phone.BrowseActivity;
import com.halzhang.android.startupnews.data.entity.SNNew;
import java.util.List;
/**
* StartupNews
* <p>
* </p>
*
* @author <a href="http://weibo.com/halzhang">Hal</a>
* @version Mar 22, 2013
*/
public class ActivityUtils {
public static void openArticle(Activity activity, SNNew snNew) {
if (snNew == null || activity == null) {
return;
}
Intent intent = null;
if (PreferenceUtils.isUseInnerBrowse(activity)) {
intent = new Intent(activity, BrowseActivity.class);
intent.putExtra(BrowseActivity.EXTRA_URL, snNew.getUrl());
intent.putExtra(BrowseActivity.EXTRA_TITLE, snNew.getTitle());
} else {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(PreferenceUtils.getHtmlProvider(activity) + snNew.getUrl()));
}
activity.startActivity(intent);
AppUtils.getMyApplication(activity).addHistory(snNew.getUrl());
}
/**
* With window Animations
*
* @param activity
* @param snNew
* @param v
*/
public static void openActicle(Activity activity, SNNew snNew, View v) {
if (snNew == null || activity == null) {
return;
}
Bundle b = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// b = ActivityOptions.makeScaleUpAnimation(view, 0, 0,
// view.getWidth(),
// view.getHeight()).toBundle();
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
bitmap.eraseColor(Color.WHITE);
b = ActivityOptions.makeThumbnailScaleUpAnimation(v, bitmap, 0, 0).toBundle();
}
Intent intent = null;
if (PreferenceUtils.isUseInnerBrowse(activity)) {
intent = new Intent(activity, BrowseActivity.class);
intent.putExtra(BrowseActivity.EXTRA_URL, snNew.getUrl());
intent.putExtra(BrowseActivity.EXTRA_TITLE, snNew.getTitle());
} else {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(PreferenceUtils.getHtmlProvider(activity) + snNew.getUrl()));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
activity.startActivity(intent, b);
} else {
activity.startActivity(intent);
}
}
/**
* 判断Intent是否可用
*
* @param context
* @param intent
* @return
*/
public static boolean isIntentAvailable(Context context, Intent intent) {
final PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.GET_ACTIVITIES);
return list.size() > 0;
}
}