Android Open Source - opentraining Send Exercise Feedback Dialog Fragment






From Project

Back to project page opentraining.

License

The source code is released under:

GNU General Public License

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

/**
 * /*from   w ww . ja va2 s.  com*/
 * This is OpenTraining, an Android application for planning your your fitness training.
 * Copyright (C) 2012-2014 Christian Skubich
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

package de.skubware.opentraining.activity.create_workout;

import java.util.HashMap;
import org.acra.ACRA;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import de.skubware.opentraining.R;
import de.skubware.opentraining.activity.acra.ACRAFeedbackMailer;
import de.skubware.opentraining.activity.acra.RequestExerciseUpdate;
import de.skubware.opentraining.activity.acra.RequestExerciseUpdate.ExerciseUpdateReason;
import de.skubware.opentraining.basic.ExerciseType;

public class SendExerciseFeedbackDialogFragment  extends DialogFragment{

  private final String TAG = "SendExerciseFeedbackDialog";

  // key for bundle (save/restore instance state)
  private final String KEY_EXERCISE = "key_exercise";
  private final String KEY_USER_MESSAGE = "key_user_message";
  private final String KEY_EXERCISE_UPDATE_REASON = "key_exercise_update_reason";

  private ExerciseType mExercise;
  
  private Spinner mReasonSpinner;
  private EditText mEditText;
  
  private String mUserMessage = "";
  private int mReasonSelected = -1;

  /**
   * Create a new instance of SelectWorkoutFragment.
   */
  static SendExerciseFeedbackDialogFragment newInstance(ExerciseType exercise) {
    SendExerciseFeedbackDialogFragment s = new SendExerciseFeedbackDialogFragment(exercise);
    return s;
  }
  
  public SendExerciseFeedbackDialogFragment(ExerciseType exercise){
    mExercise = exercise;
  }
  
  /** 
   * Empty constructor, required for DialogFragment.
   * Argument should be passed via Bundle
   * */
  public SendExerciseFeedbackDialogFragment(){
  }
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState != null){
      mExercise = (ExerciseType) savedInstanceState.getSerializable(KEY_EXERCISE);
      mUserMessage = savedInstanceState.getString(KEY_USER_MESSAGE);
      mReasonSelected = savedInstanceState.getInt(KEY_EXERCISE_UPDATE_REASON);
    }  
  }

  @Override
  public void onSaveInstanceState(Bundle bundle){
    bundle.putSerializable(KEY_EXERCISE, mExercise);
    
    if(mEditText != null && mReasonSpinner != null){
      mUserMessage = mEditText.getEditableText().toString();
      mReasonSelected = mReasonSpinner.getSelectedItemPosition();
    
      bundle.putString(KEY_USER_MESSAGE, mUserMessage);
      bundle.putInt(KEY_EXERCISE_UPDATE_REASON, mReasonSelected);
    }  
  }
  
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();

    final View v = inflater.inflate(R.layout.dialog_send_exercise_feedback, null);
    builder.setView(v);

    // edit text
    mEditText = (EditText) v.findViewById(R.id.edittext_user_suggestion);
    mEditText.setText(mUserMessage);
    
    // title
    builder.setTitle(getActivity().getString(R.string.send_feedback_for_exercise, mExercise.getLocalizedName()));

    // spinner
    mReasonSpinner = (Spinner) v.findViewById(R.id.exercise_update_reason_spinner);

    ExerciseUpdateReason.translateEnums(getActivity());
    ArrayAdapter<ExerciseUpdateReason> mSpinnerAdapter = new ArrayAdapter<ExerciseUpdateReason>(getActivity(), android.R.layout.simple_spinner_dropdown_item, android.R.id.text1, ExerciseUpdateReason.values());
    
    mReasonSpinner.setAdapter(mSpinnerAdapter);
    
    // restore old selction
    if(mReasonSelected >= 0){
      mReasonSpinner.setSelection(mReasonSelected);
    }
    
    // positive button
    builder.setPositiveButton(getActivity().getString(android.R.string.ok), new OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        
        ExerciseUpdateReason reason = (ExerciseUpdateReason) mReasonSpinner.getSelectedItem();
        String userMsg = mEditText.getEditableText().toString();

        
            // send feedback 
            ACRA.getErrorReporter().setReportSender(new ACRAFeedbackMailer());
            // silentException prevents that the dialog for crash reports pops up
        ACRA.getErrorReporter().handleSilentException(new RequestExerciseUpdate(mExercise, reason, userMsg));

        
        dialog.dismiss();
      }
    });
    
    // positive button
    builder.setNegativeButton(getActivity().getString(R.string.cancel), new OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
      }
    });
        

    
    return builder.create();

  }

}




