Skip to content

Commit 04392ac

Browse files
committed
Add concurrency module
1 parent 198df8e commit 04392ac

42 files changed

Lines changed: 570 additions & 150 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/src/main/java/com/example/cleannetkit/CreateTodoActivity.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import com.example.cleannetkit.domain.model.Todo;
1010
import com.example.cleannetkit.domain.todo.CreateTodoUseCase;
1111

12-
import lib.net.CancellableFuture;
12+
import lib.concurrent.CancellableFuture;
1313
import lib.net.HttpException;
1414
import lib.net.NetworkManager;
1515

@@ -24,12 +24,10 @@ public class CreateTodoActivity extends AppCompatActivity {
2424
private TextView tvStatus;
2525

2626
private CancellableFuture<Todo> future;
27-
2827
@Override
2928
protected void onCreate(Bundle b) {
3029
super.onCreate(b);
3130
setContentView(R.layout.activity_create_todo);
32-
3331
etUserId = findViewById(R.id.etUserId);
3432
etTitle = findViewById(R.id.etTitle);
3533
cbCompleted = findViewById(R.id.cbCompleted);
@@ -49,21 +47,24 @@ protected void onCreate(Bundle b) {
4947
String title = etTitle.getText().toString().trim();
5048
boolean completed = cbCompleted.isChecked();
5149

50+
5251
if (userId == null || title.isEmpty()) {
5352
tvStatus.setText("UserId ve Title gerekli.");
5453
btnCreate.setEnabled(true);
5554
progress.setVisibility(View.GONE);
5655
return;
5756
}
5857

59-
Todo todo = new Todo( userId, title, completed);
58+
Todo todo
59+
= new Todo( userId, title, completed);
6060

6161
NetworkManager nm = MyApplication.getNetworkManager();
6262
CreateTodoService svc = new CreateTodoService(nm);
6363

6464
future = svc.handle(new CreateTodoUseCase.Command(todo));
6565
future.thenAccept(created -> {
66-
tvStatus.setText("Created ✅ id=" + (created == null ? "-" : created.getId()));
66+
tvStatus.setText("Created ✅ id=" + (created == null ?
67+
"-" : created.getId()));
6768
btnCreate.setEnabled(true);
6869
progress.setVisibility(View.GONE);
6970
}).exceptionally(ex -> {
@@ -76,7 +77,8 @@ protected void onCreate(Bundle b) {
7677
}
7778

7879
private void handleErr(Throwable ex) {
79-
Throwable cause = (ex.getCause() != null) ? ex.getCause() : ex;
80+
Throwable cause = (ex.getCause() != null) ?
81+
ex.getCause() : ex;
8082
if (cause instanceof CancellationException) return;
8183
if (cause instanceof HttpException) {
8284
HttpException he = (HttpException) cause;
@@ -87,12 +89,13 @@ private void handleErr(Throwable ex) {
8789
}
8890

8991
private Integer parseInt(String s) {
90-
try { return Integer.parseInt(s); } catch (Exception e) { return null; }
92+
try { return Integer.parseInt(s);
93+
} catch (Exception e) { return null; }
9194
}
9295

9396
@Override
9497
protected void onDestroy() {
9598
if (future != null) future.cancel(true);
9699
super.onDestroy();
97100
}
98-
}
101+
}

app/src/main/java/com/example/cleannetkit/DeleteTodoActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.example.cleannetkit.application.service.todo.DeleteTodoService;
99
import com.example.cleannetkit.domain.todo.DeleteTodoUseCase;
1010

11-
import lib.net.CancellableFuture;
11+
import lib.concurrent.CancellableFuture;
1212
import lib.net.HttpException;
1313
import lib.net.NetworkManager;
1414

app/src/main/java/com/example/cleannetkit/GetTodosActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import java.util.List;
2121
import java.util.concurrent.CancellationException;
2222

23-
import lib.net.CancellableFuture;
23+
import lib.concurrent.CancellableFuture;
2424
import lib.net.HttpException;
2525
import lib.net.NetworkManager;
2626

app/src/main/java/com/example/cleannetkit/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import java.util.concurrent.CancellationException;
3939
import java.util.concurrent.atomic.AtomicInteger;
4040

41-
import lib.net.CancellableFuture;
41+
import lib.concurrent.CancellableFuture;
4242
import lib.net.HttpException;
4343
import lib.net.NetworkManager;
4444

app/src/main/java/com/example/cleannetkit/TodoParallelDemoActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import java.util.concurrent.CancellationException;
2121
import java.util.concurrent.atomic.AtomicInteger;
2222

23-
import lib.net.CancellableFuture;
23+
import lib.concurrent.CancellableFuture;
2424
import lib.net.HttpException;
2525
import lib.net.NetworkManager;
2626

app/src/main/java/com/example/cleannetkit/UpdateTodoActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import com.example.cleannetkit.domain.todo.GetTodoUseCase;
1212
import com.example.cleannetkit.domain.todo.UpdateTodoUseCase;
1313

14-
import lib.net.CancellableFuture;
14+
import lib.concurrent.CancellableFuture;
1515
import lib.net.HttpException;
1616
import lib.net.NetworkManager;
1717

app/src/main/java/com/example/cleannetkit/application/api/PostsApi.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// com/example/cleannetkit/application/api/PostsApi.java
21
package com.example.cleannetkit.application.api;
32

43
import com.example.cleannetkit.data.remote.dto.CommentDto;
@@ -12,8 +11,8 @@
1211
import java.util.List;
1312
import java.util.Map;
1413

14+
import lib.concurrent.CancellableFuture;
1515
import lib.net.ABaseApi;
16-
import lib.net.CancellableFuture;
1716
import lib.net.NetworkManager;
1817
import lib.net.command.ACommand;
1918
import lib.net.command.DeleteCommand;
@@ -29,8 +28,10 @@ public class PostsApi extends ABaseApi {
2928
private static final String BASE_URL = "https://jsonplaceholder.typicode.com";
3029
private static final Gson GSON = new Gson();
3130

32-
public PostsApi(NetworkManager nm) { super(BASE_URL, nm); }
33-
public PostsApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc); }
31+
public PostsApi(NetworkManager nm) { super(BASE_URL, nm);
32+
}
33+
public PostsApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc);
34+
}
3435

3536
/* READ */
3637
public CancellableFuture<List<PostDto>> getPostsDtoF() {
@@ -97,4 +98,4 @@ public CancellableFuture<Void> deletePostF(int id) {
9798
ACommand cmd = new DeleteCommand("/posts/" + id, null, null);
9899
return send(cmd, t);
99100
}
100-
}
101+
}

app/src/main/java/com/example/cleannetkit/application/api/TodoApi.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// com/example/cleannetkit/application/api/TodoApi.java
21
package com.example.cleannetkit.application.api;
32

43
import com.example.cleannetkit.data.remote.dto.TodoDto;
@@ -11,8 +10,8 @@
1110
import java.util.List;
1211
import java.util.Map;
1312

13+
import lib.concurrent.CancellableFuture;
1414
import lib.net.ABaseApi;
15-
import lib.net.CancellableFuture;
1615
import lib.net.NetworkManager;
1716
import lib.net.command.ACommand;
1817
import lib.net.command.DeleteCommand;
@@ -22,14 +21,15 @@
2221
import lib.net.command.PutCommand;
2322
import lib.net.strategy.RequestConfigurator;
2423
import lib.net.strategy.retry.PayloadSensitiveRetryPolicy;
25-
2624
public class TodoApi extends ABaseApi {
2725

2826
private static final String BASE_URL = "https://jsonplaceholder.typicode.com";
2927
private static final Gson GSON = new Gson();
3028

31-
public TodoApi(NetworkManager nm) { super(BASE_URL, nm); }
32-
public TodoApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc); }
29+
public TodoApi(NetworkManager nm) { super(BASE_URL, nm);
30+
}
31+
public TodoApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc);
32+
}
3333

