Android Open Source - PhoneProfiles_Eclipse Phone Call Broadcast Receiver






From Project

Back to project page PhoneProfiles_Eclipse.

License

The source code is released under:

Apache License

If you think the Android project PhoneProfiles_Eclipse listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package sk.henrichg.phoneprofiles;
//from  w w  w.j av a 2s.  c  om
import java.util.Date;

import android.content.Context;
import android.media.AudioManager;

public class PhoneCallBroadcastReceiver extends PhoneCallReceiver {

  private static AudioManager audioManager = null;
  
  private static int savedMode = AudioManager.MODE_NORMAL;
  private static boolean savedSpeakerphone = false;
  private static boolean speakerphoneSelected = false;
  
  protected boolean onStartReceive()
  {
    if (!GlobalData.getApplicationStarted(super.savedContext))
      return false;

    GlobalData.loadPreferences(savedContext);

    return true;
  }

  protected void onEndReceive()
  {
  }
  
  private void callAnswered(boolean incoming)
  {
    DataWrapper dataWrapper = new DataWrapper(savedContext, false, false, 0);
    int speakerPhone = dataWrapper.getDatabaseHandler().getActiveProfileSpeakerphone();
    dataWrapper.invalidateDataWrapper();

    if (speakerPhone != 0)
    {

      if (audioManager == null )
        audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
      
          try {
              Thread.sleep(500); // Delay 0,5 seconds to handle better turning on loudspeaker
          } catch (InterruptedException e) {
          }
    
          //Activate loudspeaker
          audioManager.setMode(AudioManager.MODE_IN_CALL);

          savedSpeakerphone = audioManager.isSpeakerphoneOn();
          audioManager.setSpeakerphoneOn(speakerPhone == 1);
          
          speakerphoneSelected = true;
          
    }
  }
  
  private void callEnded(boolean incoming)
  {
      //Deactivate loudspeaker
    
    if (audioManager == null )
      audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);
    
      //if (audioManager.isSpeakerphoneOn())
         if (speakerphoneSelected)
      {
          audioManager.setSpeakerphoneOn(savedSpeakerphone);
        audioManager.setMode(savedMode); 
        
        speakerphoneSelected = false;
        }
  }

    protected void onIncomingCallStarted(String number, Date start) {
      //Log.e("PhoneCallBroadcastReceiver.onIncomingCallStarted","xxx");
    if (audioManager == null )
      audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);

    savedMode = audioManager.getMode();
    }
    
    protected void onOutgoingCallStarted(String number, Date start) {
      //Log.e("PhoneCallBroadcastReceiver.onOutgoingCallStarted","xxx");
    if (audioManager == null )
      audioManager = (AudioManager)savedContext.getSystemService(Context.AUDIO_SERVICE);

    savedMode = audioManager.getMode();
    }

    protected void onIncomingCallAnswered(String number, Date start) {
      //Log.e("PhoneCallBroadcastReceiver.onIncomingCallAnswered","xxx");
      callAnswered(false);
    }

    protected void onOutgoingCallAnswered(String number, Date start) {
      //Log.e("PhoneCallBroadcastReceiver.onOutgoingCallAnswered","xxx");
      callAnswered(false);
    }

    protected void onIncomingCallEnded(String number, Date start, Date end) {
      //Log.e("PhoneCallBroadcastReceiver.onIncomingCallEnded","xxx");
      callEnded(true);
    }

    protected void onOutgoingCallEnded(String number, Date start, Date end) {
      //Log.e("PhoneCallBroadcastReceiver.onOutgoingCallEnded","xxx");
      callEnded(false);
    }

    protected void onMissedCall(String number, Date start) {
    }
    
}




Java Source Code List

