smilevchy
5/23/2015 - 1:55 PM

CommonUtils.java

public final class CommonUtils {
  
  
    public static float convertDpToPixel(float dp, Context context) {
	    Resources resources = context.getResources();
	    DisplayMetrics metrics = resources.getDisplayMetrics();
	    float px = dp * (metrics.densityDpi / 160f);
	    
	    return px;
    }

    public static float convertDpToPixel(float dp, Context context) {
    	Resources resources = context.getResources();
    	DisplayMetrics metrics = resources.getDisplayMetrics();
    	float px = Math.round(dp * metrics.density);
    	    
    	return px;
    }
    
    public static float convertDpToPixel(float dp, Context context) {
    	Resources resources = context.getResources();
    	DisplayMetrics metrics = resources.getDisplayMetrics();
    	float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics);
    	    
    	return px;
    }
    
    public static float convertPixelToDp(float px, Context context) {
    	Resources resources = context.getResources();
    	DisplayMetrics metrics = resources.getDisplayMetrics();
    	float dp = px / (metrics.densityDpi / 160f);
    
    	return dp;
    }
    
    public static int convertPixelToDp(int px) {
        return (int) (px / Resources.getSystem().getDisplayMetrics().density);
    }

    public static int convertDpToPixel(int dp) {
        return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
    }
    
    public static boolean canChildScrollUp(View target) {
    	if (android.os.Build.VERSION.SDK_INT < 14) {
        	if (target instanceof AbsListView) {
            	final AbsListView absListView = (AbsListView) target;
               	
               	return absListView.getChildCount() > 0 && 
               		(absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
            } else {
            	return target.getScrollY() > 0;
            }
        } else {
     		return ViewCompat.canScrollVertically(target, -1);
       	}
    }
    
    // DialogFragment: adjust window's layout
    public void adjustWindowLayout(int padding) {
    	if (getDialog() != null) {
         	int fullWidth = getDialog().getWindow().getAttributes().width;
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
            	Display display = getActivity().getWindowManager().getDefaultDisplay();
                Point size = new Point();
                display.getSize(size);
               	fullWidth = size.x;
            } else {
           		Display display = getActivity().getWindowManager().getDefaultDisplay();
               	fullWidth = display.getWidth();
            }
    
            final int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics());
    
            int w = fullWidth - padding;
            int h = getDialog().getWindow().getAttributes().height;
    
            getDialog().getWindow().setLayout(w, h);
     	}
    }

    public static boolean hasPermission(Context context, String permission) {
        int perm = context.checkCallingOrSelfPermission(permission);
    
        return perm == PackageManager.PERMISSION_GRANTED;
    }
    
    public static int getMaxHeapSize() {
      ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
      int heapSize = manager.getMemoryClass();
      
      return heapSize;
    }

}