diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2016-02-23 10:57:33 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2016-02-23 10:57:33 +0100 |
commit | c1d268a5ecbb49a56561bd66c9b2967e282b9071 (patch) | |
tree | 64a403b504b77e5a97239f50f6410b15902f7ce5 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget | |
parent | 0784a0b4301b9bd15a80d135bdece19f44bc4258 (diff) | |
parent | 19967e235004abdf74e65e1388b9bc4816cfa2dd (diff) | |
download | open-keychain-c1d268a5ecbb49a56561bd66c9b2967e282b9071.tar.gz open-keychain-c1d268a5ecbb49a56561bd66c9b2967e282b9071.tar.bz2 open-keychain-c1d268a5ecbb49a56561bd66c9b2967e282b9071.zip |
Merge branch 'unyoungwax-qr-code-fullscreen'
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AspectRatioImageView.java | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AspectRatioImageView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AspectRatioImageView.java deleted file mode 100644 index 0df5ba5e8..000000000 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/AspectRatioImageView.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 2015 Dominik Schürmann <dominik@dominikschuermann.de> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -package org.sufficientlysecure.keychain.ui.widget; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; -import android.widget.ImageView; - -import org.sufficientlysecure.keychain.R; - -/** - * Maintains an aspect ratio based on either width or height. Disabled by default. - * - * from https://gist.github.com/JakeWharton/2856179 - */ -public class AspectRatioImageView extends ImageView { - // NOTE: These must be kept in sync with the AspectRatioImageView attributes in attrs.xml. - public static final int MEASUREMENT_WIDTH = 0; - public static final int MEASUREMENT_HEIGHT = 1; - - private static final float DEFAULT_ASPECT_RATIO = 1f; - private static final boolean DEFAULT_ASPECT_RATIO_ENABLED = false; - private static final int DEFAULT_DOMINANT_MEASUREMENT = MEASUREMENT_WIDTH; - - private float aspectRatio; - private boolean aspectRatioEnabled; - private int dominantMeasurement; - - public AspectRatioImageView(Context context) { - this(context, null); - } - - public AspectRatioImageView(Context context, AttributeSet attrs) { - super(context, attrs); - - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AspectRatioImageView); - aspectRatio = a.getFloat(R.styleable.AspectRatioImageView_aspectRatio, DEFAULT_ASPECT_RATIO); - aspectRatioEnabled = a.getBoolean(R.styleable.AspectRatioImageView_aspectRatioEnabled, - DEFAULT_ASPECT_RATIO_ENABLED); - dominantMeasurement = a.getInt(R.styleable.AspectRatioImageView_dominantMeasurement, - DEFAULT_DOMINANT_MEASUREMENT); - a.recycle(); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (!aspectRatioEnabled) return; - - int newWidth; - int newHeight; - switch (dominantMeasurement) { - case MEASUREMENT_WIDTH: - newWidth = getMeasuredWidth(); - newHeight = (int) (newWidth * aspectRatio); - break; - - case MEASUREMENT_HEIGHT: - newHeight = getMeasuredHeight(); - newWidth = (int) (newHeight * aspectRatio); - break; - - default: - throw new IllegalStateException("Unknown measurement with ID " + dominantMeasurement); - } - - setMeasuredDimension(newWidth, newHeight); - } - - /** - * Get the aspect ratio for this image view. - */ - public float getAspectRatio() { - return aspectRatio; - } - - /** - * Set the aspect ratio for this image view. This will update the view instantly. - */ - public void setAspectRatio(float aspectRatio) { - this.aspectRatio = aspectRatio; - if (aspectRatioEnabled) { - requestLayout(); - } - } - - /** - * Get whether or not forcing the aspect ratio is enabled. - */ - public boolean getAspectRatioEnabled() { - return aspectRatioEnabled; - } - - /** - * set whether or not forcing the aspect ratio is enabled. This will re-layout the view. - */ - public void setAspectRatioEnabled(boolean aspectRatioEnabled) { - this.aspectRatioEnabled = aspectRatioEnabled; - requestLayout(); - } - - /** - * Get the dominant measurement for the aspect ratio. - */ - public int getDominantMeasurement() { - return dominantMeasurement; - } - - /** - * Set the dominant measurement for the aspect ratio. - * - * @see #MEASUREMENT_WIDTH - * @see #MEASUREMENT_HEIGHT - */ - public void setDominantMeasurement(int dominantMeasurement) { - if (dominantMeasurement != MEASUREMENT_HEIGHT && dominantMeasurement != MEASUREMENT_WIDTH) { - throw new IllegalArgumentException("Invalid measurement type."); - } - this.dominantMeasurement = dominantMeasurement; - requestLayout(); - } -}
\ No newline at end of file |