Skip to content

Commit b93f22b

Browse files
authored
Merge pull request #46 from levibostian/fix-0.2.0
Fix RuntimeException while deleting SQLite database.
2 parents f9c40d4 + 5593c4a commit b93f22b

File tree

11 files changed

+108
-35
lines changed

11 files changed

+108
-35
lines changed
0 Bytes
Binary file not shown.

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
### [0.2.1-alpha] 2018-06-11
2+
3+
### Fixed
4+
- Fix RuntimeException while deleting SQLite database.
5+
6+
### Added
7+
- Wendy `.clear()` has an async and sync version.
8+
- **Breaking Change** `Wendy.clear()` has been renamed to `Wendy.clearAsync()`. `Wendy.clear()` is the synchronous version now.
9+
110
### [0.2.0-alpha] 2018-06-11
211

312
### Added

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ fun createNewGroceryStoreItem(itemName: String) {
183183

184184
Done! Wendy takes care of all the rest. Wendy will try to run your task right away but if you're offline or in a spotty Internet connection, Wendy will wait and try again later.
185185

186+
Oh, and lastly. If your user decides to logout of your app and you want to delete all of Wendy's data, you can do so via `Wendy.shared.clear()` or `Wendy.shared.clearAsync()`.
187+
186188
There is a document on [best practices when using Wendy](BEST_PRACTICES.md). Check that out to answer your questions you have about why Wendy works the way that it does.
187189

188190
## Example app

app/src/main/java/com/levibostian/wendyexample/MainActivity.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.levibostian.wendy.service.Wendy
1616
import com.levibostian.wendy.types.ReasonPendingTaskSkipped
1717
import com.levibostian.wendyexample.extension.closeKeyboard
1818
import kotlinx.android.synthetic.main.activity_main.*
19+
import java.util.*
1920

2021
class MainActivity : AppCompatActivity(), TaskRunnerListener {
2122

@@ -48,9 +49,17 @@ class MainActivity : AppCompatActivity(), TaskRunnerListener {
4849
}
4950
activity_main_clear_all_data_button.setOnClickListener {
5051
Toast.makeText(this, "Clearing data...", Toast.LENGTH_SHORT).show()
51-
Wendy.shared.clear {
52+
53+
// This way we can test both the async and sync version.
54+
if (Random().nextFloat() >= 0.5f) {
55+
Wendy.shared.clear()
5256
refreshListOfTasks()
53-
Toast.makeText(this, "Data cleared!", Toast.LENGTH_SHORT).show()
57+
Toast.makeText(this, "Data cleared (sync)!", Toast.LENGTH_SHORT).show()
58+
} else {
59+
Wendy.shared.clearAsync {
60+
refreshListOfTasks()
61+
Toast.makeText(this, "Data cleared (async)!", Toast.LENGTH_SHORT).show()
62+
}
5463
}
5564
}
5665

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<HTML>
2+
<HEAD>
3+
<meta charset="UTF-8">
4+
<title>Wendy.clearAsync - wendy</title>
5+
<link rel="stylesheet" href="../../../style.css">
6+
</HEAD>
7+
<BODY>
8+
<a href="../../index.html">wendy</a>&nbsp;/&nbsp;<a href="../index.html">com.levibostian.wendy.service</a>&nbsp;/&nbsp;<a href="index.html">Wendy</a>&nbsp;/&nbsp;<a href="./clear-async.html">clearAsync</a><br/>
9+
<br/>
10+
<h1>clearAsync</h1>
11+
<a name="com.levibostian.wendy.service.Wendy$clearAsync(kotlin.Function0((kotlin.Unit)))"></a>
12+
<code><span class="keyword">fun </span><span class="identifier">clearAsync</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clearAsync(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
13+
<p>Async version of <a href="clear.html">clear</a>.</p>
14+
<p><strong>See Also</strong><br/>
15+
<p><a href="clear.html">clear</a></p>
16+
</p>
17+
</BODY>
18+
</HTML>

docs/wendy/com.levibostian.wendy.service/-wendy/clear.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
<a href="../../index.html">wendy</a>&nbsp;/&nbsp;<a href="../index.html">com.levibostian.wendy.service</a>&nbsp;/&nbsp;<a href="index.html">Wendy</a>&nbsp;/&nbsp;<a href="./clear.html">clear</a><br/>
99
<br/>
1010
<h1>clear</h1>
11-
<a name="com.levibostian.wendy.service.Wendy$clear(kotlin.Function0((kotlin.Unit)))"></a>
12-
<code><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clear(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
11+
<a name="com.levibostian.wendy.service.Wendy$clear()"></a>
12+
<code><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
1313
<p>Stop the task runner and clear all of the <a href="../-pending-task/index.html">PendingTask</a>s added to Wendy.</p>
1414
<p>This function was written with the intention of using when a user of your app is logged out and you want to clear all of the data associated with that user.</p>
15-
<p>This function will stop the task runner any tasks, deletes all of the data from the task database, and deletes all the data stored in</p>
15+
<p>This function will stop the task runner any tasks, deletes all of the data from the task database, and deletes all the data stored in SharedPreferences.</p>
16+
<p><strong>See Also</strong><br/>
17+
<p><a href="clear-async.html">clearAsync</a></p>
18+
</p>
1619
</BODY>
1720
</HTML>

docs/wendy/com.levibostian.wendy.service/-wendy/index.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,21 @@ <h3>Functions</h3>
2727
<p><a href="clear.html">clear</a></p>
2828
</td>
2929
<td>
30-
<code><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clear(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
30+
<code><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
3131
<p>Stop the task runner and clear all of the <a href="../-pending-task/index.html">PendingTask</a>s added to Wendy.</p>
3232
</td>
3333
</tr>
3434
<tr>
3535
<td>
36+
<p><a href="clear-async.html">clearAsync</a></p>
37+
</td>
38+
<td>
39+
<code><span class="keyword">fun </span><span class="identifier">clearAsync</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clearAsync(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></code>
40+
<p>Async version of <a href="clear.html">clear</a>.</p>
41+
</td>
42+
</tr>
43+
<tr>
44+
<td>
3645
<p><a href="debug.html">debug</a></p>
3746
</td>
3847
<td>

docs/wendy/index-outline.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@
220220
</HEAD>
221221
<BODY>
222222
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/add-task.html"><span class="keyword">fun </span><span class="identifier">addTask</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$addTask(com.levibostian.wendy.service.PendingTask, kotlin.Boolean)/pendingTask">pendingTask</span><span class="symbol">:</span>&nbsp;<a href="com.levibostian.wendy.service/-pending-task/index.html"><span class="identifier">PendingTask</span></a><span class="symbol">, </span><span class="identifier" id="com.levibostian.wendy.service.Wendy$addTask(com.levibostian.wendy.service.PendingTask, kotlin.Boolean)/resolveErrorIfTaskExists">resolveErrorIfTaskExists</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;true<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a></a></a><br/>
223-
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear.html"><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clear(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
223+
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear.html"><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
224+
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear-async.html"><span class="keyword">fun </span><span class="identifier">clearAsync</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clearAsync(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
224225
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/debug.html"><span class="keyword">fun </span><span class="identifier">debug</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$debug(kotlin.Boolean)/enableDebug">enableDebug</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">)</span><span class="symbol">: </span><a href="com.levibostian.wendy.service/-wendy/index.html"><span class="identifier">Wendy</span></a></a></a><br/>
225226
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/does-error-exist.html"><span class="keyword">fun </span><span class="identifier">doesErrorExist</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$doesErrorExist(kotlin.Long)/taskId">taskId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></a></a><br/>
226227
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/get-all-errors.html"><span class="keyword">fun </span><span class="identifier">getAllErrors</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="com.levibostian.wendy.db/-pending-task-error/index.html"><span class="identifier">PendingTaskError</span></a><span class="symbol">&gt;</span></a></a><br/>
@@ -445,7 +446,8 @@
445446
</HEAD>
446447
<BODY>
447448
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/add-task.html"><span class="keyword">fun </span><span class="identifier">addTask</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$addTask(com.levibostian.wendy.service.PendingTask, kotlin.Boolean)/pendingTask">pendingTask</span><span class="symbol">:</span>&nbsp;<a href="com.levibostian.wendy.service/-pending-task/index.html"><span class="identifier">PendingTask</span></a><span class="symbol">, </span><span class="identifier" id="com.levibostian.wendy.service.Wendy$addTask(com.levibostian.wendy.service.PendingTask, kotlin.Boolean)/resolveErrorIfTaskExists">resolveErrorIfTaskExists</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;true<span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a></a></a><br/>
448-
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear.html"><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clear(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
449+
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear.html"><span class="keyword">fun </span><span class="identifier">clear</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
450+
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/clear-async.html"><span class="keyword">fun </span><span class="identifier">clearAsync</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$clearAsync(kotlin.Function0((kotlin.Unit)))/complete">complete</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a><span class="symbol">?</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html"><span class="identifier">Unit</span></a></a></a><br/>
449451
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/debug.html"><span class="keyword">fun </span><span class="identifier">debug</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$debug(kotlin.Boolean)/enableDebug">enableDebug</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a>&nbsp;<span class="symbol">=</span>&nbsp;false<span class="symbol">)</span><span class="symbol">: </span><a href="com.levibostian.wendy.service/-wendy/index.html"><span class="identifier">Wendy</span></a></a></a><br/>
450452
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/does-error-exist.html"><span class="keyword">fun </span><span class="identifier">doesErrorExist</span><span class="symbol">(</span><span class="identifier" id="com.levibostian.wendy.service.Wendy$doesErrorExist(kotlin.Long)/taskId">taskId</span><span class="symbol">:</span>&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html"><span class="identifier">Long</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html"><span class="identifier">Boolean</span></a></a></a><br/>
451453
<a href="docs/wendy/index"><a href="com.levibostian.wendy.service/-wendy/get-all-errors.html"><span class="keyword">fun </span><span class="identifier">getAllErrors</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html"><span class="identifier">List</span></a><span class="symbol">&lt;</span><a href="com.levibostian.wendy.db/-pending-task-error/index.html"><span class="identifier">PendingTaskError</span></a><span class="symbol">&gt;</span></a></a><br/>

wendy/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ android {
1515
minSdkVersion 16
1616
targetSdkVersion 28
1717
versionCode 1
18-
versionName "0.2.0-alpha"
18+
versionName "0.2.1-alpha"
1919

2020
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2121
}

wendy/src/main/java/com/levibostian/wendy/db/PendingTasksManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ internal class PendingTasksManager(private val context: Context) {
232232

233233
@Synchronized
234234
internal fun clear() {
235-
if (!context.deleteDatabase(PendingTasksDatabaseHelper.DATABASE_NAME)) throw RuntimeException("Wendy database did not delete successfully.")
235+
context.deleteDatabase(PendingTasksDatabaseHelper.DATABASE_NAME)
236236
}
237237

238238
}

0 commit comments

Comments
 (0)