Project: adg-android
/*
 * Copyright (C) 2012 Thierry-Dimitri Roy <[email protected]
 * 
 * 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.analysedesgeeks.android; 
 
import roboguice.RoboGuice; 
import roboguice.activity.event.OnActivityResultEvent; 
import roboguice.activity.event.OnConfigurationChangedEvent; 
import roboguice.activity.event.OnContentChangedEvent; 
import roboguice.activity.event.OnCreateEvent; 
import roboguice.activity.event.OnDestroyEvent; 
import roboguice.activity.event.OnNewIntentEvent; 
import roboguice.activity.event.OnPauseEvent; 
import roboguice.activity.event.OnRestartEvent; 
import roboguice.activity.event.OnResumeEvent; 
import roboguice.activity.event.OnStartEvent; 
import roboguice.activity.event.OnStopEvent; 
import roboguice.event.EventManager; 
import roboguice.inject.ContentViewListener; 
import roboguice.inject.RoboInjector; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.os.Bundle; 
 
import com.actionbarsherlock.app.SherlockFragmentActivity; 
import com.google.inject.Inject; 
 
/**
 * Pasted from roboguice.activity.SherlockRoboFragmentActivity 
 * But extends SherlockFragmentActivity 
 *  
 * @author troy 
 *  
 */
 
public class SherlockRoboFragmentActivity extends SherlockFragmentActivity { 
 
 protected EventManager eventManager; 
 
 @Inject 
 ContentViewListener ignored; // BUG find a better place to put this 
 
 @Override 
 public void onConfigurationChanged(final Configuration newConfig) { 
  final Configuration currentConfig = getResources().getConfiguration(); 
  super.onConfigurationChanged(newConfig); 
  eventManager.fire(new OnConfigurationChangedEvent(currentConfig, newConfig)); 
 
 
 @Override 
 public void onContentChanged() { 
  super.onContentChanged(); 
  RoboGuice.getInjector(this).injectViewMembers(this); 
  eventManager.fire(new OnContentChangedEvent()); 
 
 
 @Override 
 protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
  super.onActivityResult(requestCode, resultCode, data); 
  eventManager.fire(new OnActivityResultEvent(requestCode, resultCode, data)); 
 
 
 @Override 
 protected void onCreate(final Bundle savedInstanceState) { 
  final RoboInjector injector = RoboGuice.getInjector(this); 
  eventManager = injector.getInstance(EventManager.class); 
  injector.injectMembersWithoutViews(this); 
  super.onCreate(savedInstanceState); 
  eventManager.fire(new OnCreateEvent(savedInstanceState)); 
 
 
 @Override 
 protected void onDestroy() { 
  try { 
   eventManager.fire(new OnDestroyEvent()); 
  finally { 
   try { 
    RoboGuice.destroyInjector(this); 
   finally { 
    super.onDestroy(); 
   
  
 
 
 @Override 
 protected void onNewIntent(final Intent intent) { 
  super.onNewIntent(intent); 
  eventManager.fire(new OnNewIntentEvent()); 
 
 
 @Override 
 protected void onPause() { 
  super.onPause(); 
  eventManager.fire(new OnPauseEvent()); 
 
 
 @Override 
 protected void onRestart() { 
  super.onRestart(); 
  eventManager.fire(new OnRestartEvent()); 
 
 
 @Override 
 protected void onResume() { 
  super.onResume(); 
  eventManager.fire(new OnResumeEvent()); 
 
 
 @Override 
 protected void onStart() { 
  super.onStart(); 
  eventManager.fire(new OnStartEvent()); 
 
 
 @Override 
 protected void onStop() { 
  try { 
   eventManager.fire(new OnStopEvent()); 
  finally { 
   super.onStop(); 
  
 
 
}