diff --git a/DoNExt/app/build.gradle b/DoNExt/app/build.gradle index 0898f05..8b8e65e 100644 --- a/DoNExt/app/build.gradle +++ b/DoNExt/app/build.gradle @@ -2,11 +2,11 @@ apply plugin: 'com.android.application' android { compileSdkVersion 25 - buildToolsVersion "23.0.2" + buildToolsVersion '25.0.2' defaultConfig { applicationId "com.wismna.geoffroy.donext" - minSdkVersion 15 + minSdkVersion 19 targetSdkVersion 25 versionCode 14 versionName "1.3.0" @@ -22,10 +22,11 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:25.2.0' - compile 'com.android.support:design:25.2.0' - compile 'com.android.support:support-v4:25.2.0' - compile 'com.android.support:percent:25.2.0' - compile 'com.android.support:recyclerview-v7:25.2.0' + compile 'com.android.support:appcompat-v7:25.3.0' + compile 'com.android.support:design:25.3.0' + compile 'com.android.support:support-v4:25.3.0' + compile 'com.android.support:percent:25.3.0' + compile 'com.android.support:recyclerview-v7:25.3.0' compile 'com.google.android.gms:play-services-ads:10.2.0' + compile 'net.danlew:android.joda:2.9.7' } diff --git a/DoNExt/app/src/main/AndroidManifest.xml b/DoNExt/app/src/main/AndroidManifest.xml index 7589774..80f4803 100644 --- a/DoNExt/app/src/main/AndroidManifest.xml +++ b/DoNExt/app/src/main/AndroidManifest.xml @@ -1,17 +1,18 @@ - + android:theme="@style/AppTheme" + android:allowBackup="true" + android:fullBackupContent="true"> - diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/DoNext.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/DoNext.java new file mode 100644 index 0000000..ee5489e --- /dev/null +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/DoNext.java @@ -0,0 +1,17 @@ +package com.wismna.geoffroy.donext; + +import android.app.Application; + +import net.danlew.android.joda.JodaTimeAndroid; + +/** + * Created by bg45 on 2017-03-15. + */ + +public class DoNext extends Application { + @Override + public void onCreate() { + super.onCreate(); + JodaTimeAndroid.init(this); + } +} diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java index 6f5456b..8664f4e 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java @@ -27,6 +27,7 @@ import com.wismna.geoffroy.donext.adapters.SmartFragmentStatePagerAdapter; import com.wismna.geoffroy.donext.adapters.TaskRecyclerViewAdapter; import com.wismna.geoffroy.donext.dao.Task; import com.wismna.geoffroy.donext.dao.TaskList; +import com.wismna.geoffroy.donext.database.TaskDataAccess; import com.wismna.geoffroy.donext.database.TaskListDataAccess; import com.wismna.geoffroy.donext.fragments.TaskDialogFragment; import com.wismna.geoffroy.donext.fragments.TasksFragment; @@ -66,17 +67,14 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); - // Access database to retrieve Tabs - TaskListDataAccess taskListDataAccess = new TaskListDataAccess(this); - taskListDataAccess.open(); - // Handle Today list - handleTodayList(sharedPref, taskListDataAccess); - - taskLists = taskListDataAccess.getAllTaskLists(); - mSectionsPagerAdapter.notifyDataSetChanged(); - taskListDataAccess.close(); + handleTodayList(sharedPref); + // Access database to retrieve Tabs + try (TaskListDataAccess taskListDataAccess = new TaskListDataAccess(this)) { + taskLists = taskListDataAccess.getAllTaskLists(); + mSectionsPagerAdapter.notifyDataSetChanged(); + } if (taskLists.size() == 0) { Intent intent = new Intent(this, TaskListActivity.class); startActivity(intent); @@ -260,21 +258,28 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas } } - private void handleTodayList(SharedPreferences sharedPref, TaskListDataAccess taskListDataAccess) { + private void handleTodayList(SharedPreferences sharedPref) { String todayListName = getString(R.string.task_list_today); - TaskList todayList = taskListDataAccess.getTaskListByName(todayListName); - if (sharedPref.getBoolean("pref_conf_today_enable", false)) { - // Get or create the Today list - if (todayList == null) { - // TODO: set order correctly - todayList = taskListDataAccess.createTaskList(todayListName, 0); - } - if (!todayList.isVisible()) taskListDataAccess.updateVisibility(todayList.getId(), true); - // Mark all tasks with an earlier do date as done - } - else { - if (todayList != null){ - taskListDataAccess.updateVisibility(todayList.getId(), false); + try (TaskListDataAccess taskListDataAccess = new TaskListDataAccess(this, TaskListDataAccess.MODE.WRITE)) { + TaskList todayList = taskListDataAccess.getTaskListByName(todayListName); + if (sharedPref.getBoolean("pref_conf_today_enable", false)) { + // Get or create the Today list + if (todayList == null) { + // TODO: set order correctly + todayList = taskListDataAccess.createTaskList(todayListName, 0); + } + if (!todayList.isVisible()) + taskListDataAccess.updateVisibility(todayList.getId(), true); + // Mark all tasks with an earlier do date as done + try (TaskDataAccess taskDataAccess = new TaskDataAccess(this, TaskDataAccess.MODE.WRITE)) { + taskDataAccess.updateExpiredTasks( + Integer.valueOf(sharedPref.getString("pref_conf_today_action", "2")), todayList.getId()); + } + } else { + // Hide the today list if it exists + if (todayList != null) { + taskListDataAccess.updateVisibility(todayList.getId(), false); + } } } } diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/dao/Task.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/dao/Task.java index c8b28a3..9d41a1c 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/dao/Task.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/dao/Task.java @@ -1,7 +1,6 @@ package com.wismna.geoffroy.donext.dao; -import java.sql.Date; -import java.text.SimpleDateFormat; +import org.joda.time.LocalDate; /** * Created by geoffroy on 15-11-25. @@ -17,7 +16,7 @@ public class Task { private int deleted; private long taskList; private String taskListName; - private Date dueDate; + private LocalDate dueDate; public long getId() { return id; @@ -92,10 +91,15 @@ public class Task { } public void setDueDate(String dueDate) { - this.dueDate = Date.valueOf(dueDate); + try { + this.dueDate = LocalDate.parse(dueDate); + } + catch (Exception e){ + this.dueDate = LocalDate.now(); + } } - public Date getDueDate() { + public LocalDate getDueDate() { return dueDate; } diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java index 83e40de..ff9ae2f 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java @@ -9,9 +9,10 @@ import android.database.sqlite.SQLiteDatabase; import com.wismna.geoffroy.donext.R; import com.wismna.geoffroy.donext.dao.Task; +import org.joda.time.LocalDate; + import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Date; import java.util.ArrayList; import java.util.List; @@ -31,7 +32,8 @@ public class TaskDataAccess implements AutoCloseable { DatabaseHelper.COLUMN_ID, DatabaseHelper.TASKS_COLUMN_NAME, DatabaseHelper.TASKS_COLUMN_DESC, DatabaseHelper.TASKS_COLUMN_PRIORITY, DatabaseHelper.TASKS_COLUMN_CYCLE, DatabaseHelper.TASKS_COLUMN_DONE, - DatabaseHelper.TASKS_COLUMN_DELETED, DatabaseHelper.TASKS_COLUMN_LIST}; + DatabaseHelper.TASKS_COLUMN_DELETED, DatabaseHelper.TASKS_COLUMN_LIST, + DatabaseHelper.TASKS_COLUMN_DUEDATE}; private List priorities = new ArrayList<>(); public TaskDataAccess(Context context) { @@ -58,15 +60,16 @@ public class TaskDataAccess implements AutoCloseable { /** Adds or update a task in the database */ public Task createOrUpdateTask(long id, String name, String description, String priority, long taskList) { - return createOrUpdateTask(id, name, description, priority, taskList, new Date()); + return createOrUpdateTask(id, name, description, priority, taskList, LocalDate.now()); } - public Task createOrUpdateTask(long id, String name, String description, String priority, long taskList, Date date) { + public Task createOrUpdateTask(long id, String name, String description, String priority, long taskList, LocalDate date) { ContentValues values = new ContentValues(); values.put(DatabaseHelper.TASKS_COLUMN_NAME, name); values.put(DatabaseHelper.TASKS_COLUMN_DESC, description); values.put(DatabaseHelper.TASKS_COLUMN_PRIORITY, priorities.indexOf(priority)); values.put(DatabaseHelper.TASKS_COLUMN_LIST, taskList); DateFormat sdf = SimpleDateFormat.getDateInstance(); + //SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD", Locale.US); String dateString = sdf.format(date); values.put(DatabaseHelper.TASKS_COLUMN_DUEDATE, dateString); long insertId; @@ -85,6 +88,20 @@ public class TaskDataAccess implements AutoCloseable { return newTask; } + public int updateExpiredTasks(int action, long taskListId){ + String column = DatabaseHelper.TASKS_COLUMN_DELETED; + if (action == 1) + column = DatabaseHelper.TASKS_COLUMN_DONE; + else if (action == 2) + column = DatabaseHelper.TASKS_COLUMN_DELETED; + + ContentValues contentValues = new ContentValues(); + contentValues.put(column, 1); + return database.update(DatabaseHelper.TASKS_TABLE_NAME, contentValues, + DatabaseHelper.TASKS_COLUMN_DUEDATE + " < date('now','-1 day') " + + "AND " + DatabaseHelper.TASKS_COLUMN_LIST + " = " + taskListId, null); + } + public List getAllTasks(long id) { List tasks = new ArrayList<>(); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskListDataAccess.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskListDataAccess.java index aee0d4c..a0ad2b1 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskListDataAccess.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskListDataAccess.java @@ -15,7 +15,11 @@ import java.util.List; * Created by geoffroy on 15-11-25. * Data access class that handles Task Lists */ -public class TaskListDataAccess { +public class TaskListDataAccess implements AutoCloseable { + public enum MODE { + READ, + WRITE + } // Database fields private SQLiteDatabase database; private DatabaseHelper dbHelper; @@ -24,11 +28,16 @@ public class TaskListDataAccess { DatabaseHelper.COLUMN_ORDER, DatabaseHelper.TASKLIST_COLUMN_VISIBLE}; public TaskListDataAccess(Context context) { + this(context, MODE.READ); + } + public TaskListDataAccess(Context context, MODE writeMode) { dbHelper = new DatabaseHelper(context); + open(writeMode); } - public void open() throws SQLException { - database = dbHelper.getWritableDatabase(); + public void open(MODE writeMode) throws SQLException { + if (writeMode == MODE.WRITE) database = dbHelper.getWritableDatabase(); + else database = dbHelper.getReadableDatabase(); } public void close() { @@ -114,7 +123,7 @@ public class TaskListDataAccess { private Cursor getTaskListByNameCursor(String name) { return database.query(true, DatabaseHelper.TASKLIST_TABLE_NAME, taskListColumns, - DatabaseHelper.TASKLIST_COLUMN_NAME + " = '" + name + "'", null, null, null, null, null); + DatabaseHelper.TASKLIST_COLUMN_NAME + " = '" + name.replace("'", "''") + "'", null, null, null, null, null); } private Cursor getAllTaskListsCursor() { return database.rawQuery("SELECT *," + diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskDialogFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskDialogFragment.java index c853024..790887a 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskDialogFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskDialogFragment.java @@ -8,8 +8,10 @@ import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; +import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.DatePicker; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.Spinner; @@ -18,6 +20,8 @@ import com.wismna.geoffroy.donext.R; import com.wismna.geoffroy.donext.dao.Task; import com.wismna.geoffroy.donext.dao.TaskList; +import org.joda.time.LocalDate; + import java.util.List; /** @@ -33,7 +37,7 @@ public class TaskDialogFragment extends DialogFragment { /** The activity that creates an instance of this dialog fragment must * implement this interface in order to receive event callbacks. * Each method passes the DialogFragment in case the host needs to query it. */ - public interface NewTaskListener { + interface NewTaskListener { void onNewTaskDialogPositiveClick(DialogFragment dialog); void onNewTaskDialogNeutralClick(DialogFragment dialog); } @@ -76,6 +80,14 @@ public class TaskDialogFragment extends DialogFragment { } }); + // Get date picker + final DatePicker dueDatePicker = (DatePicker) view.findViewById(R.id.new_task_due_date); + // Disallow past dates + dueDatePicker.setMinDate(LocalDate.now().toDate().getTime()); + // TODO: set task due date + LocalDate dueDate = task.getDueDate(); + dueDatePicker.updateDate(dueDate.getYear(), dueDate.getMonthOfYear(), dueDate.getDayOfMonth()); + // Populate spinner with task lists Spinner spinner = (Spinner) view.findViewById(R.id.new_task_list); // Create an ArrayAdapter using the string array and a default spinner layout @@ -84,6 +96,19 @@ public class TaskDialogFragment extends DialogFragment { // Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + // Set due date + dueDatePicker.setEnabled(!taskLists.get(position).getName() + .equals(getString(R.string.task_list_today))); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); // Auto set list value to current tab Bundle args = getArguments(); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java index f394271..ca7422b 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java @@ -50,7 +50,7 @@ public class TaskListsFragment extends Fragment implements super.onCreate(savedInstanceState); taskListDataAccess = new TaskListDataAccess(getContext()); - taskListDataAccess.open(); + taskListDataAccess.open(TaskListDataAccess.MODE.WRITE); new GetTaskListsTask().execute(taskListDataAccess); } @@ -98,7 +98,7 @@ public class TaskListsFragment extends Fragment implements public void onResume() { super.onResume(); clearFocus(); - taskListDataAccess.open(); + taskListDataAccess.open(TaskListDataAccess.MODE.WRITE); } private void toggleVisibleCreateNewTaskListLayout(View view) { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java index 59ee42c..b9fcd9a 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java @@ -1,6 +1,5 @@ package com.wismna.geoffroy.donext.fragments; -import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.content.SharedPreferences; @@ -19,6 +18,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.CheckBox; +import android.widget.DatePicker; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; @@ -36,6 +36,8 @@ import com.wismna.geoffroy.donext.listeners.RecyclerItemClickListener; import com.wismna.geoffroy.donext.widgets.DividerItemDecoration; import com.wismna.geoffroy.donext.widgets.NoScrollingLayoutManager; +import org.joda.time.LocalDate; + /** * A fragment representing a list of Items. */ @@ -82,7 +84,6 @@ public class TasksFragment extends Fragment implements } } - @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -225,7 +226,6 @@ public class TasksFragment extends Fragment implements } }); snackbar.addCallback(new Snackbar.Callback() { - @SuppressLint("NewApi") @Override public void onDismissed(Snackbar snackbar, int event) { super.onDismissed(snackbar, event); @@ -288,7 +288,6 @@ public class TasksFragment extends Fragment implements } } - @SuppressLint("NewApi") @Override public void onNewTaskDialogPositiveClick(DialogFragment dialog) { // Get the dialog fragment @@ -303,6 +302,7 @@ public class TasksFragment extends Fragment implements EditText descText = (EditText) dialogView.findViewById(R.id.new_task_description); RadioGroup priorityGroup = (RadioGroup) dialogView.findViewById(R.id.new_task_priority); RadioButton priorityRadio = (RadioButton) dialogView.findViewById(priorityGroup.getCheckedRadioButtonId()); + DatePicker dueDatePicker = (DatePicker) dialogView.findViewById(R.id.new_task_due_date); TaskList taskList = (TaskList) listSpinner.getSelectedItem(); // Add the task to the database @@ -311,7 +311,8 @@ public class TasksFragment extends Fragment implements nameText.getText().toString(), descText.getText().toString(), priorityRadio.getText().toString(), - taskList.getId()); + taskList.getId(), + new LocalDate(dueDatePicker.getYear(), dueDatePicker.getMonth(), dueDatePicker.getDayOfMonth())); Bundle args = dialog.getArguments(); // Should never happen because we will have to be on this tab to open the dialog diff --git a/DoNExt/app/src/main/res/layout/fragment_task_form.xml b/DoNExt/app/src/main/res/layout/fragment_task_form.xml index 45363be..875f52a 100644 --- a/DoNExt/app/src/main/res/layout/fragment_task_form.xml +++ b/DoNExt/app/src/main/res/layout/fragment_task_form.xml @@ -4,13 +4,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:layout_marginStart="5dp" + android:layout_toEndOf="@id/new_task_list_label"> + android:textAppearance="?android:attr/textAppearanceLarge" + android:layout_below="@id/new_task_list_label"/> + android:inputType="text" + android:layout_below="@id/new_task_name_label"/> + android:textAppearance="?android:attr/textAppearanceLarge" + android:layout_below="@id/new_task_name" /> + android:lines="3" + android:layout_below="@id/new_task_description_label" /> + android:textAppearance="?android:attr/textAppearanceLarge" + android:layout_below="@id/new_task_description" /> + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_below="@id/new_task_priority_label" > - + + + \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values-fr/arrays.xml b/DoNExt/app/src/main/res/values-fr/arrays.xml index f0a1c98..2d3abf2 100644 --- a/DoNExt/app/src/main/res/values-fr/arrays.xml +++ b/DoNExt/app/src/main/res/values-fr/arrays.xml @@ -1,7 +1,11 @@ + + Simple + Détaillée + - Terminé - Supprimé + Terminer + Supprimer \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values-fr/strings.xml b/DoNExt/app/src/main/res/values-fr/strings.xml index b737bdb..a77aada 100644 --- a/DoNExt/app/src/main/res/values-fr/strings.xml +++ b/DoNExt/app/src/main/res/values-fr/strings.xml @@ -29,12 +29,8 @@ Confirmation sur suivant Confirmation sur terminé Changer l\'état de la tâche en - Nombre de listes maximum: - Apparence des tâches: - - Simple - Détaillée - + Nombre de listes maximum + Apparence des tâches supprimée terminée suivante @@ -69,4 +65,5 @@ Aujourd\'hui Le nom \"Aujourd\'hui\" est réservé. Vous pouvez activer la liste Aujourd\'hui dans les paramètres. Action à entreprendre à la fin de la journée: + Date de fin \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values/strings.xml b/DoNExt/app/src/main/res/values/strings.xml index 754fa53..f520888 100644 --- a/DoNExt/app/src/main/res/values/strings.xml +++ b/DoNExt/app/src/main/res/values/strings.xml @@ -68,9 +68,9 @@ Confirm on next? Confirm on done? Confirm on delete? - Task layout: + Task layout - Maximum number of lists: + Maximum number of lists TaskListActivity @@ -83,4 +83,5 @@ Today Name \"Today\" is reserved. You may activate the Today list from the Settings. Action at the end of the day + Due date diff --git a/DoNExt/app/src/main/res/xml/preferences.xml b/DoNExt/app/src/main/res/xml/preferences.xml index 673dd44..0a60721 100644 --- a/DoNExt/app/src/main/res/xml/preferences.xml +++ b/DoNExt/app/src/main/res/xml/preferences.xml @@ -50,7 +50,7 @@ android:entries="@array/settings_today_actions" android:entryValues="@array/settings_today_action_values" android:summary="%s" - android:defaultValue="0" /> + android:defaultValue="2" /> \ No newline at end of file diff --git a/DoNExt/build.gradle b/DoNExt/build.gradle index 74b2ab0..1ea4bd0 100644 --- a/DoNExt/build.gradle +++ b/DoNExt/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:2.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/DoNExt/gradle/wrapper/gradle-wrapper.properties b/DoNExt/gradle/wrapper/gradle-wrapper.properties index a52842d..683b18f 100644 --- a/DoNExt/gradle/wrapper/gradle-wrapper.properties +++ b/DoNExt/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Sep 09 18:19:32 EDT 2016 +#Wed Mar 15 12:45:45 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip