Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45ee707f authored by Michael Kolb's avatar Michael Kolb
Browse files

Adjust camera menu further

Change-Id: I7e062608a7ee8e16932209640bd50b1864336a40
parent 2538c992
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -75,13 +75,13 @@
    <dimen name="onscreen_indicators_height_xlarge">36dp</dimen>
    <dimen name="onscreen_exposure_indicator_text_size_xlarge">18dp</dimen>
    <dimen name="pie_radius_start">80dp</dimen>
    <dimen name="pie_radius_increment">60dp</dimen>
    <dimen name="pie_radius_increment">48dp</dimen>
    <dimen name="pie_touch_slop">12dp</dimen>
    <dimen name="pie_touch_offset">40dp</dimen>
    <dimen name="pie_touch_offset">32dp</dimen>
    <dimen name="pie_view_size">48dp</dimen>
    <dimen name="pie_arc_offset">48dp</dimen>
    <dimen name="pie_item_radius">206dp</dimen>
    <dimen name="pie_arc_radius">362dp</dimen>
    <dimen name="pie_item_radius">370dp</dimen>
    <dimen name="pie_arc_radius">214dp</dimen>
    <dimen name="focus_radius_offset">8dp</dimen>
    <dimen name="focus_inner_offset">24dp</dimen>
    <dimen name="focus_outer_stroke">3dp</dimen>
