diff options
author | Yuli Huang <yuli@google.com> | 2011-09-12 21:30:40 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-12 21:30:40 -0700 |
commit | 0513a9e07c161a2abec9a3598935cd31c7824ecc (patch) | |
tree | db47512bcf3e0d3fdc561b38344e48151eae1ab0 /src/com/android/gallery3d | |
parent | 46027feb3b117b935f7af430946b8d9271784fd3 (diff) | |
parent | efd1db011b7c85ffd590ec80f535d95070d4371e (diff) | |
download | android_packages_apps_Snap-0513a9e07c161a2abec9a3598935cd31c7824ecc.tar.gz android_packages_apps_Snap-0513a9e07c161a2abec9a3598935cd31c7824ecc.tar.bz2 android_packages_apps_Snap-0513a9e07c161a2abec9a3598935cd31c7824ecc.zip |
Merge "Fix b/4643148: Make PhotoEditor integrated into Gallery."
Diffstat (limited to 'src/com/android/gallery3d')
-rw-r--r-- | src/com/android/gallery3d/photoeditor/SpinnerProgressDialog.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/photoeditor/SpinnerProgressDialog.java b/src/com/android/gallery3d/photoeditor/SpinnerProgressDialog.java new file mode 100644 index 000000000..9a3d8499a --- /dev/null +++ b/src/com/android/gallery3d/photoeditor/SpinnerProgressDialog.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2010 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.android.gallery3d.photoeditor; + +import android.app.Dialog; +import android.view.MotionEvent; +import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; +import android.widget.ProgressBar; + +import com.android.gallery3d.R; + +/** + * Spinner model progress dialog that disables all tools for user interaction after it shows up and + * and re-enables them after it dismisses. + */ +public class SpinnerProgressDialog extends Dialog { + + private final ViewGroup tools; + + public static SpinnerProgressDialog show(ViewGroup tools) { + SpinnerProgressDialog dialog = new SpinnerProgressDialog(tools); + dialog.setCancelable(false); + dialog.show(); + return dialog; + } + + private SpinnerProgressDialog(ViewGroup tools) { + super(tools.getContext(), R.style.SpinnerProgressDialog); + + addContentView(new ProgressBar(tools.getContext()), new LayoutParams( + LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); + + this.tools = tools; + enableTools(false); + } + + @Override + public void dismiss() { + super.dismiss(); + + enableTools(true); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + super.onTouchEvent(event); + + // Pass touch events to tools for killing idle even when the progress dialog is shown. + return tools.dispatchTouchEvent(event); + } + + private void enableTools(boolean enabled) { + for (int i = 0; i < tools.getChildCount(); i++) { + tools.getChildAt(i).setEnabled(enabled); + } + } +} |