/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.samsung.spensdk.example.tools;
import com.samsung.spensdk.example.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
public class PreferencesOfSAMMOption extends PreferenceActivity implements OnSharedPreferenceChangeListener {
//==============================
// Preference Key Constants
//==============================
public static final String PREF_KEY_LOAD_CANVAS_SIZE = "samm_load_canvas_size";
public static final String PREF_KEY_LOAD_CANVAS_HALIGN = "samm_load_canvas_halign";
public static final String PREF_KEY_LOAD_CANVAS_VALIGN = "samm_load_canvas_valign";
public static final String PREF_KEY_SAVE_CROP_IMAGE_HORIZONTAL = "samm_save_crop_image_horizontal";
public static final String PREF_KEY_SAVE_CROP_IMAGE_VERTICAL = "samm_save_crop_image_vertical";
public static final String PREF_KEY_SAVE_CROP_CONTENTS = "samm_save_crop_contents";
public static final String PREF_KEY_SAVE_IMAGESIZE = "samm_save_image_size";
public static final String PREF_KEY_SAVE_IMAGEQUALITY = "samm_save_image_quality";
public static final String PREF_KEY_SAVE_ONLYFOREGROUNDIMAGE = "samm_save_only_foreground_image";
public static final String PREF_KEY_SAVE_CREATENEWIMAGEFILE = "samm_save_create_new_image_file";
public static final String PREF_KEY_SAVE_ENCODEFOREGROUNDIMAGE = "samm_encode_foreground_image";
public static final String PREF_KEY_SAVE_ENCODETHUMBNAILIMAGE = "samm_encode_thumbnail_image";
private ListPreference mListPreferenceLoadCanvasSize;
private ListPreference mListPreferenceLoadCanvasHAlign;
private ListPreference mListPreferenceLoadCanvasVAlign;
private CheckBoxPreference mCheckPreferenceSaveCropImageHorizontal;
private CheckBoxPreference mCheckPreferenceSaveCropImageVertical;
private CheckBoxPreference mCheckPreferenceSaveCropContents;
private ListPreference mListPreferenceSaveImageSize;
private ListPreference mListPreferenceSaveImageQuality;
private CheckBoxPreference mCheckPreferenceSaveOnlyForegroundImage;
private CheckBoxPreference mCheckPreferenceSaveCreateNewImageFile;
private CheckBoxPreference mCheckPreferenceEncodeForegroundImage;
private CheckBoxPreference mCheckPreferenceEncodeThumbnailImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.sammoptionpreferences);
mListPreferenceLoadCanvasSize = (ListPreference)getPreferenceScreen().findPreference(PREF_KEY_LOAD_CANVAS_SIZE);
mListPreferenceLoadCanvasHAlign = (ListPreference)getPreferenceScreen().findPreference(PREF_KEY_LOAD_CANVAS_HALIGN);
mListPreferenceLoadCanvasVAlign = (ListPreference)getPreferenceScreen().findPreference(PREF_KEY_LOAD_CANVAS_VALIGN);
mCheckPreferenceSaveCropImageHorizontal = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_CROP_IMAGE_HORIZONTAL);
mCheckPreferenceSaveCropImageVertical = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_CROP_IMAGE_VERTICAL);
mCheckPreferenceSaveCropContents = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_CROP_CONTENTS);
mListPreferenceSaveImageSize = (ListPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_IMAGESIZE);
mListPreferenceSaveImageQuality = (ListPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_IMAGEQUALITY);
mCheckPreferenceSaveOnlyForegroundImage = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_ONLYFOREGROUNDIMAGE);
mCheckPreferenceSaveCreateNewImageFile = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_CREATENEWIMAGEFILE);
mCheckPreferenceEncodeForegroundImage = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_ENCODEFOREGROUNDIMAGE);
mCheckPreferenceEncodeThumbnailImage = (CheckBoxPreference)getPreferenceScreen().findPreference(PREF_KEY_SAVE_ENCODETHUMBNAILIMAGE);
updatePreferences();
}
public void updatePreferences()
{
updatePreference(PREF_KEY_LOAD_CANVAS_SIZE);
updatePreference(PREF_KEY_LOAD_CANVAS_HALIGN);
updatePreference(PREF_KEY_LOAD_CANVAS_VALIGN);
updatePreference(PREF_KEY_SAVE_CROP_IMAGE_HORIZONTAL);
updatePreference(PREF_KEY_SAVE_CROP_IMAGE_VERTICAL);
updatePreference(PREF_KEY_SAVE_CROP_CONTENTS);
updatePreference(PREF_KEY_SAVE_IMAGESIZE);
updatePreference(PREF_KEY_SAVE_IMAGEQUALITY);
updatePreference(PREF_KEY_SAVE_ONLYFOREGROUNDIMAGE);
updatePreference(PREF_KEY_SAVE_CREATENEWIMAGEFILE);
updatePreference(PREF_KEY_SAVE_ENCODEFOREGROUNDIMAGE);
updatePreference(PREF_KEY_SAVE_ENCODETHUMBNAILIMAGE);
}
public void updatePreference(String key)
{
// Preference change
String str;
if (key.equals(PREF_KEY_LOAD_CANVAS_SIZE)) {
str = mListPreferenceLoadCanvasSize.getValue();
if(str==null)
{
mListPreferenceLoadCanvasSize.setValueIndex(1);
str = mListPreferenceLoadCanvasSize.getValue();
}
// Show Selected Text
int nSelectIndex = Integer.parseInt(str);
CharSequence[] strings = getResources().getTextArray(R.array.load_canvas_size);
mListPreferenceLoadCanvasSize.setSummary(strings[nSelectIndex]);
}
else if (key.equals(PREF_KEY_LOAD_CANVAS_HALIGN)) {
str = mListPreferenceLoadCanvasHAlign.getValue();
if(str==null)
{
mListPreferenceLoadCanvasHAlign.setValueIndex(0);
str = mListPreferenceLoadCanvasHAlign.getValue();
}
// Show Selected Text
int nSelectIndex = Integer.parseInt(str);
CharSequence[] strings = getResources().getTextArray(R.array.load_canvas_halign);
mListPreferenceLoadCanvasHAlign.setSummary(strings[nSelectIndex]);
}
else if (key.equals(PREF_KEY_LOAD_CANVAS_VALIGN)) {
str = mListPreferenceLoadCanvasVAlign.getValue();
if(str==null)
{
mListPreferenceLoadCanvasVAlign.setValueIndex(0);
str = mListPreferenceLoadCanvasVAlign.getValue();
}
// Show Selected Text
int nSelectIndex = Integer.parseInt(str);
CharSequence[] strings = getResources().getTextArray(R.array.load_canvas_valign);
mListPreferenceLoadCanvasVAlign.setSummary(strings[nSelectIndex]);
}
else if (key.equals(PREF_KEY_SAVE_CROP_IMAGE_HORIZONTAL)) {
if(!mCheckPreferenceSaveCropImageHorizontal.isChecked())
mCheckPreferenceSaveCropImageHorizontal.setSummaryOff(getResources().getString(R.string.save_image_horizontal_crop_off));
else
mCheckPreferenceSaveCropImageHorizontal.setSummaryOn(getResources().getString(R.string.save_image_horizontal_crop_on));
}
else if (key.equals(PREF_KEY_SAVE_CROP_IMAGE_VERTICAL)) {
if(!mCheckPreferenceSaveCropImageVertical.isChecked())
mCheckPreferenceSaveCropImageVertical.setSummaryOff(getResources().getString(R.string.save_image_vertical_crop_off));
else
mCheckPreferenceSaveCropImageVertical.setSummaryOn(getResources().getString(R.string.save_image_vertical_crop_on));
}
else if (key.equals(PREF_KEY_SAVE_CROP_CONTENTS)) {
if(!mCheckPreferenceSaveCropContents.isChecked())
mCheckPreferenceSaveCropContents.setSummaryOff(getResources().getString(R.string.adjust_saving_contents_by_cropping_off));
else
mCheckPreferenceSaveCropContents.setSummaryOn(getResources().getString(R.string.adjust_saving_contents_by_cropping_on));
}
else if (key.equals(PREF_KEY_SAVE_IMAGESIZE)) {
str = mListPreferenceSaveImageSize.getValue();
if(str==null)
{
mListPreferenceSaveImageSize.setValueIndex(0);
str = mListPreferenceSaveImageSize.getValue();
}
// Show Selected Text
int nSelectIndex = Integer.parseInt(str);
CharSequence[] strings = getResources().getTextArray(R.array.save_image_size);
mListPreferenceSaveImageSize.setSummary(strings[nSelectIndex]);
}
else if (key.equals(PREF_KEY_SAVE_IMAGEQUALITY)) {
str = mListPreferenceSaveImageQuality.getValue();
if(str==null)
{
mListPreferenceSaveImageQuality.setValueIndex(0);
str = mListPreferenceSaveImageQuality.getValue();
}
// Show Selected Text
int nSelectIndex = Integer.parseInt(str);
CharSequence[] strings = getResources().getTextArray(R.array.save_image_quality);
mListPreferenceSaveImageQuality.setSummary(strings[nSelectIndex]);
}
else if (key.equals(PREF_KEY_SAVE_ONLYFOREGROUNDIMAGE)) {
if(!mCheckPreferenceSaveOnlyForegroundImage.isChecked())
mCheckPreferenceSaveOnlyForegroundImage.setSummaryOff(getResources().getString(R.string.save_only_foreground_image_off));
else
mCheckPreferenceSaveOnlyForegroundImage.setSummaryOn(getResources().getString(R.string.save_only_foreground_image_on));
}
else if (key.equals(PREF_KEY_SAVE_CREATENEWIMAGEFILE)) {
if(!mCheckPreferenceSaveCreateNewImageFile.isChecked())
mCheckPreferenceSaveCreateNewImageFile.setSummaryOff(getResources().getString(R.string.create_new_image_off));
else
mCheckPreferenceSaveCreateNewImageFile.setSummaryOn(getResources().getString(R.string.create_new_image_on));
}
else if (key.equals(PREF_KEY_SAVE_ENCODEFOREGROUNDIMAGE)) {
if(!mCheckPreferenceEncodeForegroundImage.isChecked())
mCheckPreferenceEncodeForegroundImage.setSummaryOff(getResources().getString(R.string.encode_foreground_image_off));
else
mCheckPreferenceEncodeForegroundImage.setSummaryOn(getResources().getString(R.string.encode_foreground_image_on));
}
else if (key.equals(PREF_KEY_SAVE_ENCODETHUMBNAILIMAGE)) {
if(!mCheckPreferenceEncodeThumbnailImage.isChecked())
mCheckPreferenceEncodeThumbnailImage.setSummaryOff(getResources().getString(R.string.encode_thumbnail_image_off));
else
mCheckPreferenceEncodeThumbnailImage.setSummaryOn(getResources().getString(R.string.encode_thumbnail_image_on));
}
}
// Return Load Canvas Size converting option
public static final int getPreferenceLoadCanvasSize(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
String strLoadCanvasSizePref = prefs.getString(PREF_KEY_LOAD_CANVAS_SIZE, "0"); // default
return Integer.parseInt(strLoadCanvasSizePref);
}
// Return Load Canvas Align converting option
public static final int getPreferenceLoadCanvasHAlign(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
String strLoadCanvasHAlignPref = prefs.getString(PREF_KEY_LOAD_CANVAS_HALIGN, "1"); // default
return Integer.parseInt(strLoadCanvasHAlignPref);
}
// Return Load Canvas Align converting option
public static final int getPreferenceLoadCanvasVAlign(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
String strLoadCanvasVAlignPref = prefs.getString(PREF_KEY_LOAD_CANVAS_VALIGN, "0"); // default
return Integer.parseInt(strLoadCanvasVAlignPref);
}
public static final boolean getPreferenceSaveImageHorizontalCrop(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_CROP_IMAGE_HORIZONTAL, false); // default
}
public static final boolean getPreferenceSaveImageVerticalCrop(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_CROP_IMAGE_VERTICAL, false); // default
}
public static final boolean getPreferenceSaveContentsCrop(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_CROP_CONTENTS, true); // default
}
// Return saved image size.
public static final int getPreferenceSaveImageSize(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
String strSaveImageSizePref = prefs.getString(PREF_KEY_SAVE_IMAGESIZE, "1"); // default
return Integer.parseInt(strSaveImageSizePref);
// int nIndex = Integer.parseInt(strSaveImageSizePref);
// int nSaveImageSize[] = {0, 1, 2, 3};
// return nSaveImageSize[nIndex];
}
// Return saved image quality.
public static final int getPreferenceSaveImageQuality(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
String strSaveImageQualityPref = prefs.getString(PREF_KEY_SAVE_IMAGEQUALITY, "1"); // default
return Integer.parseInt(strSaveImageQualityPref);
// int nIndex = Integer.parseInt(strSaveImageQualityPref);
// int nSaveImageQuality[] = {0, 1, 2};
// return nSaveImageQuality[nIndex];
}
// When image create, including background or not.
public static final boolean getPreferenceSaveOnlyForegroundImage(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_ONLYFOREGROUNDIMAGE, false); // default
}
// When save SAMM data, create new image file.
public static final boolean getPreferenceSaveCreateNewImageFile(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_CREATENEWIMAGEFILE, true); // default
}
// Encode foreground image
public static final boolean getPreferenceEncodeForegroundImageFile(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_ENCODEFOREGROUNDIMAGE, true); // default
}
// Encode thumbnail image
public static final boolean getPreferenceEncodeThumbnailImageFile(Context context)
{
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean(PREF_KEY_SAVE_ENCODETHUMBNAILIMAGE, true); // default
}
@Override
protected void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
updatePreference(key);
}
}