Android Open Source - open311-android Report Activity






From Project

Back to project page open311-android.

License

The source code is released under:

GNU General Public License

If you think the Android project open311-android 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

/**
 * @copyright 2012 City of Bloomington, Indiana
 * @license http://www.gnu.org/licenses/gpl.txt GNU/GPL, see LICENSE.txt
 * @author Cliff Ingham <inghamn@bloomington.in.gov>
 *///from  w  w w .  j  a  v a  2 s .com
package gov.in.bloomington.georeporter.activities;

import gov.in.bloomington.georeporter.R;
import gov.in.bloomington.georeporter.fragments.ChooseGroupFragment;
import gov.in.bloomington.georeporter.fragments.ChooseGroupFragment.OnGroupSelectedListener;
import gov.in.bloomington.georeporter.fragments.ChooseServiceFragment;
import gov.in.bloomington.georeporter.fragments.ChooseServiceFragment.OnServiceSelectedListener;
import gov.in.bloomington.georeporter.fragments.ReportFragment;
import gov.in.bloomington.georeporter.models.Open311;
import gov.in.bloomington.georeporter.models.ServiceRequest;
import gov.in.bloomington.georeporter.util.Util;
import gov.in.bloomington.georeporter.util.json.JSONException;
import gov.in.bloomington.georeporter.util.json.JSONObject;
import android.app.ActionBar;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;

public class ReportActivity extends BaseActivity
              implements OnGroupSelectedListener,
                     OnServiceSelectedListener {
  
  public static final int CHOOSE_LOCATION_REQUEST = 1;
  private ActionBar      mActionBar;
  private ReportFragment mReportFragment;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    mActionBar = getActionBar();
    mActionBar.setTitle(R.string.menu_report);
    
    if (Open311.sReady) {
          if (Open311.sGroups.size() > 1) {
              ChooseGroupFragment chooseGroup = new ChooseGroupFragment();
              getFragmentManager() .beginTransaction()
                                   .add(android.R.id.content, chooseGroup)
                                   .addToBackStack(null)
                                   .commit();
          }
          else {
              onGroupSelected(Open311.sGroups.get(0));
          }
    }
    else {
            Intent intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
    }
  }
  
  @Override
  public void onGroupSelected(String group) {
    ChooseServiceFragment chooseService = new ChooseServiceFragment();
    chooseService.setServices(Open311.getServices(group, this));
    getFragmentManager() .beginTransaction()
               .replace(android.R.id.content, chooseService)
               .addToBackStack(null)
               .commit();
  }
  
  @Override
  public void onServiceSelected(JSONObject service) {
    mActionBar.setTitle(service.optString(Open311.SERVICE_NAME));
    new ServiceDefinitionLoader(this).execute(service);
  }
  
  private class ServiceDefinitionLoader extends AsyncTask<JSONObject, Void, Boolean> {
    private ProgressDialog dialog;
    private JSONObject service;
    private JSONObject service_definition;
    private Context context;
    
    private ServiceDefinitionLoader(Context c) {
      this.context = c;
    }
    
    @Override
    protected void onPreExecute() {
      super.onPreExecute();
      dialog = ProgressDialog.show(context, getString(R.string.dialog_loading_services), "", true);
    }
    
    @Override
    protected Boolean doInBackground(JSONObject... s) {
      service = s[0];
      if (service.optBoolean(Open311.METADATA)) {
        try {
          service_definition = Open311.getServiceDefinition(service.getString(Open311.SERVICE_CODE), context);
          return true;
        } catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return false;
        }
      }
      else {
        return true;
      }
    }
    
    @Override
    protected void onPostExecute(Boolean result) {
      dialog.dismiss();
      if (!result) {
        Util.displayCrashDialog(ReportActivity.this, getString(R.string.failure_loading_services));
      }
      else {
        ServiceRequest sr = new ServiceRequest(service, service_definition, context);
        mReportFragment = ReportFragment.newInstance(sr);
        
        getFragmentManager().beginTransaction()
                  .replace(android.R.id.content, mReportFragment)
                  .addToBackStack(null)
                  .commit();
      }
    }
  }
}




Java Source Code List

android.UnusedStub.java
gov.in.bloomington.georeporter.activities.AboutActivity.java
gov.in.bloomington.georeporter.activities.AttributeEntryActivity.java
gov.in.bloomington.georeporter.activities.BaseActivity.java
gov.in.bloomington.georeporter.activities.ChooseLocationActivity.java
gov.in.bloomington.georeporter.activities.DataEntryActivity.java
gov.in.bloomington.georeporter.activities.MainActivity.java
gov.in.bloomington.georeporter.activities.ReportActivity.java
gov.in.bloomington.georeporter.activities.SavedReportsActivity.java
gov.in.bloomington.georeporter.activities.SettingsActivity.java
gov.in.bloomington.georeporter.adapters.GroupsAdapter.java
gov.in.bloomington.georeporter.adapters.PersonalInfoAdapter.java
gov.in.bloomington.georeporter.adapters.SavedReportsAdapter.java
gov.in.bloomington.georeporter.adapters.ServersAdapter.java
gov.in.bloomington.georeporter.adapters.ServiceRequestAdapter.java
gov.in.bloomington.georeporter.adapters.ServicesAdapter.java
gov.in.bloomington.georeporter.fragments.ChooseGroupFragment.java
gov.in.bloomington.georeporter.fragments.ChooseServiceFragment.java
gov.in.bloomington.georeporter.fragments.PersonalInfoFragment.java
gov.in.bloomington.georeporter.fragments.ReportFragment.java
gov.in.bloomington.georeporter.fragments.SavedReportViewFragment.java
gov.in.bloomington.georeporter.fragments.SavedReportsListFragment.java
gov.in.bloomington.georeporter.fragments.ServersFragment.java
gov.in.bloomington.georeporter.models.Open311Exception.java
gov.in.bloomington.georeporter.models.Open311.java
gov.in.bloomington.georeporter.models.Preferences.java
gov.in.bloomington.georeporter.models.ServiceRequest.java
gov.in.bloomington.georeporter.util.Media.java
gov.in.bloomington.georeporter.util.Open311Parser.java
gov.in.bloomington.georeporter.util.Open311XmlParser.java
gov.in.bloomington.georeporter.util.Util.java
gov.in.bloomington.georeporter.util.json.CDL.java
gov.in.bloomington.georeporter.util.json.CookieList.java
gov.in.bloomington.georeporter.util.json.Cookie.java
gov.in.bloomington.georeporter.util.json.HTTPTokener.java
gov.in.bloomington.georeporter.util.json.HTTP.java
gov.in.bloomington.georeporter.util.json.JSONArray.java
gov.in.bloomington.georeporter.util.json.JSONException.java
gov.in.bloomington.georeporter.util.json.JSONML.java
gov.in.bloomington.georeporter.util.json.JSONObject.java
gov.in.bloomington.georeporter.util.json.JSONString.java
gov.in.bloomington.georeporter.util.json.JSONStringer.java
gov.in.bloomington.georeporter.util.json.JSONTokener.java
gov.in.bloomington.georeporter.util.json.JSONWriter.java
gov.in.bloomington.georeporter.util.json.XMLTokener.java
gov.in.bloomington.georeporter.util.json.XML.java