Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.android.systemui.statusbar.preferences;
- import android.content.Context;
- import android.graphics.PixelFormat;
- import android.view.View;
- import android.view.WindowManager;
- import android.view.WindowManager.LayoutParams;
- import android.widget.ImageView;
- import android.widget.Toast;
- import android.media.PreviewSurface;
- import android.media.PreviewSurface.Callback;
- import com.android.systemui.R;
- public class TorchController extends SettingsController {
- private TorchFactory tf;
- public TorchController(Context context, View button) {
- super(context, button);
- ((ImageView) button.findViewById(R.id.eos_settings_icon))
- .setImageResource(R.drawable.eos_torch);
- updateController();
- }
- protected int getPreferenceStatus() {
- return (tf != null) ? tf.getEnabled() : 0;
- }
- protected void setPreferenceStatus(int status) {
- if (status == 1) {
- tf = new TorchFactory(mContext);
- tf.toggleLED(true);
- } else {
- if (tf != null) {
- tf.toggleLED(false);
- tf = null;
- }
- }
- }
- }
- class TorchFactory implements Callback {
- PreviewSurface mSurface;
- WindowManager mWindowManager;
- LayoutParams mLayoutParams;
- Context mContext;
- private boolean mEnabled = false;
- public TorchFactory(Context context) {
- mContext = context;
- mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- mLayoutParams = new WindowManager.LayoutParams(
- 1,
- 1,
- WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
- WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
- | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
- PixelFormat.TRANSPARENT);
- mSurface = new PreviewSurface(mContext);
- mSurface.setCallback(this);
- mWindowManager.addView(mSurface, mLayoutParams);
- mSurface.setWindowManager(mWindowManager);
- }
- public boolean ledOn() {
- mSurface.initCamera();
- mSurface.startPreview();
- mSurface.lightOn();
- mEnabled = true;
- return true;
- }
- public boolean ledOff() {
- mSurface.releaseCamera();
- mEnabled = false;
- return true;
- }
- public int getEnabled() {
- return (mEnabled ? 1 : 0);
- }
- public boolean toggleLED (boolean toggle) {
- return (toggle) ? ledOn() : ledOff();
- }
- @Override
- public void cameraReady() {
- // TODO Auto-generated method stub
- }
- @Override
- public void cameraNotAvailable() {
- Toast.makeText(mContext, "Torch is not available", Toast.LENGTH_SHORT).show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement