Profile.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package de.tudarmstadt.informatik.hostage.model;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.graphics.drawable.BitmapDrawable;
  7. import android.graphics.drawable.Drawable;
  8. import android.os.Bundle;
  9. import android.os.Parcel;
  10. import android.os.Parcelable;
  11. import java.io.Serializable;
  12. import java.util.HashMap;
  13. import java.util.LinkedList;
  14. import java.util.List;
  15. import java.util.Map;
  16. import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
  17. /**
  18. * @author Alexander Brakowski
  19. * @created 14.01.14 18:04
  20. */
  21. public class Profile implements Serializable {
  22. public String mText;
  23. public String mLabel;
  24. public int mId;
  25. public boolean mActivated;
  26. transient public Bitmap mIcon;
  27. transient public int mIconId;
  28. public String mIconName;
  29. public String mIconPath;
  30. public boolean mIsBackVisible = false;
  31. public boolean mEditable = false;
  32. public boolean mIsRandom = false;
  33. public HashMap<String, Boolean> mActiveProtocols = new HashMap<String, Boolean>();
  34. public Profile(){
  35. this.mEditable = true;
  36. this.mActivated = false;
  37. this.mId = -1;
  38. }
  39. public Profile(int id, String label, String text, Bitmap icon, boolean editable){
  40. this.mId = id;
  41. this.mLabel = text;
  42. this.mText = label;
  43. this.mActivated = false;
  44. this.mIcon = icon;
  45. this.mEditable = editable;
  46. }
  47. public Profile(int id, String label, String text, int icon, boolean editable){
  48. this(id, text, label, BitmapFactory.decodeResource(MainActivity.context.getResources(), icon), editable);
  49. mIconId = icon;
  50. mIconName = MainActivity.context.getResources().getResourceName(icon);
  51. }
  52. public Profile(int id, String label, String text, String iconPath, boolean editable){
  53. this.mId = id;
  54. this.mLabel = label;
  55. this.mText = text;
  56. this.mActivated = false;
  57. this.mIconPath = iconPath;
  58. this.mEditable = editable;
  59. }
  60. public Profile(Parcel in) {
  61. mText = in.readString();
  62. mLabel = in.readString();
  63. mId = in.readInt();
  64. mActivated = in.readInt() == 1;
  65. mIconId = in.readInt();
  66. mIconName = in.readString();
  67. mIconPath = in.readString();
  68. mEditable = in.readInt() == 1;
  69. mActiveProtocols = (HashMap<String,Boolean>) in.readSerializable();
  70. }
  71. public void setIcon(Bitmap bitmap){
  72. this.mIcon = bitmap;
  73. }
  74. public void setIcon(int icon){
  75. this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), icon);
  76. }
  77. public Bitmap getIconBitmap(){
  78. if(this.mIcon != null) return mIcon;
  79. if(this.mIconId != 0){
  80. this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), mIconId);
  81. return this.mIcon;
  82. }
  83. if(!this.mIconName.isEmpty()){
  84. this.mIconId = MainActivity.context.getResources().getIdentifier(this.mIconName,
  85. "drawable", "de.tudarmstadt.informatik.hostage");
  86. this.mIcon = BitmapFactory.decodeResource(MainActivity.context.getResources(), this.mIconId);
  87. return this.mIcon;
  88. }
  89. if(this.mIconPath != null){
  90. BitmapFactory.Options options = new BitmapFactory.Options();
  91. options.inPreferredConfig = Bitmap.Config.ARGB_8888;
  92. Bitmap bitmap = BitmapFactory.decodeFile(this.mIconPath, options);
  93. return bitmap;
  94. }
  95. return null;
  96. }
  97. public boolean isProtocolActive(String protocol){
  98. if(!mActiveProtocols.containsKey(protocol)) return false;
  99. return mActiveProtocols.get(protocol);
  100. }
  101. public List<String> getActiveProtocols(){
  102. List<String> list = new LinkedList<String>();
  103. for(Map.Entry<String, Boolean> entry: this.mActiveProtocols.entrySet()){
  104. if(entry.getValue()){
  105. list.add(entry.getKey());
  106. }
  107. }
  108. return list;
  109. }
  110. public Drawable getIconDrawable(){
  111. return new BitmapDrawable(MainActivity.context.getResources(), getIconBitmap());
  112. }
  113. public boolean isEditable(){
  114. return this.mEditable;
  115. }
  116. public Profile cloneProfile(){
  117. return new Profile(mId, mLabel, mText, mIcon, mEditable);
  118. }
  119. }