1 package net.osdn.gokigen.gr2control.liveview;
3 import android.content.Context;
4 import android.content.SharedPreferences;
5 import android.graphics.Color;
6 import android.graphics.drawable.Drawable;
7 import android.os.Bundle;
8 import android.os.Vibrator;
10 import androidx.annotation.NonNull;
11 import androidx.appcompat.app.ActionBar;
12 import androidx.appcompat.app.AppCompatActivity;
13 import androidx.core.content.ContextCompat;
14 import androidx.core.content.res.ResourcesCompat;
15 import androidx.core.graphics.drawable.DrawableCompat;
16 import androidx.fragment.app.Fragment;
17 import androidx.fragment.app.FragmentActivity;
18 import androidx.preference.PreferenceManager;
20 import android.util.Log;
21 import android.view.KeyEvent;
22 import android.view.LayoutInflater;
23 import android.view.View;
24 import android.view.ViewGroup;
25 import android.widget.Button;
26 import android.widget.ImageView;
27 import android.widget.TextView;
29 import net.osdn.gokigen.gr2control.R;
30 import net.osdn.gokigen.gr2control.camera.ICameraButtonControl;
31 import net.osdn.gokigen.gr2control.camera.ICameraConnection;
32 import net.osdn.gokigen.gr2control.camera.ICameraInformation;
33 import net.osdn.gokigen.gr2control.camera.ICameraRunMode;
34 import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback;
35 import net.osdn.gokigen.gr2control.camera.ICameraStatus;
36 import net.osdn.gokigen.gr2control.camera.ICameraStatusWatcher;
37 import net.osdn.gokigen.gr2control.camera.IDisplayInjector;
38 import net.osdn.gokigen.gr2control.camera.IFocusingModeNotify;
39 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
40 import net.osdn.gokigen.gr2control.camera.ILiveViewControl;
41 import net.osdn.gokigen.gr2control.camera.IZoomLensControl;
42 import net.osdn.gokigen.gr2control.camera.olympus.myolycameraprops.LoadSaveCameraProperties;
43 import net.osdn.gokigen.gr2control.camera.olympus.myolycameraprops.LoadSaveMyCameraPropertyDialog;
44 import net.osdn.gokigen.gr2control.liveview.liveviewlistener.ILiveViewListener;
45 import net.osdn.gokigen.gr2control.preference.IPreferencePropertyAccessor;
46 import net.osdn.gokigen.gr2control.scene.IChangeScene;
48 import static android.content.Context.VIBRATOR_SERVICE;
54 public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFocusingModeNotify, IFavoriteSettingDialogKicker, ICameraStatusUpdateNotify, LiveViewKeyPanelClickListener.KeyPanelFeedback, ICameraRunModeCallback
56 private final String TAG = this.toString();
58 private ILiveViewControl liveViewControl = null;
59 private IZoomLensControl zoomLensControl = null;
60 private IInterfaceProvider interfaceProvider = null;
61 private IDisplayInjector interfaceInjector = null;
62 //private OlympusCameraLiveViewListenerImpl liveViewListener = null;
63 private IChangeScene changeScene = null;
64 private ICameraInformation cameraInformation = null;
65 private ICameraStatusWatcher statusWatcher = null;
66 private LiveViewClickTouchListener onClickTouchListener = null;
67 private LiveViewControlPanelClickListener onPanelClickListener = null;
68 private LiveViewKeyPanelClickListener onKeyPanelClickListener = null;
69 private LiveViewFujiXKeyPanelClickListener fujiXOnKeyPanelClickListener = null;
71 private TextView statusArea = null;
72 private TextView focalLengthArea = null;
73 private CameraLiveImageView imageView = null;
75 private ImageView manualFocus = null;
76 private ImageView showGrid = null;
77 private ImageView connectStatus = null;
78 private Button changeLiveViewScale = null;
80 private boolean imageViewCreated = false;
81 private View myView = null;
82 private String messageValue = "";
84 private ICameraConnection.CameraConnectionStatus currentConnectionStatus = ICameraConnection.CameraConnectionStatus.UNKNOWN;
86 public static LiveViewFragment newInstance(IChangeScene sceneSelector, @NonNull IInterfaceProvider provider)
88 LiveViewFragment instance = new LiveViewFragment();
89 instance.prepare(sceneSelector, provider);
91 // パラメータはBundleにまとめておく
92 Bundle arguments = new Bundle();
93 //arguments.putString("title", title);
94 //arguments.putString("message", message);
95 instance.setArguments(arguments);
105 public void onCreate(Bundle savedInstanceState)
107 super.onCreate(savedInstanceState);
108 Log.v(TAG, "onCreate()");
110 if (liveViewListener == null)
112 liveViewListener = new OlympusCameraLiveViewListenerImpl();
122 public void onAttach(@NonNull Context context)
124 super.onAttach(context);
125 Log.v(TAG, "onAttach()");
133 public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
135 super.onCreateView(inflater, container, savedInstanceState);
137 Log.v(TAG, "onCreateView()");
138 if ((imageViewCreated)&&(myView != null))
141 Log.v(TAG, "onCreateView() : called again, so do nothing... : " + myView);
145 View view = inflater.inflate(R.layout.fragment_live_view, container, false);
147 imageViewCreated = true;
151 imageView = view.findViewById(R.id.cameraLiveImageView);
152 if (interfaceInjector != null)
154 interfaceInjector.injectDisplay(imageView, imageView, this);
158 Log.v(TAG, "interfaceInjector is NULL...");
160 FragmentActivity activity = this.getActivity();
161 Vibrator vibrator = (activity != null) ? (Vibrator) activity.getSystemService(VIBRATOR_SERVICE) : null;
162 if ((onClickTouchListener == null)&&(activity != null))
164 onClickTouchListener = new LiveViewClickTouchListener(activity, imageView, this, changeScene, interfaceProvider, this);
166 imageView.setOnClickListener(onClickTouchListener);
167 imageView.setOnTouchListener(onClickTouchListener);
170 view.setOnKeyListener(onClickTouchListener);
171 view.setFocusableInTouchMode(true);
173 setOnClickListener(view, R.id.hideControlPanelTextView);
174 setOnClickListener(view, R.id.showControlPanelTextView);
175 setOnClickListener(view, R.id.showKeyPanelImageView);
176 setOnClickListener(view, R.id.hideKeyPanelTextView);
177 setOnClickListener(view, R.id.shutter_button);
178 setOnClickListener(view, R.id.focusUnlockImageView);
179 setOnClickListener(view, R.id.show_images_button);
180 setOnClickListener(view, R.id.camera_power_off_button);
181 setOnClickListener(view, R.id.show_preference_button);
182 setOnClickListener(view, R.id.show_hide_grid_button);
183 setOnClickListener(view, R.id.zoom_in_button);
184 setOnClickListener(view, R.id.zoom_out_button);
185 setOnClickListener(view, R.id.specialButtonImageView);
186 setOnClickListener(view, R.id.fuji_x_hideKeyPanelTextView);
188 if (onPanelClickListener == null)
190 onPanelClickListener = new LiveViewControlPanelClickListener(activity, interfaceProvider);
192 setPanelClickListener(view, R.id.takemodeTextView);
193 setPanelClickListener(view, R.id.shutterSpeedTextView);
194 setPanelClickListener(view, R.id.apertureValueTextView);
195 setPanelClickListener(view, R.id.exposureCompensationTextView);
196 setPanelClickListener(view, R.id.aeModeImageView);
197 setPanelClickListener(view, R.id.whiteBalanceTextView);
198 setPanelClickListener(view, R.id.isoSensitivityTextView);
199 setPanelClickListener(view, R.id.setEffectImageView);
201 if (onKeyPanelClickListener == null)
203 onKeyPanelClickListener = new LiveViewKeyPanelClickListener(interfaceProvider, this, vibrator);
205 setKeyPanelClickListener(view, R.id.button_front_left);
206 setKeyPanelClickListener(view, R.id.button_front_right);
207 setKeyPanelClickListener(view, R.id.button_adjust_left);
208 setKeyPanelClickListener(view, R.id.button_adjust_enter);
209 setKeyPanelClickListener(view, R.id.button_adjust_right);
210 setKeyPanelClickListener(view, R.id.button_toggle_aeaf);
211 setKeyPanelClickListener(view, R.id.lever_ael_caf);
212 setKeyPanelClickListener(view, R.id.button_up);
213 setKeyPanelClickListener(view, R.id.button_left);
214 setKeyPanelClickListener(view, R.id.button_center_enter);
215 setKeyPanelClickListener(view, R.id.button_right);
216 setKeyPanelClickListener(view, R.id.button_down);
217 setKeyPanelClickListener(view, R.id.button_function_1);
218 setKeyPanelClickListener(view, R.id.button_function_2);
219 setKeyPanelClickListener(view, R.id.button_function_3);
220 setKeyPanelClickListener(view, R.id.button_plus);
221 setKeyPanelClickListener(view, R.id.button_minus);
222 setKeyPanelClickListener(view, R.id.button_playback);
223 setKeyPanelClickListener(view, R.id.button_acclock);
224 setKeyPanelClickListener(view, R.id.button_lcd_onoff);
225 setKeyPanelClickListener(view, R.id.button_highlight);
227 if (fujiXOnKeyPanelClickListener == null)
229 fujiXOnKeyPanelClickListener = new LiveViewFujiXKeyPanelClickListener(interfaceProvider, vibrator);
231 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_minus);
232 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_plus);
233 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_minus);
234 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_plus);
235 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_minus);
236 setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_plus);
238 connectStatus = view.findViewById(R.id.connect_disconnect_button);
239 if (connectStatus != null)
241 connectStatus.setOnClickListener(onClickTouchListener);
244 View keyPanel = view.findViewById(R.id.showKeyPanelImageView);
245 ICameraButtonControl buttonControl = interfaceProvider.getButtonControl();
246 if (keyPanel != null)
248 keyPanel.setVisibility((buttonControl == null) ? View.INVISIBLE : View.VISIBLE);
249 keyPanel.invalidate();
260 private void setOnClickListener(View view, int id)
264 View button = view.findViewById(id);
267 button.setOnClickListener(onClickTouchListener);
276 private void setPanelClickListener(View view, int id)
280 View button = view.findViewById(id);
283 button.setOnClickListener(onPanelClickListener);
292 private void setKeyPanelClickListener(View view, int id)
296 View button = view.findViewById(id);
299 button.setOnClickListener(onKeyPanelClickListener);
300 button.setOnLongClickListener(onKeyPanelClickListener);
309 private void setFujiXKeyPanelClickListener(View view, int id)
313 View button = view.findViewById(id);
316 button.setOnClickListener(fujiXOnKeyPanelClickListener);
317 button.setOnLongClickListener(fujiXOnKeyPanelClickListener);
329 private void prepare(IChangeScene sceneSelector, IInterfaceProvider interfaceProvider)
331 Log.v(TAG, "prepare()");
333 this.changeScene = sceneSelector;
334 this.interfaceProvider = interfaceProvider;
335 this.interfaceInjector = interfaceProvider.getDisplayInjector();
336 this.liveViewControl = interfaceProvider.getLiveViewControl();
337 this.zoomLensControl = interfaceProvider.getZoomLensControl();
338 this.cameraInformation = interfaceProvider.getCameraInformation();
339 this.statusWatcher = interfaceProvider.getCameraStatusWatcher();
347 public void updateConnectionStatus(final ICameraConnection.CameraConnectionStatus connectionStatus)
351 currentConnectionStatus = connectionStatus;
352 runOnUiThread(new Runnable()
357 int id = R.drawable.ic_cloud_off_black_24dp;
358 if (currentConnectionStatus == ICameraConnection.CameraConnectionStatus.CONNECTING)
360 id = R.drawable.ic_cloud_queue_black_24dp;
362 else if (currentConnectionStatus == ICameraConnection.CameraConnectionStatus.CONNECTED)
364 id = R.drawable.ic_cloud_done_black_24dp;
366 if (connectStatus != null)
368 connectStatus.setImageDrawable(ResourcesCompat.getDrawable(getResources(), id, null));
369 connectStatus.invalidate();
371 if (imageView != null)
373 imageView.invalidate();
390 public void updateGridIcon()
394 FragmentActivity activity = getActivity();
395 if (activity != null)
397 if (showGrid == null) {
398 showGrid = activity.findViewById(R.id.show_hide_grid_button);
400 activity.runOnUiThread(new Runnable() {
404 int id = (imageView.isShowGrid()) ? R.drawable.ic_grid_off_black_24dp : R.drawable.ic_grid_on_black_24dp;
405 if (showGrid != null)
407 showGrid.setImageDrawable(ResourcesCompat.getDrawable(getResources(), id, null));
408 showGrid.invalidate();
410 imageView.invalidate();
426 public void changedFocusingMode()
430 if ((cameraInformation == null)||(manualFocus == null))
434 runOnUiThread(new Runnable()
439 if (currentConnectionStatus == ICameraConnection.CameraConnectionStatus.CONNECTED)
441 manualFocus.setSelected(cameraInformation.isManualFocus());
442 manualFocus.invalidate();
454 public void updateLiveViewScale(boolean isChangeScale)
458 Log.v(TAG, "updateLiveViewScale() : " + isChangeScale);
461 liveViewControl.updateMagnifyingLiveViewScale(isChangeScale);
464 float scale = liveViewControl.getMagnifyingLiveViewScale();
465 final String datavalue = "LV: " + scale;
468 float digitalZoom = liveViewControl.getDigitalZoomScale();
469 final String digitalValue = (digitalZoom > 1.0f) ? "D x" + digitalZoom : "";
472 runOnUiThread(new Runnable()
477 changeLiveViewScale.setText(datavalue);
478 changeLiveViewScale.postInvalidate();
480 focalLengthArea.setText(digitalValue);
481 focalLengthArea.postInvalidate();
497 public void onStart()
500 Log.v(TAG, "onStart()");
508 public void onResume()
511 Log.v(TAG, "onResume() Start");
513 AppCompatActivity activity = (AppCompatActivity)getActivity();
514 if (activity != null)
516 ActionBar bar = activity.getSupportActionBar();
519 bar.hide(); // ActionBarの表示を消す
523 // 撮影モードかどうかを確認して、撮影モードではなかったら撮影モードに切り替える
524 ICameraRunMode changeRunModeExecutor = interfaceProvider.getCameraRunMode();
525 if ((changeRunModeExecutor != null)&&(!changeRunModeExecutor.isRecordingMode()))
527 // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。)
528 changeRunModeExecutor.changeRunMode(true, this);
529 Log.v(TAG, "onResume() End");
533 Log.v(TAG, "onResume() End");
536 private void prepareToStart()
540 Context context = getContext();
543 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
545 // グリッド・フォーカスアシストの情報を戻す
546 boolean showGrid = preferences.getBoolean(IPreferencePropertyAccessor.SHOW_GRID_STATUS, false);
547 if ((imageView != null) && (imageView.isShowGrid() != showGrid)) {
548 imageView.toggleShowGridFrame();
549 imageView.postInvalidate();
552 if (currentConnectionStatus == ICameraConnection.CameraConnectionStatus.CONNECTED)
564 public void onCompleted(boolean isRecording)
570 public void onErrorOccurred(boolean isRecording)
580 public void onPause()
583 Log.v(TAG, "onPause() Start");
588 liveViewControl.stopLiveView();
596 Log.v(TAG, "onPause() End");
604 public void updateStatusView(String message)
606 messageValue = message;
607 runOnUiThread(new Runnable()
610 * カメラの状態(ステータステキスト)を更新する
611 * (ステータステキストは、プライベート変数で保持して、書き換える)
616 if (statusArea != null)
618 statusArea.setText(messageValue);
619 statusArea.invalidate();
630 public void startLiveView()
632 Log.v(TAG, " LiveViewFragment::startLiveView() ");
633 ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod();
634 if (liveViewControl == null)
636 if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
638 Log.v(TAG, "startLiveView() : liveViewControl is null.");
644 prepare(changeScene, interfaceProvider);
650 Context context = getContext();
651 boolean isCameraScreen = true;
654 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
655 liveViewControl.changeLiveViewSize(preferences.getString(IPreferencePropertyAccessor.LIVE_VIEW_QUALITY, IPreferencePropertyAccessor.LIVE_VIEW_QUALITY_DEFAULT_VALUE));
656 isCameraScreen = preferences.getBoolean(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW, true);
658 ILiveViewListener lvListener = interfaceProvider.getLiveViewListener();
659 if (lvListener != null)
661 lvListener.setCameraLiveImageView(imageView);
663 liveViewControl.startLiveView(isCameraScreen); // false : ライブビューのみ、 true : カメラ画面をミラー
668 // ここでズームレンズ制御ができるか確認する
669 if ((zoomLensControl != null)&&(zoomLensControl.canZoom()))
671 //Log.v(TAG, "CAN ZOOM LENS");
672 updateZoomlensControl(true);
676 //Log.v(TAG, "NO ZOOM LENS");
677 updateZoomlensControl(false);
691 public void showFavoriteSettingDialog()
695 Log.v(TAG, "showFavoriteSettingDialog()");
696 LoadSaveMyCameraPropertyDialog dialog = LoadSaveMyCameraPropertyDialog.newInstance(new LoadSaveCameraProperties(getActivity(), interfaceProvider.getOlympusInterfaceProvider()));
697 dialog.show(getChildFragmentManager(), "favorite_dialog");
710 private void updateZoomlensControl(final boolean isVisible)
712 runOnUiThread(new Runnable() {
715 // isVisibleがtrueなら、ズームレンズボタンを有効にする
716 FragmentActivity activity = getActivity();
717 if (activity != null)
721 View view1 = activity.findViewById(R.id.zoom_out_button);
724 view1.setVisibility((isVisible) ? View.VISIBLE : View.INVISIBLE);
728 View view2 = activity.findViewById(R.id.zoom_in_button);
731 view2.setVisibility((isVisible) ? View.VISIBLE : View.INVISIBLE);
748 private void startWatchStatus()
750 if (statusWatcher != null)
752 statusWatcher.startStatusWatch(this);
760 private void stopWatchStatus()
762 if (statusWatcher != null)
764 statusWatcher.stopStatusWatch();
772 private void runOnUiThread(Runnable action)
774 FragmentActivity activity = getActivity();
775 if (activity == null)
779 activity.runOnUiThread(action);
783 public void updatedTakeMode(final String mode)
787 final FragmentActivity activity = getActivity();
788 if (activity == null)
792 activity.runOnUiThread(new Runnable()
797 TextView view = activity.findViewById(R.id.takemodeTextView);
813 public void updatedShutterSpeed(final String tv)
817 final String shutterSpeed = tv.replace(".", "/");
818 final FragmentActivity activity = getActivity();
819 if (activity == null)
823 activity.runOnUiThread(new Runnable()
828 TextView view = activity.findViewById(R.id.shutterSpeedTextView);
830 view.setText(shutterSpeed);
844 public void updatedAperture(final String av)
848 final String apertureValue = (av.length() > 1) ? ("F" + av) : "";
849 final FragmentActivity activity = getActivity();
850 if (activity == null)
854 activity.runOnUiThread(new Runnable()
859 TextView view = activity.findViewById(R.id.apertureValueTextView);
862 view.setText(apertureValue);
875 public void updatedExposureCompensation(final String xv)
879 final FragmentActivity activity = getActivity();
880 if (activity == null)
884 activity.runOnUiThread(new Runnable()
889 TextView view = activity.findViewById(R.id.exposureCompensationTextView);
905 public void updatedMeteringMode(final String meteringMode)
909 Log.v(TAG, "updatedMeteringMode() : " + meteringMode);
910 final FragmentActivity activity = getActivity();
911 if ((activity == null)||(meteringMode == null))
916 int iconId = R.drawable.ic_crop_free_black_24dp;
917 switch (meteringMode)
919 case ICameraStatus.AE_STATUS_MULTI:
920 case ICameraStatus.AE_STATUS_ESP:
921 iconId = R.drawable.ic_crop_free_black_24dp;
923 case ICameraStatus.AE_STATUS_CENTER:
924 case ICameraStatus.AE_STATUS_CENTER2:
925 iconId = R.drawable.ic_center_focus_weak_black_24dp;
927 case ICameraStatus.AE_STATUS_SPOT:
928 case ICameraStatus.AE_STATUS_PINPOINT:
929 iconId = R.drawable.ic_filter_center_focus_black_24dp;
932 final int id = iconId;
933 activity.runOnUiThread(new Runnable()
938 ImageView view = activity.findViewById(R.id.aeModeImageView);
941 view.setImageDrawable(ResourcesCompat.getDrawable(getResources(), id, null));
954 public void updatedWBMode(final String wbMode)
956 // とりあえず何もしない... 選択肢は以下 (Ricohの場合...)
957 // auto, multiAuto, daylight, shade, cloud, tungsten, warmWhiteFluorescent, daylightFluorescent, dayWhiteFluorescent, coolWhiteFluorescent, incandescent,manual1, cte, custom
965 public void updateRemainBattery(final int percentage)
969 final FragmentActivity activity = getActivity();
970 if (activity == null)
977 iconId = R.drawable.ic_battery_alert_black_24dp;
979 else if (percentage < 60)
981 iconId = R.drawable.ic_battery_20_black_24dp;
983 else if (percentage < 80)
985 iconId = R.drawable.ic_battery_60_black_24dp;
989 iconId = R.drawable.ic_battery_full_black_24dp;
991 final int id = iconId;
992 activity.runOnUiThread(new Runnable()
997 ImageView view = activity.findViewById(R.id.currentBatteryImageView);
1000 Drawable target = ResourcesCompat.getDrawable(getResources(), id, null);
1003 if (percentage <= 20)
1005 DrawableCompat.setTint(target, Color.RED);
1006 } else if (percentage <= 40)
1008 DrawableCompat.setTint(target, Color.YELLOW);
1010 view.setImageDrawable(target);
1019 e.printStackTrace();
1024 public void updateFocusedStatus(final boolean focused, final boolean focusLocked)
1026 final FragmentActivity activity = getActivity();
1029 if (activity != null)
1031 activity.runOnUiThread(new Runnable() {
1036 ImageView view = activity.findViewById(R.id.focusUnlockImageView);
1038 Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_center_focus_strong_black_24dp, null);
1040 DrawableCompat.setTint(icon, Color.GREEN);
1041 view.setImageDrawable(icon);
1044 Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_focus_free_black_24dp, null);
1046 int color = Color.BLACK;
1050 DrawableCompat.setTint(icon, color);
1051 view.setImageDrawable(icon);
1058 e.printStackTrace();
1066 e.printStackTrace();
1071 public void updateIsoSensitivity(String sv)
1073 Log.v(TAG, "updateIsoSensitivity : " + sv);
1077 public void updateWarning(String warning)
1079 Log.v(TAG, "updateWarning : " + warning);
1083 public void updateStorageStatus(String status)
1085 Log.v(TAG, "updateStorageStatus : " + status);
1089 public void updateToggleButton(boolean isOn)
1093 FragmentActivity activity = getActivity();
1094 if (activity != null)
1096 ImageView imageView = activity.findViewById(R.id.button_toggle_aeaf);
1099 imageView.setImageDrawable(ContextCompat.getDrawable(activity,R.drawable.ic_radio_button_checked_black_24dp));
1103 imageView.setImageDrawable(ContextCompat.getDrawable(activity,R.drawable.ic_radio_button_unchecked_black_24dp));
1105 imageView.invalidate();
1110 e.printStackTrace();
1115 public void updateLcdOnOff(boolean isOn)
1117 Log.v(TAG, "updateLcdOnOff() " + isOn);
1121 public void updateAFLlever(boolean isCaf)
1125 FragmentActivity activity = getActivity();
1126 if (activity != null)
1128 TextView textView = activity.findViewById(R.id.lever_ael_caf);
1131 textView.setText(getString(R.string.label_c_af));
1135 textView.setText(getString(R.string.label_aelock));
1137 textView.invalidate();
1142 e.printStackTrace();
1146 public boolean handleKeyDown(int keyCode, KeyEvent event)
1148 return (onClickTouchListener.onKey(null, keyCode, event));