package info.papdt.blackblub.utils; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.util.DisplayMetrics; import android.view.Display; import android.view.WindowManager; import cyanogenmod.app.CMStatusBarManager; import cyanogenmod.app.CustomTile; import info.papdt.blackblub.C; import info.papdt.blackblub.R; import info.papdt.blackblub.receiver.TileReceiver; @SuppressWarnings("unchecked") public class Utility { public static final int CM_TILE_CODE = 1001; public static int getTrueScreenHeight(Context context) { Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); display.getRealMetrics(dm); int dpi = dm.heightPixels; return dpi; } public static int getTrueScreenWidth(Context context) { Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); display.getRealMetrics(dm); int dpi = dm.widthPixels; return dpi; } /** Create a tiles on the status bar through CyanogenMod SDK -- Fung Jichun * You can learn more from: https://cyngn.com/developer-blog/introducing-the-cyanogen-platform-sdk */ public static void createStatusBarTiles(Context context, boolean nowStatus) { Intent intent = new Intent(); intent.setAction(TileReceiver.ACTION_UPDATE_STATUS); intent.putExtra(C.EXTRA_ACTION, nowStatus ? C.ACTION_STOP : C.ACTION_START); CustomTile customTile = new CustomTile.Builder(context) .shouldCollapsePanel(false) .setLabel(nowStatus ? R.string.notification_action_turn_off : R.string.app_name) .setIcon(nowStatus ? R.drawable.ic_brightness_2_white_36dp : R.drawable.ic_wb_sunny_white_36dp) .setOnClickIntent(PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)) .build(); CMStatusBarManager.getInstance(context).publishTile(CM_TILE_CODE, customTile); } }