Skip to content

Commit

Permalink
show focus position
Browse files Browse the repository at this point in the history
force manual focus
version bump
  • Loading branch information
obs committed Jul 12, 2016
1 parent a32ac08 commit 34fb6be
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 4 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
applicationId "com.obsidium.bettermanual"
minSdkVersion 10
targetSdkVersion 10
versionCode 2
versionName "1.1"
versionCode 3
versionName "1.2"
}
buildTypes {
release {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

public class Logger {
public static File getFile() {
return new File(Environment.getExternalStorageDirectory(), "BMANUAL/LOG.TXT");
return new File(Environment.getExternalStorageDirectory(), "BMANUAL.TXT");
}

protected static void log(String msg) {
Expand Down
68 changes: 68 additions & 0 deletions app/src/main/java/com/obsidium/bettermanual/FocusScaleView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package com.obsidium.bettermanual;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class FocusScaleView extends View
{
private static final int BORDER_WIDTH = 2;

private final Paint m_paint = new Paint();

private int m_max;
private int m_min;
private int m_cur;

public FocusScaleView(Context context, AttributeSet attrs)
{
super(context, attrs);
m_paint.setAntiAlias(false);
m_paint.setStrokeWidth(BORDER_WIDTH);
}

public void setMaxPosition(int max)
{
if (max > 0)
m_max = max;
invalidate();
}

public void setMinPosition(int min)
{
if (min < m_max)
m_min = min;
invalidate();
}

public void setCurPosition(int pos)
{
if (pos >= 0 && pos <= m_max)
m_cur = pos;
invalidate();
}

public void onDraw(Canvas canvas)
{
canvas.drawARGB(0, 0, 0, 0);
if (m_max != 0)
{
final float w = getWidth();
final float h = getHeight();
// Draw frame
m_paint.setARGB(100, 255, 255, 255);
m_paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(0, 0, w, h, m_paint);
// Draw bar
final float w2 = w - BORDER_WIDTH * 2;
if (m_cur > m_min)
m_paint.setARGB(150, 0, 255, 0);
else
m_paint.setARGB(150, 255, 0, 0);
m_paint.setStyle(Paint.Style.FILL);
canvas.drawRect(BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH + (float)m_cur / (float)m_max * w2, h - BORDER_WIDTH, m_paint);
}
}
}
43 changes: 42 additions & 1 deletion app/src/main/java/com/obsidium/bettermanual/ManualActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public class ManualActivity extends BaseActivity implements SurfaceHolder.Callba
private ImageView m_ivBracket;
private GridView m_vGrid;
private TextView m_tvHint;
private FocusScaleView m_focusScaleView;
private View m_lFocusScale;

// Bracketing
private int m_bracketStep; // in 1/3 stops
Expand Down Expand Up @@ -100,6 +102,15 @@ else if (m_bracketActive)
}
};

private final Runnable m_hideFocusScaleRunnable = new Runnable()
{
@Override
public void run()
{
m_lFocusScale.setVisibility(View.GONE);
}
};

// ISO
private int m_curIso;
private List<Integer> m_supportedIsos;
Expand Down Expand Up @@ -227,6 +238,15 @@ protected void onCreate(Bundle savedInstanceState)
m_tvHint = (TextView)findViewById(R.id.tvHint);
m_tvHint.setVisibility(View.GONE);

m_focusScaleView = (FocusScaleView)findViewById(R.id.vFocusScale);
m_lFocusScale = findViewById(R.id.lFocusScale);
m_lFocusScale.setVisibility(View.GONE);

//noinspection ResourceType
((ImageView)findViewById(R.id.ivFocusRight)).setImageResource(SonyDrawables.p_16_dd_parts_rec_focuscontrol_far);
//noinspection ResourceType
((ImageView)findViewById(R.id.ivFocusLeft)).setImageResource(SonyDrawables.p_16_dd_parts_rec_focuscontrol_near);

setDialMode(DialMode.shutter);

m_prefs = new Preferences(this);
Expand Down Expand Up @@ -756,6 +776,8 @@ private void loadDefaults()
{
final Camera.Parameters params = m_camera.createEmptyParameters();
final CameraEx.ParametersModifier modifier = m_camera.createParametersModifier(params);
// Focus mode
params.setFocusMode(CameraEx.ParametersModifier.FOCUS_MODE_MANUAL);
// Scene mode
final String sceneMode = m_prefs.getSceneMode();
params.setSceneMode(sceneMode);
Expand Down Expand Up @@ -1025,6 +1047,22 @@ public void onInfoUpdated(boolean b, Pair coords, CameraEx cameraEx)
}
});

m_camera.setFocusDriveListener(new CameraEx.FocusDriveListener()
{
@Override
public void onChanged(CameraEx.FocusPosition focusPosition, CameraEx cameraEx)
{
if (m_curPreviewMagnification == 0)
{
m_lFocusScale.setVisibility(View.VISIBLE);
m_focusScaleView.setMaxPosition(focusPosition.maxPosition);
m_focusScaleView.setCurPosition(focusPosition.currentPosition);
m_handler.removeCallbacks(m_hideFocusScaleRunnable);
m_handler.postDelayed(m_hideFocusScaleRunnable, 2000);
}
}
});

loadDefaults();
updateDriveModeImage();
updateSceneModeImage();
Expand Down Expand Up @@ -1856,11 +1894,14 @@ public boolean onKeyDown(int keyCode, KeyEvent event)
// zoom lever tele
m_zoomLeverPressed = true;
if (m_curPreviewMagnification == 0)
{
m_curPreviewMagnification = 100;
m_lFocusScale.setVisibility(View.GONE);
}
else
m_curPreviewMagnification = 200;
m_camera.setPreviewMagnification(m_curPreviewMagnification, m_curPreviewMagnificationPos);
return false;
return true;
}
else if (scanCode == 611 && !m_zoomLeverPressed)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@ public class SonyDrawables
public static final int p_16_dd_parts_contshot = 0x01080fe9;

public static final int p_16_dd_parts_43_shoot_icon_setting_drivemode_invalid = 0x01080bc6;

public static final int p_16_dd_parts_rec_focuscontrol_near = 0x01080ddd;
public static final int p_16_dd_parts_rec_focuscontrol_far = 0x010807f9;
}
35 changes: 35 additions & 0 deletions app/src/main/res/layout/activity_manual.xml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,41 @@
android:layout_above="@+id/lInfoBottom"
android:layout_marginRight="2dp"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:layout_marginBottom="10dp"
android:layout_centerHorizontal="true"
android:id="@+id/lFocusScale"
android:layout_above="@+id/lInfoBottom">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:id="@+id/ivFocusLeft"/>

<com.obsidium.bettermanual.FocusScaleView
android:layout_width="156dp"
android:layout_height="20dp"
android:id="@+id/vFocusScale"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
tools:background="#32722f"
/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ivFocusRight"
android:layout_marginLeft="4dp"
/>

</LinearLayout>

<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand Down

0 comments on commit 34fb6be

Please sign in to comment.