Android Open Source - SymptomManagement Main Activity






From Project

Back to project page SymptomManagement.

License

The source code is released under:

Apache License

If you think the Android project SymptomManagement 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 com.android.capstone;
/* ww w.  j  a  v  a  2 s  . c  om*/
import java.util.Calendar;
import java.util.Date;

import com.android.capstone.DatePickerFragment.OnDateSelectedListener;
import com.android.capstone.data.CheckinSvcApi;
import com.android.capstone.data.Doctor;
import com.android.capstone.data.Patient;
import com.android.capstone.doctor.DoctorMain_Fragment;
import com.android.capstone.doctor.alarm.CheckPainIntentService;
import com.android.capstone.patient.PatientMain_Fragment;
import com.android.capstone.task.GetClientCategoryTask;
import com.android.capstone.task.GetClientInfoTask;
import com.android.capstone.task.RegisterDoctorTask;
import com.android.capstone.task.RegisterPatientTask;
import com.android.capstone.utils.SharedPrefUtils;
import com.google.android.gms.auth.GooglePlayServicesAvailabilityException;
import com.google.android.gms.auth.UserRecoverableAuthException;
import com.google.android.gms.common.AccountPicker;
import com.google.android.gms.common.GooglePlayServicesUtil;

import android.accounts.AccountManager;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.Dialog;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Toast;


