Advertisement
bigrushdog

torch_sammy

May 2nd, 2012
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. package com.android.systemui.statusbar.preferences;
  2.  
  3. import android.content.Context;
  4. import android.graphics.PixelFormat;
  5. import android.view.View;
  6. import android.view.WindowManager;
  7. import android.view.WindowManager.LayoutParams;
  8. import android.widget.ImageView;
  9. import android.widget.Toast;
  10. import android.media.PreviewSurface;
  11. import android.media.PreviewSurface.Callback;
  12.  
  13. import com.android.systemui.R;
  14.  
  15. public class TorchController extends SettingsController {
  16.     private TorchFactory tf;
  17.  
  18.     public TorchController(Context context, View button) {
  19.         super(context, button);
  20.         ((ImageView) button.findViewById(R.id.eos_settings_icon))
  21.                 .setImageResource(R.drawable.eos_torch);
  22.         updateController();
  23.     }
  24.  
  25.     protected int getPreferenceStatus() {
  26.         return (tf != null) ? tf.getEnabled() : 0;
  27.     }
  28.  
  29.     protected void setPreferenceStatus(int status) {
  30.           if (status == 1) {
  31.               tf = new TorchFactory(mContext);
  32.               tf.toggleLED(true);
  33.           } else {
  34.               if (tf != null) {
  35.                   tf.toggleLED(false);
  36.                   tf = null;
  37.               }
  38.           }
  39.     }
  40. }
  41.  
  42. class TorchFactory implements Callback {
  43.     PreviewSurface mSurface;
  44.     WindowManager mWindowManager;
  45.     LayoutParams mLayoutParams;
  46.     Context mContext;
  47.  
  48.     private boolean mEnabled = false;
  49.  
  50.     public TorchFactory(Context context) {
  51.         mContext = context;
  52.         mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);        
  53.         mLayoutParams = new WindowManager.LayoutParams(
  54.                 1,
  55.                 1,
  56.                 WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
  57.                 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
  58.                 | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
  59.                 PixelFormat.TRANSPARENT);
  60.         mSurface = new PreviewSurface(mContext);
  61.         mSurface.setCallback(this);
  62.         mWindowManager.addView(mSurface, mLayoutParams);
  63.         mSurface.setWindowManager(mWindowManager);        
  64.  
  65.     }
  66.  
  67.     public boolean ledOn() {
  68.         mSurface.initCamera();
  69.         mSurface.startPreview();
  70.         mSurface.lightOn();
  71.         mEnabled = true;
  72.         return true;
  73.     }
  74.  
  75.     public boolean ledOff() {
  76.         mSurface.releaseCamera();
  77.         mEnabled = false;
  78.         return true;
  79.     }
  80.  
  81.     public int getEnabled() {
  82.         return (mEnabled ? 1 : 0);
  83.     }
  84.  
  85.     public boolean toggleLED (boolean toggle) {
  86.         return (toggle) ? ledOn() : ledOff();
  87.     }
  88.  
  89.     @Override
  90.     public void cameraReady() {
  91.         // TODO Auto-generated method stub        
  92.     }
  93.  
  94.     @Override
  95.     public void cameraNotAvailable() {
  96.         Toast.makeText(mContext, "Torch is not available", Toast.LENGTH_SHORT).show();        
  97.     }    
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement