From bd24ffc7ae7743d4dcc348e27bfda8289fc480be Mon Sep 17 00:00:00 2001 From: Tim Su Date: Wed, 6 Oct 2010 16:32:54 -0700 Subject: [PATCH] Eula. placeholder eula, but a eula nonetheless --- astrid/res/raw/eula | 5 + astrid/res/values/strings-core.xml | 9 ++ .../src/com/todoroo/astrid/activity/Eula.java | 91 +++++++++++++++++++ .../astrid/activity/TaskListActivity.java | 2 + 4 files changed, 107 insertions(+) create mode 100644 astrid/res/raw/eula create mode 100644 astrid/src/com/todoroo/astrid/activity/Eula.java diff --git a/astrid/res/raw/eula b/astrid/res/raw/eula new file mode 100644 index 000000000..093ac8564 --- /dev/null +++ b/astrid/res/raw/eula @@ -0,0 +1,5 @@ +Eula eula eula eula eula + +eula eula + +eula eula \ No newline at end of file diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index 964667a7e..afc051dad 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -40,6 +40,15 @@ Go To Market + + + Accept EULA + + + Decline EULA + + + End User License Agreement diff --git a/astrid/src/com/todoroo/astrid/activity/Eula.java b/astrid/src/com/todoroo/astrid/activity/Eula.java new file mode 100644 index 000000000..be9886b7b --- /dev/null +++ b/astrid/src/com/todoroo/astrid/activity/Eula.java @@ -0,0 +1,91 @@ +/* + * Copyright 2008 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.todoroo.astrid.activity; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.SharedPreferences; + +import com.timsu.astrid.R; +import com.todoroo.andlib.utility.AndroidUtilities; + +/** + * Displays an EULA ("End User License Agreement") that the user has to accept + * before using the application. Your application should call + * {@link Eula#showEula(android.app.Activity)} in the onCreate() method of the + * first activity. If the user accepts the EULA, it will never be shown again. + * If the user refuses, {@link android.app.Activity#finish()} is invoked on your + * activity. + */ +class Eula { + private static final String PREFERENCE_EULA_ACCEPTED = "eula.accepted"; //$NON-NLS-1$ + private static final String PREFERENCES_EULA = "eula"; //$NON-NLS-1$ + + /** + * Displays the EULA if necessary. This method should be called from the + * onCreate() method of your main Activity. + * + * @param activity + * The Activity to finish if the user rejects the EULA + */ + static void showEula(final Activity activity) { + final SharedPreferences preferences = activity.getSharedPreferences( + PREFERENCES_EULA, Activity.MODE_PRIVATE); + if (preferences.getBoolean(PREFERENCE_EULA_ACCEPTED, false)) { + return; + } + + final AlertDialog.Builder builder = new AlertDialog.Builder(activity); + builder.setTitle(R.string.DLG_eula_title); + builder.setCancelable(true); + builder.setPositiveButton(R.string.DLG_accept, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + accept(activity, preferences); + } + }); + builder.setNegativeButton(R.string.DLG_decline, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + refuse(activity); + } + }); + builder.setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialog) { + refuse(activity); + } + }); + builder.setMessage(AndroidUtilities.readFile(activity, R.raw.eula)); + builder.show(); + } + + @SuppressWarnings("unused") + private static void accept(Activity activity, SharedPreferences preferences) { + preferences.edit().putBoolean(PREFERENCE_EULA_ACCEPTED, true).commit(); + } + + private static void refuse(Activity activity) { + activity.finish(); + } + + private Eula() { + // don't construct me + } +} diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 8643573df..89a0d6512 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -209,6 +209,8 @@ public class TaskListActivity extends ListActivity implements OnScrollListener, database.openForWriting(); setUpUiComponents(); onNewIntent(getIntent()); + + Eula.showEula(this); } @Override