public class MainActivity extends BaseActivity implements OnDateSelectedListener{

   
  private static final int REQUEST_CODE_PICK_ACCOUNT = 1000;
  private static final int REQUEST_CODE_RECOVER_FROM_AUTH_ERROR = 1001;
  private static final int REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR = 1002;
  
  
  private AlarmManager alarmMgr;
  private PendingIntent alarmIntent;
  private SharedPrefUtils sharedPrefUtils;
  private FragmentManager fm;
  private Date dateOfBirth ;
  private boolean checkDoctor = false;
  private boolean checkPatient = false;
  
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  
    sharedPrefUtils = new SharedPrefUtils(this);
    fm = getFragmentManager();
    selectFragment();
    
  }

    
  
  
  public void onRegisterDoctor(View v){ 
    checkDoctor = true;
    DatePickerFragment frag = new DatePickerFragment();
    frag.show(getFragmentManager(), "datePicker");      
   }
        
  
   
  
  public void onRegisterPatient(View v){
     checkPatient = true;
     DatePickerFragment frag = new DatePickerFragment();
     frag.show(getFragmentManager(), "datePicker");                            
  }
  
  
  

  
  
  @Override
  public void onDateSelected(int year, int month, int day) {
    Calendar c = Calendar.getInstance();
    c.set(year, month, day, 0, 0);  
    dateOfBirth = c.getTime();
    
    String email = sharedPrefUtils.getEmail();
    String firstName = sharedPrefUtils.getFirstName();
        String lastName = sharedPrefUtils.getLastName();
        String gender = sharedPrefUtils.getGender();
      String pictureUrl = sharedPrefUtils.getImageUrl();
    
      
      if(checkDoctor){
        Doctor d = new Doctor(email, firstName, lastName, gender, pictureUrl , dateOfBirth);
      
        if(isOnline()){
        new RegisterDoctorTask(this).execute(d);
       }else{
        Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
        finish();
        }  
      
      }else if(checkPatient){
        Patient p = new Patient(email, firstName , lastName,gender, pictureUrl, dateOfBirth);
         
         if(isOnline()){
            new RegisterPatientTask(this).execute(p);
         }else{
          Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
          finish();
         } 
     }
      
  }


  
  
  public void selectFragment(){
      if(sharedPrefUtils.getId() == 0){
          pickUserAccount();
           
    }else{
      Fragment fragment;
      
      
      if(sharedPrefUtils.isDoctor()){
        
        //Start Alarms at Regular Intervals to Start the CheckPainIntentService ....
        alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(getApplicationContext(), CheckPainIntentService.class);
        alarmIntent = PendingIntent.getService(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 60*1000, alarmIntent);
        
      
        fragment = new DoctorMain_Fragment();
        FragmentTransaction ft = fm.beginTransaction();
        ft.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_in_right,R.animator.slide_out_right);
        ft.replace(R.id.mainContainer, fragment);
          ft.commit();
        
        
        
      }else{
                
                fragment = new PatientMain_Fragment();
                 FragmentTransaction ft = fm.beginTransaction();
        ft.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_in_right,R.animator.slide_out_right);
                 ft.replace(R.id.mainContainer, fragment);
              ft.commit();
        
        
      }
    
        
     }
    
      
  }
  
  
  
    private void pickUserAccount() {
      String[] accountTypes = new String[]{"com.google"};
      Intent intent = AccountPicker.newChooseAccountIntent(null, null,accountTypes, false, null, null, null, null);
      startActivityForResult(intent, REQUEST_CODE_PICK_ACCOUNT);
      
  }
  
  
  
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == REQUEST_CODE_PICK_ACCOUNT) {
         
      if (resultCode == Activity.RESULT_OK) {
            sharedPrefUtils.setEmail(data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME));
            if(isOnline()){
              new GetClientCategoryTask(this).execute();
          }else{
           Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
           finish();
          } 
             
             
         }else if (resultCode == Activity.RESULT_CANCELED) {
         Toast.makeText(this, "Pick Account ", Toast.LENGTH_SHORT).show();
      }
      
      
      
    }else if ((requestCode == REQUEST_CODE_RECOVER_FROM_AUTH_ERROR ||
                  requestCode == REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR)
                  && resultCode == RESULT_OK) {
          
      if(isOnline()){
        new GetClientCategoryTask(this).execute();
       }else{
        Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
        finish();
       } 
         
          
     }
    
        super.onActivityResult(requestCode, resultCode, data);
      
  }


  
  
  public void getClientCategoryTaskResult(String category){
    
    if(category == null){
      return;
    }
    
    if(category.equals(CheckinSvcApi.CATEGORY_DOCTOR)){
      
      if(isOnline()){
        new GetClientInfoTask(this, true).execute();
      }else{
            Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
        finish();
      } 
      
    
    }else if(category.equals(CheckinSvcApi.CATEGORY_PATIENT)){
      
      if(isOnline()){
        new GetClientInfoTask(this, false).execute();
      }else{
             Toast.makeText(this, "Internet Connection Not Available ", Toast.LENGTH_LONG).show();
         finish();
      } 
      
      
    }else if(category.equals(CheckinSvcApi.CATEGORY_EMPTY)){
      Fragment frag = new RegisterFragment();
        FragmentTransaction ft = fm.beginTransaction();
        ft.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_in_right,R.animator.slide_out_right);
      ft.replace(R.id.mainContainer, frag);
      ft.commit();
    
    }
    
    
  }

  
  
  
  public void registerDoctorTaskResult(Doctor d){
    selectFragment();
  }
  
  
  public void registerPatientTaskResult(Patient p){
    selectFragment();
  }




  public void getClientInfoTaskResult() {
    selectFragment();
  }
  
  
  
  
  
  
  


  public void handleException(final Exception e) {
      
      runOnUiThread(new Runnable() {
          @Override 
          public void run() { 
              if (e instanceof GooglePlayServicesAvailabilityException) {
                
                  int statusCode = ((GooglePlayServicesAvailabilityException)e)
                          .getConnectionStatusCode();
                  Dialog dialog = GooglePlayServicesUtil.getErrorDialog(statusCode,
                          MainActivity.this, 
                          REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR);
                  dialog.show();
              } else if (e instanceof UserRecoverableAuthException) {
                 
                  Intent intent = ((UserRecoverableAuthException)e).getIntent();
                  startActivityForResult(intent,
                          REQUEST_CODE_RECOVER_FROM_PLAY_SERVICES_ERROR);
              } 
          } 
      }); 
  }





  
  
  
  
  
  
}




Java Source Code List