3434
/* READ */
3535
public CancellableFuture<List<TodoDto>> getTodosDtoF() {
@@ -88,4 +88,4 @@ public CancellableFuture<TodoDto> getTodoByIdDtoF(int id) {
8888
ACommand cmd = new GetCommand("/todos/" + id, null, null);
8989
return send(cmd, t);
9090
}
91-
}
91+
}
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// com/example/cleannetkit/application/api/UploadApi.java
21
package com.example.cleannetkit.application.api;
32

43
import com.google.gson.reflect.TypeToken;
@@ -7,19 +6,21 @@
76
import java.util.HashMap;
87
import java.util.Map;
98

9+
import lib.concurrent.CancellableFuture;
1010
import lib.net.ABaseApi;
11-
import lib.net.CancellableFuture;
1211
import lib.net.NetworkManager;
1312
import lib.net.command.MultipartCommand;
1413
import lib.net.strategy.RequestConfigurator;
1514
import lib.net.strategy.retry.PayloadSensitiveRetryPolicy;
16-
1715
public class UploadApi extends ABaseApi {
1816

19-
private static final String BASE_URL = "https://example.com"; // kendi endpoint’in
17+
private static final String BASE_URL = "https://example.com";
18+
// kendi endpoint’in
2019

21-
public UploadApi(NetworkManager nm) { super(BASE_URL, nm); }
22-
public UploadApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc); }
20+
public UploadApi(NetworkManager nm) { super(BASE_URL, nm);
21+
}
22+
public UploadApi(NetworkManager nm, RequestConfigurator rc) { super(BASE_URL, nm, rc);
23+
}
2324

