123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package de.tudarmstadt.informatik.hostage.model;
- import android.content.Context;
- import android.content.SharedPreferences;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.drawable.BitmapDrawable;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.os.Parcel;
- import android.os.Parcelable;
- import java.io.Serializable;
- import java.util.HashMap;
- import java.util.Map;
- import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
- /**
- * @author Alexander Brakowski
- * @created 14.01.14 18:04
- */
- public class Profile implements Serializable {
- public String mText;
- public String mLabel;
- public int mId;
- public boolean mActivated;
- transient public Bitmap mIcon;
- public int mIconId;
- public String mIconName;
- public String mIconPath;
- public boolean mIsBackVisible = false;
- public boolean mEditable = false;
- public HashMap<String, Boolean> mActiveProtocols = new HashMap<String, Boolean>();
- public Profile(){
- this.mEditable = true;
- this.mActivated = false;
- this.mId = -1;
- }
- public Profile(int id, String label, String text, Bitmap icon, boolean editable){
- this.mId = id;
- this.mLabel = text;
- this.mText = label;
- this.mActivated = false;
- this.mIcon = icon;
- this.mEditable = editable;
- }
- public Profile(int id, String label, String text, int icon, boolean editable){
- this(id, text, label, BitmapFactory.decodeResource(MainActivity.context.getResources(), icon), editable);
- mIconId = icon;
- mIconName = MainActivity.context.getResources().getResourceName(icon);
- }
- public Profile(int id, String label, String text, String iconPath, boolean editable){
- this.mId = id;
- this.mLabel = label;
- this.mText = text;
- this.mActivated = false;
- this.mIconPath = iconPath;
- this.mEditable = editable;
- }
- public Profile(Parcel in) {
- mText = in.readString();
- mLabel = in.readString();
- mId = in.readInt();
- mActivated = in.readInt() == 1;
- mIconId = in.readInt();
- mIconName = in.readString();
- mIconPath = in.readString();
- mEditable = in.readInt() == 1;
- mActiveProtocols = (HashMap<String,Boolean>) in.readSerializable();
- }
- public void setIcon(Bitmap bitmap){
- this.mIcon = bitmap;
- }
- public void setIcon(int icon){
- this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), icon);
- }
- public Bitmap getIconBitmap(){
- if(this.mIcon != null) return mIcon;
- if(this.mIconId != 0){
- this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), mIconId);
- return this.mIcon;
- }
- if(!this.mIconName.isEmpty()){
- this.mIconId = MainActivity.context.getResources().getIdentifier(this.mIconName,
- "drawable", "de.tudarmstadt.informatik.hostage");
- this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), this.mIconId);
- return this.mIcon;
- }
- if(this.mIconPath != null){
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inPreferredConfig = Bitmap.Config.ARGB_8888;
- Bitmap bitmap = BitmapFactory.decodeFile(this.mIconPath, options);
- return bitmap;
- }
- return null;
- }
- public boolean isProtocolActive(String protocol){
- if(!mActiveProtocols.containsKey(protocol)) return false;
- return mActiveProtocols.get(protocol);
- }
- public Drawable getIconDrawable(){
- return new BitmapDrawable(MainActivity.context.getResources(), getIconBitmap());
- }
- public boolean isEditable(){
- return this.mEditable;
- }
- public Profile cloneProfile(){
- return new Profile(mId, mLabel, mText, mIcon, mEditable);
- }
- /**
- * Describe the kinds of special objects contained in this Parcelable's
- * marshalled representation.
- *
- * @return a bitmask indicating the set of special object types marshalled
- * by the Parcelable.
- */
- //@Override
- public int describeContents() {
- return 0;
- }
- /**
- * Flatten this object in to a Parcel.
- *
- * @param dest The Parcel in which the object should be written.
- * @param flags Additional flags about how the object should be written.
- * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
- */
- //@Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeString(this.mText);
- dest.writeString(this.mLabel);
- dest.writeInt(this.mId);
- dest.writeInt(this.mActivated ? 1 : 0);
- dest.writeInt(this.mIconId);
- dest.writeString(this.mIconName);
- dest.writeString(this.mIconPath);
- dest.writeInt(this.mEditable ? 1 : 0);
- dest.writeSerializable(mActiveProtocols);
- }
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- public Profile createFromParcel(Parcel in) {
- return new Profile(in);
- }
- public Profile[] newArray(int size) {
- return new Profile[size];
- }
- };
- }
|