package org.wordpress.android.util;
import android.app.Activity;
import android.net.Uri;
import org.wordpress.android.analytics.AnalyticsTracker;
import org.wordpress.android.fluxc.model.SiteModel;
import org.wordpress.android.ui.prefs.SiteSettingsInterface;
public class WPMediaUtils {
// Max picture size will be 3000px wide. That's the maximum resolution you can set in the current picker.
public static final int OPTIMIZE_IMAGE_MAX_WIDTH = 3000;
public static final int OPTIMIZE_IMAGE_ENCODER_QUALITY = 85;
public static Uri getOptimizedMedia(Activity activity, SiteModel siteModel, String path, boolean isVideo) {
if (isVideo) {
return null;
}
// TODO implement site settings for .org sites
SiteSettingsInterface siteSettings = SiteSettingsInterface.getInterface(activity, siteModel, null);
// Site Settings are implemented on .com/Jetpack sites only
if (siteSettings != null && siteSettings.init(false).getOptimizedImage()) {
int resizeWidth = siteSettings.getMaxImageWidth() > 0 ? siteSettings.getMaxImageWidth() : Integer.MAX_VALUE;
int quality = siteSettings.getImageQuality();
// do not optimize if original-size and 100% quality are set.
if (resizeWidth == Integer.MAX_VALUE && quality == 100) {
return null;
}
String optimizedPath = ImageUtils.optimizeImage(activity, path, resizeWidth, quality);
if (optimizedPath == null) {
AppLog.e(AppLog.T.EDITOR, "Optimized picture was null!");
AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZE_ERROR);
} else {
AnalyticsTracker.track(AnalyticsTracker.Stat.MEDIA_PHOTO_OPTIMIZED);
return Uri.parse(optimizedPath);
}
}
return null;
}
public static Uri fixOrientationIssue(Activity activity, String path, boolean isVideo) {
if (isVideo) {
return null;
}
String rotatedPath = ImageUtils.rotateImageIfNecessary(activity, path);
if (rotatedPath != null) {
return Uri.parse(rotatedPath);
}
return null;
}
}