+16 −9
Original line number Diff line number Diff line
@@ -34,6 +34,15 @@ public class PhotoMenu extends PieController
        TimerSettingPopup.Listener,
        ListPrefSettingPopup.Listener {
    private static String TAG = "CAM_photomenu";

    private static final int POS_HDR = 0;
    private static final int POS_EXP = 1;
    private static final int POS_MORE = 2;
    private static final int POS_FLASH = 3;
    private static final int POS_SWITCH = 4;
    private static final int POS_WB = 1;
    private static final int POS_SET = 2;

    private final String mSettingOff;

    private PhotoUI mUI;
@@ -53,20 +62,19 @@ public class PhotoMenu extends PieController
        super.initialize(group);
        mPopup = null;
        mSecondPopup = null;
        float sweep = (float) (SWEEP * Math.PI);
        PieItem item = null;
        // flash
        if (group.findPreference(CameraSettings.KEY_FLASH_MODE) != null) {
            item = makeItem(CameraSettings.KEY_FLASH_MODE, CENTER - sweep, sweep);
            item = makeItem(CameraSettings.KEY_FLASH_MODE, POS_FLASH, 5);
            mRenderer.addItem(item);
        }
        // exposure compensation
        item = makeItem(CameraSettings.KEY_EXPOSURE, CENTER + sweep, sweep);
        item = makeItem(CameraSettings.KEY_EXPOSURE, POS_EXP, 5);
        mRenderer.addItem(item);
        // camera switcher
        if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) {
            item = makeItem(R.drawable.ic_switch_photo_facing_holo_light);
            item.setFixedSlice(CENTER - 2 * sweep, sweep);
            item.setPosition(POS_SWITCH, 5);
            item.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(PieItem item) {
@@ -88,7 +96,7 @@ public class PhotoMenu extends PieController
        // hdr
        if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) {
            item = makeItem(R.drawable.ic_hdr);
            item.setFixedSlice(CENTER + 2 * sweep, sweep);
            item.setPosition(POS_HDR, 5);
            item.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(PieItem item) {
@@ -108,11 +116,10 @@ public class PhotoMenu extends PieController

        // more settings
        PieItem more = makeItem(R.drawable.ic_settings_holo_light);
        more.setFixedSlice(CENTER, sweep);
        more.setPosition(POS_MORE, 5);
        mRenderer.addItem(more);
        // white balance
        item = makeItem(CameraSettings.KEY_WHITE_BALANCE,
                CENTER + sweep, sweep);
        item = makeItem(CameraSettings.KEY_WHITE_BALANCE, POS_WB, 5);
        more.addItem(item);
        // settings popup
        mOtherKeys = new String[] {
@@ -124,7 +131,7 @@ public class PhotoMenu extends PieController
                CameraSettings.KEY_TIMER_SOUND_EFFECTS,
                };
        item = makeItem(R.drawable.ic_settings_holo_light);
        item.setFixedSlice(CENTER, sweep);
        item.setPosition(POS_SET, 5);
        item.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(PieItem item) {
+5 −16
Original line number Diff line number Diff line
@@ -37,10 +37,6 @@ public class PieController {
    protected static final int MODE_PHOTO = 0;
    protected static final int MODE_VIDEO = 1;

    protected static float CENTER = (float) Math.PI / 2;
    protected static final float SWEEP = 0.06f;


    protected CameraActivity mActivity;
    protected PreferenceGroup mPreferenceGroup;
    protected OnPreferenceChangedListener mListener;
@@ -88,7 +84,7 @@ public class PieController {
        return new PieItem(drawable, 0);
    }

    public PieItem makeItem(String prefKey, float center, float sweep) {
    public PieItem makeItem(String prefKey, int position, int count) {
        final IconListPreference pref =
                (IconListPreference) mPreferenceGroup.findPreference(prefKey);
        if (pref == null) return null;
@@ -103,8 +99,7 @@ public class PieController {
            resid = pref.getSingleIcon();
        }
        PieItem item = makeItem(resid);
        // use center and sweep to determine layout
        item.setFixedSlice(center, sweep);
        item.setPosition(position, count);
        mPreferences.add(pref);
        mPreferenceMap.put(pref, item);
        int nOfEntries = pref.getEntries().length;
@@ -116,7 +111,7 @@ public class PieController {
                } else {
                    inner = makeItem(pref.getEntries()[i]);
                }
                layoutInner(inner, i, nOfEntries);
                inner.setPosition(i, nOfEntries);
                item.addItem(inner);
                final int index = i;
                inner.setOnClickListener(new OnClickListener() {
@@ -137,14 +132,8 @@ public class PieController {
        return item;
    }

    protected void layoutInner(PieItem item, int ix, int n) {
        float sweep = (float) (SWEEP * Math.PI);//FLOAT_PI_DIVIDED_BY_TWO / Math.max(n, 5);
        float start = CENTER + (n - 1) * (sweep / 2f);
        item.setFixedSlice(start - ix * sweep, sweep);
    }

    public void addItem(String prefKey, float center, float sweep) {
        PieItem item = makeItem(prefKey, center, sweep);
    public void addItem(String prefKey, int position, int count) {
        PieItem item = makeItem(prefKey, position, count);
        mRenderer.addItem(item);
    }

+11 −6
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ public class VideoMenu extends PieController
        TimeIntervalPopup.Listener {

    private static String TAG = "CAM_VideoMenu";
    private static final int POS_WB = 1;
    private static final int POS_SET = 2;
    private static final int POS_FLASH = 3;
    private static final int POS_SWITCH = 4;

    private VideoUI mUI;
    private String[] mOtherKeys;
@@ -53,13 +57,14 @@ public class VideoMenu extends PieController
        super.initialize(group);
        mPopup = null;
        mPopupStatus = POPUP_NONE;
        float sweep = (float)(SWEEP * Math.PI);

        addItem(CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE, CENTER - sweep, sweep);
        addItem(CameraSettings.KEY_WHITE_BALANCE, CENTER + sweep, sweep);
        PieItem item = makeItem(CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE, POS_FLASH, 5);
        mRenderer.addItem(item);
        item = makeItem(CameraSettings.KEY_WHITE_BALANCE, POS_WB, 5);
        mRenderer.addItem(item);
        // camera switcher
        PieItem item = makeItem(R.drawable.ic_switch_video_facing_holo_light);
        item.setFixedSlice(CENTER - 2 * sweep, sweep);
        item = makeItem(R.drawable.ic_switch_video_facing_holo_light);
        item.setPosition(POS_SWITCH, 5);
        item.setOnClickListener(new OnClickListener() {

            @Override
@@ -84,7 +89,7 @@ public class VideoMenu extends PieController
                CameraSettings.KEY_RECORD_LOCATION
        };
        item = makeItem(R.drawable.ic_settings_holo_light);
        item.setFixedSlice(CENTER, sweep);
        item.setPosition(POS_SET, 5);
        item.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(PieItem item) {
+20 −53
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.camera.ui;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;

import java.util.ArrayList;
@@ -36,12 +35,9 @@ public class PieItem {

    private Drawable mDrawable;
    private int level;
    private float mCenter;
    private float start;
    private float sweep;
    private float animate;
    private int inner;
    private int outer;
    private int mPosition;
    private int mCount;

    private boolean mSelected;
    private boolean mEnabled;
    private List<PieItem> mItems;
@@ -61,9 +57,19 @@ public class PieItem {
            setAlpha(1f);
        }
        mEnabled = true;
        setAnimationAngle(getAnimationAngle());
        start = -1;
        mCenter = -1;
    }

    public void setPosition(int pos, int count) {
        mPosition = pos;
        mCount = count;
    }

    public int getPosition() {
        return mPosition;
    }

    public int getCount() {
        return mCount;
    }

    public boolean hasItems() {
@@ -85,6 +91,10 @@ public class PieItem {
        mItems = null;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public void setPath(Path p) {
        mPath = p;
    }
@@ -102,14 +112,6 @@ public class PieItem {
        mDrawable.setAlpha((int) (255 * alpha));
    }

    public void setAnimationAngle(float a) {
        animate = a;
    }

    public float getAnimationAngle() {
        return animate;
    }

    public void setEnabled(boolean enabled) {
        mEnabled = enabled;
        if (mChangeAlphaWhenDisabled) {
@@ -137,41 +139,6 @@ public class PieItem {
        return level;
    }

    public void setGeometry(float st, float sw, int inside, int outside) {
        start = st;
        sweep = sw;
        inner = inside;
        outer = outside;
    }

    public void setFixedSlice(float center, float sweep) {
        mCenter = center;
        this.sweep = sweep;
    }

    public float getCenter() {
        return mCenter;
    }

    public float getStart() {
        return start;
    }

    public float getStartAngle() {
        return start + animate;
    }

    public float getSweep() {
        return sweep;
    }

    public int getInnerRadius() {
        return inner;
    }

    public int getOuterRadius() {
        return outer;
    }

    public void setOnClickListener(OnClickListener listener) {
        mOnClickListener = listener;
Loading