package com.m.common.utils;
import java.io.File;
import java.util.List;
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
import org.android.loader.BitmapLoader;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.graphics.Rect;
import android.net.Uri;
import android.opengl.GLES10;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.TypedValue;
import com.m.common.context.GlobalContext;
public class Utils {
public static int getBitmapMaxWidthAndMaxHeight() {
int[] maxSizeArray = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSizeArray, 0);
if (maxSizeArray[0] == 0) {
GLES10.glGetIntegerv(GL11.GL_MAX_TEXTURE_SIZE, maxSizeArray, 0);
}
return 2048;
}
public static int getAppHeight(Activity paramActivity) {
Rect localRect = new Rect();
paramActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);
return localRect.height();
}
public static Intent getShareIntent(String title, String content, String url) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra("imageURL", url);
if (!TextUtils.isEmpty(url)) {
File file = BitmapLoader.getInstance().getCacheFile(url);
if (file.exists()) {
shareIntent.setType("image/*");
Uri uri = Uri.fromFile(file);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
}
}
if (TextUtils.isEmpty(content)) {
content = title;
} else {
if (!TextUtils.isEmpty(title))
shareIntent.putExtra(Intent.EXTRA_TITLE, title);
}
shareIntent.putExtra(Intent.EXTRA_TEXT, content);
return shareIntent;
}
public static int dip2px(int dipValue) {
float reSize = GlobalContext.getInstance().getResources().getDisplayMetrics().density;
return (int) ((dipValue * reSize) + 0.5);
}
public static int px2dip(int pxValue) {
float reSize = GlobalContext.getInstance().getResources().getDisplayMetrics().density;
return (int) ((pxValue / reSize) + 0.5);
}
public static float sp2px(int spValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue, GlobalContext.getInstance().getResources().getDisplayMetrics());
}
public static int length(String paramString) {
int i = 0;
for (int j = 0; j < paramString.length(); j++) {
if (paramString.substring(j, j + 1).matches("[Α-¥]")) {
i += 2;
} else {
i++;
}
}
if (i % 2 > 0) {
i = 1 + i / 2;
} else {
i = i / 2;
}
return i;
}
public static boolean isIntentSafe(Activity activity, Uri uri) {
Intent mapCall = new Intent(Intent.ACTION_VIEW, uri);
PackageManager packageManager = activity.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapCall, 0);
return activities.size() > 0;
}
public static boolean isIntentSafe(Activity activity, Intent intent) {
PackageManager packageManager = activity.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
return activities.size() > 0;
}
public static boolean isGooglePlaySafe(Activity activity) {
Uri uri = Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.gms");
Intent mapCall = new Intent(Intent.ACTION_VIEW, uri);
mapCall.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
mapCall.setPackage("com.android.vending");
PackageManager packageManager = activity.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapCall, 0);
return activities.size() > 0;
}
public static String getLatestCameraPicture(Activity activity) {
String[] projection = new String[] { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME, MediaStore.Images.ImageColumns.DATE_TAKEN,
MediaStore.Images.ImageColumns.MIME_TYPE };
final Cursor cursor = activity.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null,
MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC");
if (cursor.moveToFirst()) {
String path = cursor.getString(1);
return path;
}
return null;
}
}