package com.markjmind.uni.common;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Point;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.Toast;
import java.util.List;
/**
* start : 2012.08.30<br>
* <br>
* 비동기 Layout Controll인 JwViewController를 확장한 클래스이다.<br>
* Layout에 관련된 Util을 추가확장 했다.<br>
*
* @author 오재웅
* @version 2013.11.17
*/
public class Jwc{
public static int getColor(String color){
return Color.parseColor(color);
}
public static float getDensity(Context context){
return context.getResources().getDisplayMetrics().density;
}
public static float getDensity(Activity context){
return context.getResources().getDisplayMetrics().density;
}
public static float getDensity(View view){
return view.getContext().getResources().getDisplayMetrics().density;
}
public static int getDp(Context context, int pix){
return (int)(pix/context.getResources().getDisplayMetrics().density);
}
public static int getPix(Context context, int dp){
return (int)(dp*context.getResources().getDisplayMetrics().density);
}
public static int getWindowHeight(Context context){
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size.y;
}
public static int getWindowWidth(Context context){
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size.x;
}
public static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}
public static void setVisible(View target, boolean isVisible, int falseVisible){
if(isVisible){
target.setVisibility(View.VISIBLE);
}else{
target.setVisibility(falseVisible);
}
}
public static void setVisible(View target, boolean isVisible){
Jwc.setVisible(target,isVisible, View.GONE);
}
public static boolean isActivityRunning(Context context){
ActivityManager actMng = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> list = actMng.getRunningAppProcesses();
for(ActivityManager.RunningAppProcessInfo info : list){
if(info.processName.equals(context.getPackageName()))
{
return true;
}
}
return false;
}
public static void toast(Context context, String msg){
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
public static void hideKeyboard(Context context, EditText editText){
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
public static void hideKeyboard(Activity activity){
View view = activity.getCurrentFocus();
if ( view != null ) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
public static void showKeyboard(Context context, EditText editText){
InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, 0);
}
public static View lastChild(ViewGroup parantView){
return parantView.getChildAt(parantView.getChildCount() - 1);
}
public static View getInfalterView(Context context, int layout_id){
// return LayoutInflater.from(context).inflate(layout_id, null);
return ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(layout_id, null);
// return View.inflate(context, layout_id,null);
}
public static View getInfalterView(Context context, int layout_id, ViewGroup parents){
return ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(layout_id, parents);
}
public static View findViewById(View view, int R_id){
return view.findViewById(R_id);
}
public static View findViewWithTag(View parants, Object tag){
return parants.findViewWithTag(tag);
}
}