172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/*
272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 Esmertec AG.
372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project *
572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License.
772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at
872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project *
972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project *
1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and
1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License.
1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */
1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.layout;
1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
2037880013315d8b7abefd9081b2c36b060083d6faTom Taylorimport android.content.Context;
2172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.util.Log;
2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
2372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class HVGALayoutParameters implements LayoutParameters {
2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    private static final String TAG = "HVGALayoutParameters";
2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    private static final boolean DEBUG = false;
26150c4179995cc0a75f934ef194372f9295957ca2Joe Onorato    private static final boolean LOCAL_LOGV = false;
2772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
2872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    private int mType = -1;
2972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
3037880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mImageHeightLandscape;
3137880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mTextHeightLandscape;
3237880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mImageHeightPortrait;
3337880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mTextHeightPortrait;
3437880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mMaxHeight;
3537880013315d8b7abefd9081b2c36b060083d6faTom Taylor    private static int mMaxWidth;
3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
3737880013315d8b7abefd9081b2c36b060083d6faTom Taylor    public HVGALayoutParameters(Context context, int type) {
3872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        if ((type != HVGA_LANDSCAPE) && (type != HVGA_PORTRAIT)) {
3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project            throw new IllegalArgumentException(
4072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project                    "Bad layout type detected: " + type);
4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        }
4272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
4372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        if (LOCAL_LOGV) {
4472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project            Log.v(TAG, "HVGALayoutParameters.<init>(" + type + ").");
4572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        }
4672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        mType = type;
4737880013315d8b7abefd9081b2c36b060083d6faTom Taylor
4837880013315d8b7abefd9081b2c36b060083d6faTom Taylor        float scale = context.getResources().getDisplayMetrics().density;
4937880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mMaxWidth = (int) (context.getResources().getConfiguration().screenWidthDp * scale + 0.5f);
5037880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mMaxHeight =
5137880013315d8b7abefd9081b2c36b060083d6faTom Taylor            (int) (context.getResources().getConfiguration().screenHeightDp * scale + 0.5f);
5237880013315d8b7abefd9081b2c36b060083d6faTom Taylor
5337880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mImageHeightLandscape = (int) (mMaxHeight * .90f);
5437880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mTextHeightLandscape = (int) (mMaxHeight * .10f);
5537880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mImageHeightPortrait = (int) (mMaxWidth * .90f);
5637880013315d8b7abefd9081b2c36b060083d6faTom Taylor        mTextHeightPortrait = (int) (mMaxWidth * .10f);
5737880013315d8b7abefd9081b2c36b060083d6faTom Taylor
5837880013315d8b7abefd9081b2c36b060083d6faTom Taylor        if (LOCAL_LOGV) {
5937880013315d8b7abefd9081b2c36b060083d6faTom Taylor            Log.v(TAG, "HVGALayoutParameters mMaxWidth: " + mMaxWidth +
6037880013315d8b7abefd9081b2c36b060083d6faTom Taylor                    " mMaxHeight: " + mMaxHeight +
6137880013315d8b7abefd9081b2c36b060083d6faTom Taylor                    " mImageHeightLandscape: " + mImageHeightLandscape +
6237880013315d8b7abefd9081b2c36b060083d6faTom Taylor                    " mTextHeightLandscape: " + mTextHeightLandscape +
6337880013315d8b7abefd9081b2c36b060083d6faTom Taylor                    " mImageHeightPortrait: " + mImageHeightPortrait +
6437880013315d8b7abefd9081b2c36b060083d6faTom Taylor                    " mTextHeightPortrait: " + mTextHeightPortrait);
6537880013315d8b7abefd9081b2c36b060083d6faTom Taylor        }
6637880013315d8b7abefd9081b2c36b060083d6faTom Taylor
6772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public int getWidth() {
7037880013315d8b7abefd9081b2c36b060083d6faTom Taylor        return mType == HVGA_LANDSCAPE ? mMaxWidth
7137880013315d8b7abefd9081b2c36b060083d6faTom Taylor                                       : mMaxHeight;
7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public int getHeight() {
7537880013315d8b7abefd9081b2c36b060083d6faTom Taylor        return mType == HVGA_LANDSCAPE ? mMaxHeight
7637880013315d8b7abefd9081b2c36b060083d6faTom Taylor                                       : mMaxWidth;
7772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public int getImageHeight() {
8037880013315d8b7abefd9081b2c36b060083d6faTom Taylor        return mType == HVGA_LANDSCAPE ? mImageHeightLandscape
8137880013315d8b7abefd9081b2c36b060083d6faTom Taylor                                       : mImageHeightPortrait;
8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
8472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public int getTextHeight() {
8537880013315d8b7abefd9081b2c36b060083d6faTom Taylor        return mType == HVGA_LANDSCAPE ? mTextHeightLandscape
8637880013315d8b7abefd9081b2c36b060083d6faTom Taylor                                       : mTextHeightPortrait;
8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
8872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
8972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public int getType() {
9072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        return mType;
9172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
9272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project
9372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    public String getTypeDescription() {
9472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project        return mType == HVGA_LANDSCAPE ? "HVGA-L" : "HVGA-P";
9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project    }
9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project}
97