michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: package org.mozilla.gecko; michael@0: michael@0: import org.mozilla.gecko.util.ActivityResultHandler; michael@0: import org.mozilla.gecko.util.ActivityResultHandlerMap; michael@0: michael@0: import android.app.Activity; michael@0: import android.content.Intent; michael@0: michael@0: public class ActivityHandlerHelper { michael@0: private static final String LOGTAG = "GeckoActivityHandlerHelper"; michael@0: private static final ActivityResultHandlerMap mActivityResultHandlerMap = new ActivityResultHandlerMap(); michael@0: michael@0: private static int makeRequestCode(ActivityResultHandler aHandler) { michael@0: return mActivityResultHandlerMap.put(aHandler); michael@0: } michael@0: michael@0: public static void startIntent(Intent intent, ActivityResultHandler activityResultHandler) { michael@0: startIntentForActivity(GeckoAppShell.getGeckoInterface().getActivity(), intent, activityResultHandler); michael@0: } michael@0: michael@0: public static void startIntentForActivity(Activity activity, Intent intent, ActivityResultHandler activityResultHandler) { michael@0: activity.startActivityForResult(intent, mActivityResultHandlerMap.put(activityResultHandler)); michael@0: } michael@0: michael@0: michael@0: public static boolean handleActivityResult(int requestCode, int resultCode, Intent data) { michael@0: ActivityResultHandler handler = mActivityResultHandlerMap.getAndRemove(requestCode); michael@0: if (handler != null) { michael@0: handler.onActivityResult(resultCode, data); michael@0: return true; michael@0: } michael@0: return false; michael@0: } michael@0: }