android.UnusedStub.java
com.android.capstone.BaseActivity.java
com.android.capstone.DatePickerFragment.java
com.android.capstone.MainActivity.java
com.android.capstone.RegisterFragment.java
com.android.capstone.data.CheckinSvcApi.java
com.android.capstone.data.Checkin.java
com.android.capstone.data.Doctor.java
com.android.capstone.data.GPlusProfile.java
com.android.capstone.data.MedicationCheckinQA.java
com.android.capstone.data.Medications.java
com.android.capstone.data.Patient.java
com.android.capstone.data.VDoctor.java
com.android.capstone.data.VPatient.java
com.android.capstone.db.SymptomManagementContract.java
com.android.capstone.db.SymptomManagementDbHelper.java
com.android.capstone.db.SymptomManagementProvider.java
com.android.capstone.doctor.CheckinLogsListAdapter.java
com.android.capstone.doctor.CheckinLogs_Doctor_Fragment.java
com.android.capstone.doctor.DisplayCheckinActivity.java
com.android.capstone.doctor.DoctorMain_Fragment.java
com.android.capstone.doctor.Doctor_Main_CursorAdapter.java
com.android.capstone.doctor.Doctor_VPatient_Activity.java
com.android.capstone.doctor.Doctor_VPatient_Fragment.java
com.android.capstone.doctor.MedicationsListAdapter.java
com.android.capstone.doctor.MedicationsListFragment.java
com.android.capstone.doctor.alarm.CheckPainIntentService.java
com.android.capstone.doctor.alarm.CheckPain.java
com.android.capstone.doctor.alarm.CheckinAlarmService.java
com.android.capstone.doctor.alarm.OnBootReceiver.java
com.android.capstone.gcm.GcmBroadcastReceiver.java
com.android.capstone.gcm.GcmIntentService.java
com.android.capstone.patient.CheckinNowActivity.java
com.android.capstone.patient.PatientMain_Fragment.java
com.android.capstone.patient.Patient_Main_CursorAdapter.java
com.android.capstone.patient.ReminderCursorAdapter.java
com.android.capstone.patient.RemindersActivity.java
com.android.capstone.patient.TimePickerFragment.java
com.android.capstone.patient.checkin_now.model.AbstractWizardModel.java
com.android.capstone.patient.checkin_now.model.BranchPage.java
com.android.capstone.patient.checkin_now.model.CheckinNow_Model.java
com.android.capstone.patient.checkin_now.model.ModelCallbacks.java
com.android.capstone.patient.checkin_now.model.MultipleFixedChoicePage.java
com.android.capstone.patient.checkin_now.model.PageList.java
com.android.capstone.patient.checkin_now.model.PageTreeNode.java
com.android.capstone.patient.checkin_now.model.Page.java
com.android.capstone.patient.checkin_now.model.ReviewItem.java
com.android.capstone.patient.checkin_now.model.SingleFixedChoicePage.java
com.android.capstone.patient.checkin_now.ui.MultipleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.PageFragmentCallbacks.java
com.android.capstone.patient.checkin_now.ui.ReviewFragment.java
com.android.capstone.patient.checkin_now.ui.SingleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.StepPagerStrip.java
com.android.capstone.task.AddCheckinTask.java
com.android.capstone.task.AddMedicationsTask.java
com.android.capstone.task.AddPatientTask.java
com.android.capstone.task.GetClientCategoryTask.java
com.android.capstone.task.GetClientInfoTask.java
com.android.capstone.task.GetUserImageTask.java
com.android.capstone.task.RegisterDoctorTask.java
com.android.capstone.task.RegisterPatientTask.java
com.android.capstone.utils.CommonUtils.java
com.android.capstone.utils.RetrofitUtils.java
com.android.capstone.utils.SharedPrefUtils.java
com.android.capstone.views.CheckinLogsView.java
com.android.capstone.views.FloatingActionButton.java
com.coursera.capstone.checkin.Application.java
com.coursera.capstone.checkin.client.CheckinSvcApi.java
com.coursera.capstone.checkin.client.TokenSvcApi.java
com.coursera.capstone.checkin.controller.CheckinSvc.java
com.coursera.capstone.data.CheckinUtils.java
com.coursera.capstone.data.Checkin.java
com.coursera.capstone.data.ClientUtils.java
com.coursera.capstone.data.Constants.java
com.coursera.capstone.data.DoctorUtils.java
com.coursera.capstone.data.Doctor.java
com.coursera.capstone.data.InvalidRequestException.java
com.coursera.capstone.data.Medications.java
com.coursera.capstone.data.Message.java
com.coursera.capstone.data.MulticastResult.java
com.coursera.capstone.data.PMF.java
com.coursera.capstone.data.PatientUtils.java
com.coursera.capstone.data.Patient.java
com.coursera.capstone.data.Result.java
com.coursera.capstone.data.Sender.java
com.coursera.capstone.data.Token.java
com.coursera.capstone.data.VDoctor.java
com.coursera.capstone.data.VPatient.java
com.coursera.capstone.interceptor.AuthorizationInterceptor.java
com.coursera.capstone.interceptor.Checker.java