2425
public static class UploadResponse {
2526
public String id;
@@ -28,6 +29,7 @@ public static class UploadResponse {
2829

2930
public CancellableFuture<UploadResponse> uploadProfile(File file,
3031
Map<String,String> fields,
32+
3133
Map<String,String> headers) {
3234
Type t = new TypeToken<UploadResponse>() {}.getType();
3335
MultipartCommand cmd = new MultipartCommand(
@@ -36,20 +38,19 @@ public CancellableFuture<UploadResponse> uploadProfile(File file,
3638
toHash(fields),
3739
toHashFile("file", file)
3840
);
39-
4041
long bytes = cmd.estimatePayloadBytes();
4142
// KURAL: büyük upload’larda retry yok
4243
cmd.withRetryPolicy(new PayloadSensitiveRetryPolicy(bytes, /*maxRetriesForLarge*/ 0));
43-
4444
return send(cmd, t);
4545
}
4646

4747
private static HashMap<String,String> toHash(Map<String,String> m){
48-
return (m == null || m instanceof HashMap) ? (HashMap<String,String>) m : new HashMap<>(m);
48+
return (m == null || m instanceof HashMap) ?
49+
(HashMap<String,String>) m : new HashMap<>(m);
4950
}
5051
private static HashMap<String,File> toHashFile(String name, File f){
5152
HashMap<String,File> map = new HashMap<>();
5253
if (f != null) map.put(name, f);
5354
return map;
5455
}
55-
}
56+
}

app/src/main/java/com/example/cleannetkit/application/service/posts/CreatePostService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.example.cleannetkit.domain.model.Post;
88
import com.example.cleannetkit.domain.posts.CreatePostUseCase;
99

10-
import lib.net.CancellableFuture;
10+
import lib.concurrent.CancellableFuture;
1111
import lib.net.NetworkManager;
1212

1313
public class CreatePostService implements CreatePostUseCase {
@@ -20,4 +20,4 @@ public CancellableFuture<Post> handle(Command command) {
2020
return api.createPostDtoF(dto)
2121
.thenApplyC(PostMapper::toDomain);
2222
}
23-
}
23+
}

0 commit comments

Comments
 (0)