diff options
author | Yuli Huang <yuli@google.com> | 2012-05-23 16:06:32 +0800 |
---|---|---|
committer | Yuli Huang <yuli@google.com> | 2012-05-23 16:09:47 +0800 |
commit | e11a51883b91f5fd439c99562e85ff4374d61467 (patch) | |
tree | 9bdebba07d05e1634da611fb9c576c487ae4694b /src | |
parent | 883920dce45c1794a8aa6a696563df1bbafeaf45 (diff) | |
download | android_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.tar.gz android_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.tar.bz2 android_packages_apps_Snap-e11a51883b91f5fd439c99562e85ff4374d61467.zip |
Back should progress through Gallery and return Home for widget intents.
bug:6384492
Change-Id: I7ffb824568e400ff5724a29c1908c34a1e10235c
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/gallery3d/app/Gallery.java | 3 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/PhotoPage.java | 9 | ||||
-rw-r--r-- | src/com/android/gallery3d/gadget/WidgetClickHandler.java | 14 |
3 files changed, 21 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java index dd30d7e98..bdd4a0bc7 100644 --- a/src/com/android/gallery3d/app/Gallery.java +++ b/src/com/android/gallery3d/app/Gallery.java @@ -198,6 +198,9 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi data.putString(PhotoPage.KEY_MEDIA_SET_PATH, albumPath.toString()); } data.putString(PhotoPage.KEY_MEDIA_ITEM_PATH, itemPath.toString()); + if (intent.getBooleanExtra(PhotoPage.KEY_TREAT_BACK_AS_UP, false)) { + data.putBoolean(PhotoPage.KEY_TREAT_BACK_AS_UP, true); + } // Displays the filename as title, reading the filename from the interface: // {@link android.provider.OpenableColumns#DISPLAY_NAME}. diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index 2132d068e..36ccc6741 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -91,6 +91,7 @@ public class PhotoPage extends ActivityState implements public static final String KEY_INDEX_HINT = "index-hint"; public static final String KEY_OPEN_ANIMATION_RECT = "open-animation-rect"; public static final String KEY_APP_BRIDGE = "app-bridge"; + public static final String KEY_TREAT_BACK_AS_UP = "treat-back-as-up"; public static final String KEY_RETURN_INDEX_HINT = "return-index-hint"; @@ -127,6 +128,7 @@ public class PhotoPage extends ActivityState implements private SnailAlbum mScreenNailSet; private OrientationManager mOrientationManager; private boolean mHasActivityResult; + private boolean mTreatBackAsUp; private NfcAdapter mNfcAdapter; @@ -180,6 +182,7 @@ public class PhotoPage extends ActivityState implements mOriginalSetPathString = mSetPathString; mNfcAdapter = NfcAdapter.getDefaultAdapter(mActivity.getAndroidContext()); Path itemPath = Path.fromString(data.getString(KEY_MEDIA_ITEM_PATH)); + mTreatBackAsUp = data.getBoolean(KEY_TREAT_BACK_AS_UP, false); if (mSetPathString != null) { mAppBridge = (AppBridge) data.getParcelable(KEY_APP_BRIDGE); @@ -439,7 +442,11 @@ public class PhotoPage extends ActivityState implements } else if (mAppBridge == null || !switchWithCaptureAnimation(-1)) { // We are leaving this page. Set the result now. setResult(); - super.onBackPressed(); + if (mTreatBackAsUp) { + onUpPressed(); + } else { + super.onBackPressed(); + } } } diff --git a/src/com/android/gallery3d/gadget/WidgetClickHandler.java b/src/com/android/gallery3d/gadget/WidgetClickHandler.java index 36575e412..35f9bec36 100644 --- a/src/com/android/gallery3d/gadget/WidgetClickHandler.java +++ b/src/com/android/gallery3d/gadget/WidgetClickHandler.java @@ -26,6 +26,7 @@ import android.widget.Toast; import com.android.gallery3d.R; import com.android.gallery3d.app.Gallery; +import com.android.gallery3d.app.PhotoPage; public class WidgetClickHandler extends Activity { private static final String TAG = "PhotoAppWidgetClickHandler"; @@ -46,14 +47,19 @@ public class WidgetClickHandler extends Activity { @Override protected void onCreate(Bundle savedState) { super.onCreate(savedState); - Intent intent = getIntent(); - if (isValidDataUri(intent.getData())) { - startActivity(new Intent(Intent.ACTION_VIEW, intent.getData())); + Uri uri = getIntent().getData(); + Intent intent; + if (isValidDataUri(uri)) { + intent = new Intent(Intent.ACTION_VIEW, uri); + intent.putExtra(PhotoPage.KEY_TREAT_BACK_AS_UP, true); } else { Toast.makeText(this, R.string.no_such_item, Toast.LENGTH_LONG).show(); - startActivity(new Intent(this, Gallery.class)); + intent = new Intent(this, Gallery.class); } + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | + Intent.FLAG_ACTIVITY_TASK_ON_HOME); + startActivity(intent); finish(); } } |