diff options
author | nicolasroard <nicolasroard@google.com> | 2013-07-15 11:24:36 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-07-30 11:28:59 -0700 |
commit | 13ae2608e04998f0d13bc3f58cda5237bdde0b7d (patch) | |
tree | a1bbb351775e1dfe26e8feb60aae123e3b84e51a /src/com/android/gallery3d/filtershow/FilterShowActivity.java | |
parent | 7d1433ac9191fa7b7c79a0187d4d0f30c16f84d9 (diff) | |
download | android_packages_apps_Snap-13ae2608e04998f0d13bc3f58cda5237bdde0b7d.tar.gz android_packages_apps_Snap-13ae2608e04998f0d13bc3f58cda5237bdde0b7d.tar.bz2 android_packages_apps_Snap-13ae2608e04998f0d13bc3f58cda5237bdde0b7d.zip |
Add user presets saving/loading
Change-Id: I85c5dd0df1e9264a01c8d7a6d44602e87799890c
Diffstat (limited to 'src/com/android/gallery3d/filtershow/FilterShowActivity.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/FilterShowActivity.java | 79 |
1 files changed, 78 insertions, 1 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 8bbdd0c32..b06010f61 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -36,6 +36,7 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; +import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; @@ -59,6 +60,9 @@ import com.android.gallery3d.R; import com.android.gallery3d.app.PhotoPage; import com.android.gallery3d.data.LocalAlbum; import com.android.gallery3d.filtershow.editors.EditorGrad; +import com.android.gallery3d.filtershow.data.FilterStackSource; +import com.android.gallery3d.filtershow.data.UserPresetsManager; +import com.android.gallery3d.filtershow.filters.FilterUserPresetRepresentation; import com.android.gallery3d.filtershow.pipeline.CachingPipeline; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.category.Action; @@ -88,6 +92,8 @@ import com.android.gallery3d.filtershow.imageshow.MasterImage; import com.android.gallery3d.filtershow.imageshow.Spline; import com.android.gallery3d.filtershow.pipeline.ImagePreset; import com.android.gallery3d.filtershow.pipeline.ProcessingService; +import com.android.gallery3d.filtershow.presets.PresetManagementDialog; +import com.android.gallery3d.filtershow.presets.UserPresetsAdapter; import com.android.gallery3d.filtershow.provider.SharedImageProvider; import com.android.gallery3d.filtershow.state.StateAdapter; import com.android.gallery3d.filtershow.tools.SaveImage; @@ -143,6 +149,8 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL private Uri mSelectedImageUri = null; + private UserPresetsManager mUserPresetsManager = null; + private UserPresetsAdapter mUserPresetsAdapter = null; private CategoryAdapter mCategoryLooksAdapter = null; private CategoryAdapter mCategoryBordersAdapter = null; private CategoryAdapter mCategoryGeometryAdapter = null; @@ -208,6 +216,9 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL private void setupPipeline() { doBindService(); ImageFilter.setActivityForMemoryToasts(this); + mUserPresetsManager = new UserPresetsManager(this); + mUserPresetsAdapter = new UserPresetsAdapter(this); + mCategoryLooksAdapter = new CategoryAdapter(this); } public void updateUIAfterServiceStarted() { @@ -321,6 +332,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL public void fillCategories() { fillLooks(); + loadUserPresets(); fillBorders(); fillTools(); fillEffects(); @@ -439,6 +451,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL } } + public UserPresetsAdapter getUserPresetsAdapter() { + return mUserPresetsAdapter; + } + public CategoryAdapter getCategoryLooksAdapter() { return mCategoryLooksAdapter; } @@ -662,6 +678,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL if (mLoadBitmapTask != null) { mLoadBitmapTask.cancel(false); } + mUserPresetsManager.close(); doUnbindService(); super.onDestroy(); } @@ -829,10 +846,70 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL saveImage(); return true; } + case R.id.manageUserPresets: { + manageUserPresets(); + return true; + } } return false; } + private void manageUserPresets() { + DialogFragment dialog = new PresetManagementDialog(); + dialog.show(getSupportFragmentManager(), "NoticeDialogFragment"); + } + + public void updateUserPresetsFromAdapter(UserPresetsAdapter adapter) { + ArrayList<FilterUserPresetRepresentation> representations = + adapter.getDeletedRepresentations(); + for (FilterUserPresetRepresentation representation : representations) { + deletePreset(representation.getId()); + } + ArrayList<FilterUserPresetRepresentation> changedRepresentations = + adapter.getChangedRepresentations(); + for (FilterUserPresetRepresentation representation : changedRepresentations) { + updatePreset(representation); + } + adapter.clearDeletedRepresentations(); + adapter.clearChangedRepresentations(); + loadUserPresets(); + } + + public void loadUserPresets() { + mUserPresetsManager.load(); + } + + public void updateUserPresetsFromManager() { + ArrayList<FilterUserPresetRepresentation> presets = mUserPresetsManager.getRepresentations(); + if (presets == null) { + return; + } + if (mCategoryLooksAdapter != null) { + fillLooks(); + } + mUserPresetsAdapter.clear(); + for (int i = 0; i < presets.size(); i++) { + FilterUserPresetRepresentation representation = presets.get(i); + mCategoryLooksAdapter.add( + new Action(this, representation, Action.FULL_VIEW)); + mUserPresetsAdapter.add(new Action(this, representation, Action.FULL_VIEW)); + } + mCategoryLooksAdapter.notifyDataSetInvalidated(); + + } + + public void saveCurrentImagePreset() { + mUserPresetsManager.save(MasterImage.getImage().getPreset()); + } + + private void deletePreset(int id) { + mUserPresetsManager.delete(id); + } + + private void updatePreset(FilterUserPresetRepresentation representation) { + mUserPresetsManager.update(representation); + } + public void enableSave(boolean enable) { if (mSaveButton != null) { mSaveButton.setEnabled(enable); @@ -843,7 +920,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL FiltersManager filtersManager = FiltersManager.getManager(); ArrayList<FilterRepresentation> filtersRepresentations = filtersManager.getLooks(); - mCategoryLooksAdapter = new CategoryAdapter(this); + mCategoryLooksAdapter.clear(); int verticalItemHeight = (int) getResources().getDimension(R.dimen.action_item_height); mCategoryLooksAdapter.setItemHeight(verticalItemHeight); for (FilterRepresentation representation : filtersRepresentations) { |