Java Source Code List

at.technikum.mti.fancycoverflow.FancyCoverFlowAdapter.java
at.technikum.mti.fancycoverflow.FancyCoverFlowItemWrapper.java
at.technikum.mti.fancycoverflow.FancyCoverFlow.java
de.skubware.opentraining.activity.ChangeLogDialog.java
de.skubware.opentraining.activity.DisclaimerDialog.java
de.skubware.opentraining.activity.MainActivity.java
de.skubware.opentraining.activity.NavigationGalleryAdapter.java
de.skubware.opentraining.activity.SelectWorkoutDialogFragment.java
de.skubware.opentraining.activity.WhatsNewDialog.java
de.skubware.opentraining.activity.acra.ACRACrashReportMailer.java
de.skubware.opentraining.activity.acra.ACRAFeedbackMailer.java
de.skubware.opentraining.activity.acra.OpenTrainingApplication.java
de.skubware.opentraining.activity.acra.RequestExerciseUpdate.java
de.skubware.opentraining.activity.create_exercise.CreateExerciseActivity.java
de.skubware.opentraining.activity.create_exercise.CustomSpinner.java
de.skubware.opentraining.activity.create_exercise.DescriptionFragment.java
de.skubware.opentraining.activity.create_exercise.EditImageMetadataDialog.java
de.skubware.opentraining.activity.create_exercise.EquipmentDataFragment.java
de.skubware.opentraining.activity.create_exercise.ExerciseImageListAdapter.java
de.skubware.opentraining.activity.create_exercise.ImageFragment.java
de.skubware.opentraining.activity.create_exercise.MuscleDataFragment.java
de.skubware.opentraining.activity.create_exercise.NameFragment.java
de.skubware.opentraining.activity.create_exercise.SimpleDataFragment.java
de.skubware.opentraining.activity.create_exercise.SpinnerDataFragment.java
de.skubware.opentraining.activity.create_workout.DialogFilterMusclesAndEquipment.java
de.skubware.opentraining.activity.create_workout.DialogWorkoutOverviewFragment.java
de.skubware.opentraining.activity.create_workout.ExerciseDetailOnGestureListener.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailActivity.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeDetailFragment.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListActivity.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListAdapter.java
de.skubware.opentraining.activity.create_workout.ExerciseTypeListFragment.java
de.skubware.opentraining.activity.create_workout.SelectMuscleDialog.java
de.skubware.opentraining.activity.create_workout.SendExerciseFeedbackDialogFragment.java
de.skubware.opentraining.activity.create_workout.upload_exercise.ExerciseImage.java
de.skubware.opentraining.activity.create_workout.upload_exercise.UploadExerciseAsyncTask.java
de.skubware.opentraining.activity.create_workout.upload_exercise.UploadExerciseImagesAsyncTask.java
de.skubware.opentraining.activity.create_workout.upload_exercise.WgerRestService.java
de.skubware.opentraining.activity.manage_workouts.RenameWorkoutDialogFragment.java
de.skubware.opentraining.activity.manage_workouts.WorkoutDetailActivity.java
de.skubware.opentraining.activity.manage_workouts.WorkoutDetailFragment.java
de.skubware.opentraining.activity.manage_workouts.WorkoutListActivity.java
de.skubware.opentraining.activity.manage_workouts.WorkoutListFragment.java
de.skubware.opentraining.activity.settings.LicenseDialog.java
de.skubware.opentraining.activity.settings.SettingsActivity.java
de.skubware.opentraining.activity.settings.sync.OpenTrainingSyncResultReceiver.java
de.skubware.opentraining.activity.settings.sync.OpenTrainingSyncService.java
de.skubware.opentraining.activity.settings.sync.RestClient.java
de.skubware.opentraining.activity.settings.sync.SyncFinishedDialog.java
de.skubware.opentraining.activity.settings.sync.WgerImageDownloader.java
de.skubware.opentraining.activity.settings.sync.WgerJSONParser.java
de.skubware.opentraining.activity.start_training.DialogFragmentAddEntry.java
de.skubware.opentraining.activity.start_training.DialogFragmentTrainingEntryTable.java
de.skubware.opentraining.activity.start_training.FExDetailActivity.java
de.skubware.opentraining.activity.start_training.FExDetailFragment.java
de.skubware.opentraining.activity.start_training.FExListActivity.java
de.skubware.opentraining.activity.start_training.FExListAdapter.java
de.skubware.opentraining.activity.start_training.FExListFragment.java
de.skubware.opentraining.activity.start_training.RecoveryTimerManager.java
de.skubware.opentraining.activity.start_training.SwipeDismissListViewTouchListener.java
de.skubware.opentraining.activity.start_training.SwipeDismissTouchListener.java
de.skubware.opentraining.activity.start_training.TrainingEntryListAdapter.java
de.skubware.opentraining.basic.ActivationLevel.java
de.skubware.opentraining.basic.ExerciseTag.java
de.skubware.opentraining.basic.ExerciseType.java
de.skubware.opentraining.basic.FSet.java
de.skubware.opentraining.basic.FitnessExercise.java
de.skubware.opentraining.basic.IExercise.java
de.skubware.opentraining.basic.License.java
de.skubware.opentraining.basic.Muscle.java
de.skubware.opentraining.basic.SportsEquipment.java
de.skubware.opentraining.basic.TrainingEntry.java
de.skubware.opentraining.basic.Translatable.java
de.skubware.opentraining.basic.Workout.java
de.skubware.opentraining.db.Cache.java
de.skubware.opentraining.db.DataHelper.java
de.skubware.opentraining.db.DataProvider.java
de.skubware.opentraining.db.IDataProvider.java
de.skubware.opentraining.db.parser.AbstractJSONParser.java
de.skubware.opentraining.db.parser.ExerciseTagJSONParser.java
de.skubware.opentraining.db.parser.ExerciseTypeXMLParser.java
de.skubware.opentraining.db.parser.IParser.java
de.skubware.opentraining.db.parser.MuscleJSONParser.java
de.skubware.opentraining.db.parser.SportsEquipmentJSONParser.java
de.skubware.opentraining.db.parser.WorkoutXMLParser.java
de.skubware.opentraining.db.parser.XMLSaver.java
de.skubware.opentraining.db.rest.ExerciseImageGSONSerializer.java
de.skubware.opentraining.db.rest.ExerciseTypeGSONSerializer.java
de.skubware.opentraining.db.rest.LanguageGSONDeserializer.java
de.skubware.opentraining.db.rest.MuscleGSONDeserializer.java
de.skubware.opentraining.db.rest.ServerModel.java
de.skubware.opentraining.db.rest.SportsEquipmentGSONDeserializer.java
de.skubware.opentraining.exporter.HTMLExporter.java
de.skubware.opentraining.exporter.LaTeXExporter.java
de.skubware.opentraining.exporter.WorkoutExporter.java