sk.henrichg.phoneprofiles.ActivateProfileActivity.java
sk.henrichg.phoneprofiles.ActivateProfileHelper.java
sk.henrichg.phoneprofiles.ActivateProfileListAdapter.java
sk.henrichg.phoneprofiles.ActivateProfileListFragment.java
sk.henrichg.phoneprofiles.ApplicationsCache.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceAdapter.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceDialog.java
sk.henrichg.phoneprofiles.ApplicationsPreference.java
sk.henrichg.phoneprofiles.BackgroundActivateProfileActivity.java
sk.henrichg.phoneprofiles.BitmapManipulator.java
sk.henrichg.phoneprofiles.BootUpReceiver.java
sk.henrichg.phoneprofiles.BrightnessDialogPreference.java
sk.henrichg.phoneprofiles.BrightnessView.java
sk.henrichg.phoneprofiles.DashClockBroadcastReceiver.java
sk.henrichg.phoneprofiles.DataWrapper.java
sk.henrichg.phoneprofiles.DatabaseHandler.java
sk.henrichg.phoneprofiles.EditorProfileListAdapter.java
sk.henrichg.phoneprofiles.EditorProfileListFragment.java
sk.henrichg.phoneprofiles.EditorProfilesActivity.java
sk.henrichg.phoneprofiles.ExecuteRadioProfilePrefsService.java
sk.henrichg.phoneprofiles.ExecuteVolumeProfilePrefsService.java
sk.henrichg.phoneprofiles.FirstStartService.java
sk.henrichg.phoneprofiles.GUIData.java
sk.henrichg.phoneprofiles.GlobalData.java
sk.henrichg.phoneprofiles.IconWidgetProvider.java
sk.henrichg.phoneprofiles.ImageViewPreferenceAdapter.java
sk.henrichg.phoneprofiles.ImageViewPreferenceDialog.java
sk.henrichg.phoneprofiles.ImageViewPreference.java
sk.henrichg.phoneprofiles.KeyguardService.java
sk.henrichg.phoneprofiles.Keyguard.java
sk.henrichg.phoneprofiles.LocaleChangedReceiver.java
sk.henrichg.phoneprofiles.NumberPickerPreference.java
sk.henrichg.phoneprofiles.OneRowWidgetProvider.java
sk.henrichg.phoneprofiles.PackageReplacedReceiver.java
sk.henrichg.phoneprofiles.PhoneCallBroadcastReceiver.java
sk.henrichg.phoneprofiles.PhoneCallReceiver.java
sk.henrichg.phoneprofiles.PhoneProfilesDashClockExtension.java
sk.henrichg.phoneprofiles.PhoneProfilesHelper.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesActivity.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesFragment.java
sk.henrichg.phoneprofiles.ProfileDurationAlarmBroadcastReceiver.java
sk.henrichg.phoneprofiles.ProfileListWidgetFactory.java
sk.henrichg.phoneprofiles.ProfileListWidgetProvider.java
sk.henrichg.phoneprofiles.ProfileListWidgetService.java
sk.henrichg.phoneprofiles.ProfilePreferenceAdapter.java
sk.henrichg.phoneprofiles.ProfilePreferenceDialog.java
sk.henrichg.phoneprofiles.ProfilePreference.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragmentActivity.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragment.java
sk.henrichg.phoneprofiles.ProfilePreferencesIndicator.java
sk.henrichg.phoneprofiles.Profile.java
sk.henrichg.phoneprofiles.ReceiversService.java
sk.henrichg.phoneprofiles.RefreshGUIBroadcastReceiver.java
sk.henrichg.phoneprofiles.RemoteExportDataActivity.java
sk.henrichg.phoneprofiles.RemoveBrightnessViewBroadcastReceiver.java
sk.henrichg.phoneprofiles.ScreenOnOffBroadcastReceiver.java
sk.henrichg.phoneprofiles.ShortcutCreatorActivity.java
sk.henrichg.phoneprofiles.ShortcutCreatorListFragment.java
sk.henrichg.phoneprofiles.ShortcutProfileListAdapter.java
sk.henrichg.phoneprofiles.UpgradePPHelperActivity.java
sk.henrichg.phoneprofiles.VolumeDialogPreference.java