blob: 37210625864931abe2382593ab92daacf05b56d8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
package com.android.camera;
import android.graphics.Point;
import android.view.View;
import android.view.ViewGroup;
import com.android.camera.ui.CameraControls;
import com.android.camera.ui.ModuleSwitcher;
import com.android.camera.util.CameraUtil;
import org.codeaurora.snapcam.R;
/** we can start accumulating common code between UI classes here
* toward an eventual unification - WF */
public abstract class BaseUI {
protected final CameraControls mCameraControls;
protected final View mPreviewCover;
protected final CameraActivity mActivity;
protected final ViewGroup mRootView;
protected int mTopMargin = 0;
protected int mBottomMargin = 0;
protected int mScreenRatio = CameraUtil.RATIO_UNKNOWN;
public BaseUI(CameraActivity activity, ViewGroup rootView, int layout) {
mActivity = activity;
mRootView = rootView;
mActivity.getLayoutInflater().inflate(layout, mRootView, true);
mCameraControls = (CameraControls) mRootView.findViewById(R.id.camera_controls);
mPreviewCover = mRootView.findViewById(R.id.preview_cover);
Point size = new Point();
mActivity.getWindowManager().getDefaultDisplay().getRealSize(size);
mScreenRatio = CameraUtil.determineRatio(size.x, size.y);
calculateMargins(size);
mCameraControls.setMargins(mTopMargin, mBottomMargin);
}
private void calculateMargins(Point size) {
int l = size.x > size.y ? size.x : size.y;
int tm = mActivity.getResources().getDimensionPixelSize(R.dimen.preview_top_margin);
int bm = mActivity.getResources().getDimensionPixelSize(R.dimen.preview_bottom_margin);
mTopMargin = l / 4 * tm / (tm + bm);
mBottomMargin = l / 4 - mTopMargin;
}
public void showPreviewCover() {
if (mPreviewCover != null && mPreviewCover.getVisibility() != View.VISIBLE) {
mPreviewCover.setVisibility(View.VISIBLE);
}
}
public void hidePreviewCover() {
if (mPreviewCover != null && mPreviewCover.getVisibility() != View.GONE) {
mPreviewCover.setVisibility(View.GONE);
}
}
public void setPreviewCoverAlpha(float alpha) {
if (mPreviewCover != null) {
mPreviewCover.setAlpha(alpha);
}
}
public boolean isPreviewCoverVisible() {
return mPreviewCover != null && mPreviewCover.getVisibility() == View.VISIBLE;
}
public void hideUI() {
hideUI(false);
}
protected void hideUI(boolean toBlack) {
if (mCameraControls != null) {
mCameraControls.hideUI(toBlack);
}
}
protected void showUI() {
if (mCameraControls != null) {
mCameraControls.showUI();
}
}
public boolean arePreviewControlsVisible() {
return mCameraControls != null && mCameraControls.arePreviewControlsVisible();
}
public void hideSwitcher() {
if (mCameraControls != null) {
mCameraControls.hideSwitcher();
}
}
public void showSwitcher() {
if (mCameraControls != null) {
mCameraControls.showSwitcher();
}
}
public void removeControlView(View v) {
if (mCameraControls != null) {
mCameraControls.removeFromViewList(v);
}
}
public void setSwitcherIndex() {
int module = ModuleSwitcher.PHOTO_MODULE_INDEX;
if (this instanceof WideAnglePanoramaUI) {
module = ModuleSwitcher.WIDE_ANGLE_PANO_MODULE_INDEX;
} else if (this instanceof VideoUI) {
module = ModuleSwitcher.VIDEO_MODULE_INDEX;
} else if (this instanceof CaptureUI) {
module = ModuleSwitcher.CAPTURE_MODULE_INDEX;
}
mCameraControls.setModuleIndex(module);
}
}
|