This repository has been archived by the owner on Dec 9, 2023. It is now read-only.
/
AndroidApiClient.java
87 lines (68 loc) · 3.15 KB
/
AndroidApiClient.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package mediabrowser.apiinteraction.android;
import android.os.AsyncTask;
import mediabrowser.apiinteraction.ApiClient;
import mediabrowser.apiinteraction.ApiEventListener;
import mediabrowser.apiinteraction.Response;
import mediabrowser.apiinteraction.ResponseStreamInfo;
import mediabrowser.apiinteraction.device.IDevice;
import mediabrowser.apiinteraction.http.IAsyncHttpClient;
import mediabrowser.apiinteraction.tasks.CancellationToken;
import mediabrowser.apiinteraction.tasks.IProgress;
import mediabrowser.model.devices.LocalFileInfo;
import mediabrowser.model.logging.ILogger;
import mediabrowser.model.serialization.IJsonSerializer;
import mediabrowser.model.session.ClientCapabilities;
import com.android.volley.toolbox.ImageLoader;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
public class AndroidApiClient extends ApiClient {
public AndroidApiClient(IAsyncHttpClient httpClient, IJsonSerializer jsonSerializer, ILogger logger, String serverAddress, String accessToken, ApiEventListener apiEventListener) {
super(httpClient, jsonSerializer, logger, serverAddress, accessToken, apiEventListener);
}
public AndroidApiClient(IAsyncHttpClient httpClient, IJsonSerializer jsonSerializer, ILogger logger, String serverAddress, String clientName, IDevice device, String applicationVersion, ApiEventListener apiEventListener) {
super(httpClient, jsonSerializer, logger, serverAddress, clientName, applicationVersion, device, apiEventListener);
}
private VolleyHttpClient getAndroidHttpClient(){
return (VolleyHttpClient)httpClient;
}
public ImageLoader getImageLoader() {
return getAndroidHttpClient().getImageLoader();
}
@Override
public void UploadFile(FileInputStream fileInputStream,
LocalFileInfo file,
IProgress<Double> progress,
CancellationToken cancellationToken) throws IOException {
Thread thread = new Thread(new UploadFileRunnable(this, fileInputStream, file, progress, cancellationToken));
thread.start();
}
void PerformUploadFile(FileInputStream fileInputStream,
LocalFileInfo file,
IProgress<Double> progress,
CancellationToken cancellationToken) throws IOException {
UploadFileInternal(fileInputStream, file, progress, cancellationToken);
}
@Override
public void getResponseStream(final String address, final Response<ResponseStreamInfo> response){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
getResponseStreamInternal(address, response);
}
});
thread.start();
}
@Override
protected void detectBitrate(final long downloadBytes, final Response<Long> response) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
detectBitrateInternal(downloadBytes, response);
}
});
thread.start();
}
}