diff --git a/app/build.gradle b/app/build.gradle index d7be48f..95238b9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "org.secuso.aktivpause" minSdkVersion 21 targetSdkVersion 28 - versionCode 6 - versionName "1.0" + versionCode 7 + versionName "1.1" vectorDrawables.useSupportLibrary = true } lintOptions { diff --git a/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java b/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java index f87d384..a9a2d43 100644 --- a/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java +++ b/app/src/main/java/org/secuso/aktivpause/activities/TimerActivity.java @@ -9,8 +9,10 @@ import android.content.ServiceConnection; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.IBinder; import android.preference.PreferenceManager; +import android.support.annotation.NonNull; import android.support.constraint.ConstraintLayout; import android.support.constraint.ConstraintSet; import android.support.v4.app.ActivityCompat; @@ -19,6 +21,9 @@ import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.transition.TransitionManager; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ImageButton; @@ -83,6 +88,8 @@ public class TimerActivity extends BaseActivity implements android.support.v4.ap // Service private TimerService mTimerService = null; + private SharedPreferences pref; + private final ServiceConnection mServiceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { @@ -127,9 +134,62 @@ protected void onCreate(Bundle savedInstanceState) { initResources(); initAnimations(); + + if(pref.getBoolean("SHOW_EVALUATION", true)) { + showEvaluationDialog(); + } + getSupportLoaderManager().initLoader(0, null, this); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_show_evaluation_dialog, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if(item.getItemId() == R.id.action_evaluation) { + showEvaluationDialog(); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void showEvaluationDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + + builder.setPositiveButton(R.string.dialog_evaluation_yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Uri link = Uri.parse("https://soscisurvey.sport.kit.edu/aktivpause/"); + Intent linkIntent = new Intent(Intent.ACTION_VIEW, link); + startActivity(linkIntent); + pref.edit().putBoolean("SHOW_EVALUATION", false).apply(); + dialog.dismiss(); + } + }); + builder.setNegativeButton(R.string.dialog_evaluation_no, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + pref.edit().putBoolean("SHOW_EVALUATION", false).apply(); + dialog.dismiss(); + } + }); + builder.setNeutralButton(R.string.dialog_evaluation_later, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + pref.edit().putBoolean("SHOW_EVALUATION", true).apply(); + dialog.dismiss(); + } + }); + builder.setMessage(R.string.dialog_evaluation_message); + builder.setTitle(R.string.dialog_evaluation_title); + builder.create().show(); + } + /** * Must be called after {@link #initResources()} */ @@ -205,7 +265,7 @@ private void shutdownServiceBinding() { } private void initResources() { - final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); + pref = PreferenceManager.getDefaultSharedPreferences(this); exerciseSetAdapter = new ExerciseSetSpinnerAdapter(this, R.layout.layout_exercise_set, new LinkedList()); diff --git a/app/src/main/res/menu/menu_show_evaluation_dialog.xml b/app/src/main/res/menu/menu_show_evaluation_dialog.xml new file mode 100644 index 0000000..57e94cf --- /dev/null +++ b/app/src/main/res/menu/menu_show_evaluation_dialog.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9e49c44..1f79287 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -170,5 +170,11 @@ Achtung Die gewählte Übungszeit ist nicht ausreichend, um das gewählte Übungsset abzuschließen. Die Zeit wurde automatisch angepasst. Verwende zufällige Übungssets + Später + Vielen Dank, dass Sie die \"Aktivpause to Go\" App verwenden. Wir würden gerne eine Online-Befragung zur App durchführen und bitten um Ihre Mithilfe. Möchten Sie daran teilnehmen?\n\nDrücken auf \"Ja\" führt Sie zu folgender Website:\nhttps://soscisurvey.sport.kit.edu/aktivpause/ + Nicht noch mal Fragen + Online-Befragung + Ja + Online-Befragung \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cba58f4..8c4bb58 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -162,7 +162,12 @@ Warning The currently selected exercise time is not sufficient to complete the chosen exercise set. The time has been adjusted. Use random exercise sets - + Evaluation + Thank you for using the Aktivpause to Go app. We would like to hear your feedback via an online evaluation. The evaluation is in german. Would you like to participate?\n\nSeleting \"Yes\" will take you to the following website:\nhttps://soscisurvey.sport.kit.edu/aktivpause/ + Later + Don\'t show again + Yes + Online Evaluation diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 9710b9e..483ff70 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ -