Android Open Source - PhoneProfiles_Eclipse Profile Duration Alarm 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 ww w  .  j  av a 2 s  . c  o m
import java.util.Calendar;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class ProfileDurationAlarmBroadcastReceiver extends BroadcastReceiver {

  public void onReceive(Context context, Intent intent) {
    
    //Log.e("#### ProfileDurationAlarmBroadcastReceiver.onReceive","xxx");
    
    GlobalData.loadPreferences(context);
    
    if (GlobalData.getApplicationStarted(context))
    {
      long profileId = intent.getLongExtra(GlobalData.EXTRA_PROFILE_ID, 0);
      if (profileId != 0)
      {
        DataWrapper dataWrapper = new DataWrapper(context, true, false, 0);

        Profile profile = dataWrapper.getProfileById(profileId);
        Profile activatedProfile = dataWrapper.getActivatedProfile();
        
        if ((activatedProfile._id == profile._id) && 
          (profile._afterDurationDo != Profile.AFTERDURATIONDO_NOTHING))
        {
          // alarm is from activated profile
          
          long activateProfileId = 0;
          if (profile._afterDurationDo == Profile.AFTERDURATIONDO_BACKGROUNPROFILE)
          {
            activateProfileId = Long.valueOf(GlobalData.applicationBackgroundProfile);
            if (activateProfileId == GlobalData.PROFILE_NO_ACTIVATE)
              activateProfileId = 0;
          }
          if (profile._afterDurationDo == Profile.AFTERDURATIONDO_UNDOPROFILE)
          {
            activateProfileId = GlobalData.getActivatedProfileForDuration(context);
          }
          
          dataWrapper.getActivateProfileHelper().initialize(null, context);
          dataWrapper.activateProfile(activateProfileId, GlobalData.STARTUP_SOURCE_SERVICE, null);
        }
        
        dataWrapper.invalidateDataWrapper();
        
      }
    }
  }

  @SuppressLint("SimpleDateFormat")
  static public void setAlarm(Profile profile, Context context)
  {
    removeAlarm(context);
    
    if (profile == null)
      return;
    
    if ((profile._afterDurationDo != Profile.AFTERDURATIONDO_NOTHING) && 
      (profile._duration > 0))
    {
      // duration for start is > 0
      // set alarm
      
      Calendar now = Calendar.getInstance();
      long alarmTime = now.getTimeInMillis() + 1000 * 60 * profile._duration;
          
        //SimpleDateFormat sdf = new SimpleDateFormat("EE d.MM.yyyy HH:mm:ss:S");
        //String result = sdf.format(alarmTime);
        //Log.e("@@@ ProfileDurationAlarmBroadcastReceiver.setAlarm","time="+result);
        
        Intent intent = new Intent(context, ProfileDurationAlarmBroadcastReceiver.class);
        intent.putExtra(GlobalData.EXTRA_PROFILE_ID, profile._id);
        
          PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

          AlarmManager alarmManager = (AlarmManager) context.getSystemService(Activity.ALARM_SERVICE);

          alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent);
          //alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 24 * 60 * 60 * 1000 , pendingIntent);
          //alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 24 * 60 * 60 * 1000 , pendingIntent);

      //this._isInDelay = true;
    }
    //else
    //  this._isInDelay = false;
      
    //dataWrapper.getDatabaseHandler().updateEventInDelay(this);
    
    return;
  }
  
  static public void removeAlarm(Context context)
  {
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Activity.ALARM_SERVICE);

    Intent intent = new Intent(context, ProfileDurationAlarmBroadcastReceiver.class);
      
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_NO_CREATE);
        if (pendingIntent != null)
        {
           //Log.e("@@@ ProfileDurationAlarmBroadcastReceiver.removeAlarm","alarm found");
            
          alarmManager.cancel(pendingIntent);
          pendingIntent.cancel();
        }
    
    //this._isInDelay = false;
    //dataWrapper.getDatabaseHandler().updateEventInDelay(this);
  }
  
}




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