/** * プロパティを保存する * * @param key プロパティのキー値 * @param value プロパティの値 */ public void setProperty(String key, Object value) { Property prop = propMap.get(key); // protobuf if (value instanceof GeneratedMessage) { value = ((com.google.protobuf.GeneratedMessage) value).toByteArray(); } else if (value instanceof Enum) { value = ((Enum) value).name(); } else if (value instanceof Bitmap) { try { Bitmap bmp = (Bitmap) value; ByteArrayOutputStream os = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, os); value = os.toByteArray(); } catch (Exception e) { value = null; } } else if (value instanceof Boolean) { // trueならば"1"、falseならば"0"としてしまう value = Boolean.TRUE.equals(value) ? "1" : "0"; } if (value instanceof byte[]) { prop.value = StringUtil.toString((byte[]) value); } else { prop.value = value.toString(); } prop.modified = true; }
protected BasePropertiesDatabase(Context context, String dbName) { this.context = context.getApplicationContext(); if (!StringUtil.isEmpty(dbName)) { // 対象のDBが指定されている this.databaseFile = context.getDatabasePath(dbName); } }
/** * base64エンコードオブジェクトを取得する * * @param key * @return */ public byte[] getByteArrayProperty(String key) { try { return StringUtil.toByteArray(getStringProperty(key)); } catch (Exception e) { return null; } }