Skip to content

Commit 152c926

Browse files
author
Karl Rieb
committed
2.0-beta-6 release.
1 parent 162878a commit 152c926

File tree

516 files changed

+70663
-65289
lines changed

Some content is hidden

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

516 files changed

+70663
-65289
lines changed

ChangeLog.txt

+23
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
2+
---------------------------------------------
3+
2.0-beta-6 (2016-02-22)
4+
- Updated to latest API specs.
5+
- Use getter methods instead of public final fields.
6+
- Rename exception classes to be consistent with Java practices (e.g. end in "Exception").
7+
- Move DbxException inner classes out into their own files.
8+
- Expose Retry-After backoff for rate limiting exceptions.
9+
- Add configuration setting for automatically retrying failed requests.
10+
- Fix bug that hid certain routes containing union request arguments.
11+
- Add new Java packages for v2 client.
12+
- Break out v2 nested classes into their own files in the appropriate packages.
13+
- Change format of builder methods.
14+
- Prepend 'with' to method names
15+
- Change format of tagged union classes.
16+
- getTag() renamed to tag() to avoid naming conflicts
17+
- Tags without values now referenced as public static final singletons
18+
- Unions of value-less tags generated as enums
19+
- Add builders for request and response classes.
20+
- Fix deserialization bug with Union containing tags with optional values.
21+
- Make read timeouts more easily configurable for StandardHttpRequestor.
22+
- Add longpoll example.
23+
- Separate integration tests from unit tests and enable unit tests by default.
124
- Fix android example bugs and linter warnings
225
- Fix compilation error
326
- Fix upload failure bug

ReadMe.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ If you're using Maven, then edit your project's "pom.xml" and add this to the `<
1414
<dependency>
1515
<groupId>com.dropbox.core</groupId>
1616
<artifactId>dropbox-core-sdk</artifactId>
17-
<version>2.0-beta-5</version>
17+
<version>2.0-beta-6</version>
1818
</dependency>
1919
```
2020

2121
If you aren't using Maven, here are the JARs you need:
22-
- [Dropbox Core SDK 2.0-beta-5](https://oss.sonatype.org/content/repositories/releases/com/dropbox/core/dropbox-core-sdk/2.0-beta-5/dropbox-core-sdk-2.0-beta-5.jar)
22+
- [Dropbox Core SDK 2.0-beta-6](https://oss.sonatype.org/content/repositories/releases/com/dropbox/core/dropbox-core-sdk/2.0-beta-6/dropbox-core-sdk-2.0-beta-6.jar)
2323
- [Jackson Core 2.6.1](https://oss.sonatype.org/content/repositories/releases/com/fasterxml/jackson/core/jackson-core/2.6.1/jackson-core-2.6.1.jar) (JSON parser)
2424

2525
## Get a Dropbox API key
@@ -103,12 +103,12 @@ cd examples
103103
./run web-file-browser 5000 test.app web-file-browser.db
104104
```
105105

106-
## Running the tests
106+
## Running the integration tests
107107

108108
1. Run through the `authorize` example above to get a "test.auth" file.
109-
2. `./run-tests <path-to-test.auth>`
109+
2. `./run-integration-tests <path-to-test.auth>`
110110

111-
Run `./run-tests` with no arguments to see how to run individual tests.
111+
Run `./run-integration-tests` with no arguments to see how to run individual tests.
112112

113113
## Running the benchmarks
114114

examples/account-info/src/com/dropbox/core/examples/account_info/Main.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.dropbox.core.DbxWebAuth;
77
import com.dropbox.core.json.JsonReader;
88
import com.dropbox.core.v2.DbxClientV2;
9-
import com.dropbox.core.v2.DbxUsers;
9+
import com.dropbox.core.v2.users.FullAccount;
1010

1111
import java.io.IOException;
1212
import java.util.Locale;
@@ -57,10 +57,10 @@ public static void main(String[] args)
5757
// Create a DbxClientV1, which is what you use to make API calls.
5858
String userLocale = Locale.getDefault().toString();
5959
DbxRequestConfig requestConfig = new DbxRequestConfig("examples-account-info", userLocale);
60-
DbxClientV2 dbxClient = new DbxClientV2(requestConfig, authInfo.accessToken, authInfo.host);
60+
DbxClientV2 dbxClient = new DbxClientV2(requestConfig, authInfo.getAccessToken(), authInfo.getHost());
6161

6262
// Make the /account/info API call.
63-
DbxUsers.FullAccount dbxAccountInfo;
63+
FullAccount dbxAccountInfo;
6464
try {
6565
dbxAccountInfo = dbxClient.users.getCurrentAccount();
6666
}

examples/android/src/main/java/com/dropbox/core/examples/android/DownloadFileTask.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import com.dropbox.core.DbxException;
1010
import com.dropbox.core.v2.DbxClientV2;
11-
import com.dropbox.core.v2.DbxFiles;
11+
import com.dropbox.core.v2.files.FileMetadata;
1212

1313
import java.io.File;
1414
import java.io.FileOutputStream;
@@ -18,7 +18,7 @@
1818
/**
1919
* Task to download a file from Dropbox and put it in the Downloads folder
2020
*/
21-
class DownloadFileTask extends AsyncTask<DbxFiles.FileMetadata, Void, File> {
21+
class DownloadFileTask extends AsyncTask<FileMetadata, Void, File> {
2222

2323
private final Context mContext;
2424
private final DbxClientV2 mDbxClient;
@@ -47,12 +47,12 @@ protected void onPostExecute(File result) {
4747
}
4848

4949
@Override
50-
protected File doInBackground(DbxFiles.FileMetadata... params) {
51-
DbxFiles.FileMetadata metadata = params[0];
50+
protected File doInBackground(FileMetadata... params) {
51+
FileMetadata metadata = params[0];
5252
try {
5353
File path = Environment.getExternalStoragePublicDirectory(
5454
Environment.DIRECTORY_DOWNLOADS);
55-
File file = new File(path, metadata.name);
55+
File file = new File(path, metadata.getName());
5656

5757
// Make sure the Downloads directory exists.
5858
if (!path.exists()) {
@@ -64,10 +64,10 @@ protected File doInBackground(DbxFiles.FileMetadata... params) {
6464
return null;
6565
}
6666

67-
// Upload the file.
67+
// Download the file.
6868
try (OutputStream outputStream = new FileOutputStream(file)) {
69-
mDbxClient.files.downloadBuilder(metadata.pathLower).
70-
rev(metadata.rev).run(outputStream);
69+
mDbxClient.files.download(metadata.getPathLower(), metadata.getRev())
70+
.download(outputStream);
7171
}
7272

7373
// Tell android about the file

examples/android/src/main/java/com/dropbox/core/examples/android/DropboxClientFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ public static void init(String accessToken) {
2020
DbxRequestConfig requestConfig = new DbxRequestConfig(
2121
"examples-v2-demo",
2222
userLocale,
23-
OkHttpRequestor.Instance);
23+
OkHttpRequestor.INSTANCE);
2424

25-
sDbxClient = new DbxClientV2(requestConfig, accessToken, DbxHost.Default);
25+
sDbxClient = new DbxClientV2(requestConfig, accessToken);
2626
}
2727
}
2828

examples/android/src/main/java/com/dropbox/core/examples/android/FileThumbnailRequestHandler.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import com.dropbox.core.DbxDownloader;
66
import com.dropbox.core.DbxException;
77
import com.dropbox.core.v2.DbxClientV2;
8-
import com.dropbox.core.v2.DbxFiles;
8+
import com.dropbox.core.v2.files.FileMetadata;
9+
import com.dropbox.core.v2.files.ThumbnailFormat;
10+
import com.dropbox.core.v2.files.ThumbnailSize;
911
import com.squareup.picasso.Picasso;
1012
import com.squareup.picasso.Request;
1113
import com.squareup.picasso.RequestHandler;
@@ -30,11 +32,11 @@ public FileThumbnailRequestHandler(DbxClientV2 dbxClient) {
3032
/**
3133
* Builds a {@link Uri} for a Dropbox file thumbnail suitable for handling by this handler
3234
*/
33-
public static Uri buildPicassoUri(DbxFiles.FileMetadata file) {
35+
public static Uri buildPicassoUri(FileMetadata file) {
3436
return new Uri.Builder()
3537
.scheme(SCHEME)
3638
.authority(HOST)
37-
.path(file.pathLower).build();
39+
.path(file.getPathLower()).build();
3840
}
3941

4042
@Override
@@ -46,13 +48,13 @@ public boolean canHandleRequest(Request data) {
4648
public Result load(Request request, int networkPolicy) throws IOException {
4749

4850
try {
49-
DbxDownloader<DbxFiles.FileMetadata> downloader =
51+
DbxDownloader<FileMetadata> downloader =
5052
mDbxClient.files.getThumbnailBuilder(request.uri.getPath())
51-
.format(DbxFiles.ThumbnailFormat.jpeg())
52-
.size(DbxFiles.ThumbnailSize.w1024h768())
53+
.withFormat(ThumbnailFormat.JPEG)
54+
.withSize(ThumbnailSize.W1024H768)
5355
.start();
5456

55-
return new Result(downloader.body, Picasso.LoadedFrom.NETWORK);
57+
return new Result(downloader.getInputStream(), Picasso.LoadedFrom.NETWORK);
5658
} catch (DbxException e) {
5759
throw new IOException(e);
5860
}

examples/android/src/main/java/com/dropbox/core/examples/android/FilesActivity.java

+13-11
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import android.webkit.MimeTypeMap;
2323
import android.widget.Toast;
2424

25-
import com.dropbox.core.v2.DbxFiles;
25+
import com.dropbox.core.v2.files.FileMetadata;
26+
import com.dropbox.core.v2.files.FolderMetadata;
27+
import com.dropbox.core.v2.files.ListFolderResult;
2628

2729
import java.io.File;
2830
import java.text.DateFormat;
@@ -41,7 +43,7 @@ public class FilesActivity extends DropboxActivity {
4143

4244
private String mPath;
4345
private FilesAdapter mFilesAdapter;
44-
private DbxFiles.FileMetadata mSelectedFile;
46+
private FileMetadata mSelectedFile;
4547

4648
public static Intent getIntent(Context context, String path) {
4749
Intent filesIntent = new Intent(context, FilesActivity.class);
@@ -72,12 +74,12 @@ public void onClick(View v) {
7274
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.files_list);
7375
mFilesAdapter = new FilesAdapter(PicassoClient.getPicasso(), new FilesAdapter.Callback() {
7476
@Override
75-
public void onFolderClicked(DbxFiles.FolderMetadata folder) {
76-
startActivity(FilesActivity.getIntent(FilesActivity.this, folder.pathLower));
77+
public void onFolderClicked(FolderMetadata folder) {
78+
startActivity(FilesActivity.getIntent(FilesActivity.this, folder.getPathLower()));
7779
}
7880

7981
@Override
80-
public void onFileClicked(final DbxFiles.FileMetadata file) {
82+
public void onFileClicked(final FileMetadata file) {
8183
mSelectedFile = file;
8284
performWithPermissions(FileAction.DOWNLOAD);
8385
}
@@ -173,10 +175,10 @@ protected void loadData() {
173175

174176
new ListFolderTask(DropboxClientFactory.getClient(), new ListFolderTask.Callback() {
175177
@Override
176-
public void onDataLoaded(DbxFiles.ListFolderResult result) {
178+
public void onDataLoaded(ListFolderResult result) {
177179
dialog.dismiss();
178180

179-
mFilesAdapter.setFiles(result.entries);
181+
mFilesAdapter.setFiles(result.getEntries());
180182
}
181183

182184
@Override
@@ -192,7 +194,7 @@ public void onError(Exception e) {
192194
}).execute(mPath);
193195
}
194196

195-
private void downloadFile(DbxFiles.FileMetadata file) {
197+
private void downloadFile(FileMetadata file) {
196198
final ProgressDialog dialog = new ProgressDialog(this);
197199
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
198200
dialog.setCancelable(false);
@@ -248,11 +250,11 @@ private void uploadFile(String fileUri) {
248250

249251
new UploadFileTask(this, DropboxClientFactory.getClient(), new UploadFileTask.Callback() {
250252
@Override
251-
public void onUploadComplete(DbxFiles.FileMetadata result) {
253+
public void onUploadComplete(FileMetadata result) {
252254
dialog.dismiss();
253255

254-
String message = result.name + " size " + result.size + " modified " +
255-
DateFormat.getDateTimeInstance().format(result.clientModified);
256+
String message = result.getName() + " size " + result.getSize() + " modified " +
257+
DateFormat.getDateTimeInstance().format(result.getClientModified());
256258
Toast.makeText(FilesActivity.this, message, Toast.LENGTH_SHORT)
257259
.show();
258260

examples/android/src/main/java/com/dropbox/core/examples/android/FilesAdapter.java

+19-17
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
import android.widget.ImageView;
1010
import android.widget.TextView;
1111

12-
import com.dropbox.core.v2.DbxFiles;
12+
import com.dropbox.core.v2.files.FileMetadata;
13+
import com.dropbox.core.v2.files.FolderMetadata;
14+
import com.dropbox.core.v2.files.Metadata;
1315
import com.squareup.picasso.Picasso;
1416

1517
import java.util.ArrayList;
@@ -20,18 +22,18 @@
2022
* Adapter for file list
2123
*/
2224
public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.MetadataViewHolder> {
23-
private List<DbxFiles.Metadata> mFiles;
25+
private List<Metadata> mFiles;
2426
private final Picasso mPicasso;
2527
private final Callback mCallback;
2628

27-
public void setFiles(List<DbxFiles.Metadata> files) {
29+
public void setFiles(List<Metadata> files) {
2830
mFiles = Collections.unmodifiableList(new ArrayList<>(files));
2931
notifyDataSetChanged();
3032
}
3133

3234
public interface Callback {
33-
void onFolderClicked(DbxFiles.FolderMetadata folder);
34-
void onFileClicked(DbxFiles.FileMetadata file);
35+
void onFolderClicked(FolderMetadata folder);
36+
void onFileClicked(FileMetadata file);
3537
}
3638

3739
public FilesAdapter(Picasso picasso, Callback callback) {
@@ -54,7 +56,7 @@ public void onBindViewHolder(MetadataViewHolder metadataViewHolder, int i) {
5456

5557
@Override
5658
public long getItemId(int position) {
57-
return mFiles.get(position).pathLower.hashCode();
59+
return mFiles.get(position).getPathLower().hashCode();
5860
}
5961

6062
@Override
@@ -65,7 +67,7 @@ public int getItemCount() {
6567
public class MetadataViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
6668
private final TextView mTextView;
6769
private final ImageView mImageView;
68-
private DbxFiles.Metadata mItem;
70+
private Metadata mItem;
6971

7072
public MetadataViewHolder(View itemView) {
7173
super(itemView);
@@ -77,27 +79,27 @@ public MetadataViewHolder(View itemView) {
7779
@Override
7880
public void onClick(View v) {
7981

80-
if (mItem instanceof DbxFiles.FolderMetadata) {
81-
mCallback.onFolderClicked((DbxFiles.FolderMetadata) mItem);
82-
} else if (mItem instanceof DbxFiles.FileMetadata) {
83-
mCallback.onFileClicked((DbxFiles.FileMetadata)mItem);
82+
if (mItem instanceof FolderMetadata) {
83+
mCallback.onFolderClicked((FolderMetadata) mItem);
84+
} else if (mItem instanceof FileMetadata) {
85+
mCallback.onFileClicked((FileMetadata)mItem);
8486
}
8587
}
8688

87-
public void bind(DbxFiles.Metadata item) {
89+
public void bind(Metadata item) {
8890
mItem = item;
89-
mTextView.setText(mItem.name);
91+
mTextView.setText(mItem.getName());
9092

9193
// Load based on file path
9294
// Prepending a magic scheme to get it to
9395
// be picked up by DropboxPicassoRequestHandler
9496

95-
if (item instanceof DbxFiles.FileMetadata) {
97+
if (item instanceof FileMetadata) {
9698
MimeTypeMap mime = MimeTypeMap.getSingleton();
97-
String ext = item.name.substring(item.name.indexOf(".") + 1);
99+
String ext = item.getName().substring(item.getName().indexOf(".") + 1);
98100
String type = mime.getMimeTypeFromExtension(ext);
99101
if (type != null && type.startsWith("image/")) {
100-
mPicasso.load(FileThumbnailRequestHandler.buildPicassoUri((DbxFiles.FileMetadata)item))
102+
mPicasso.load(FileThumbnailRequestHandler.buildPicassoUri((FileMetadata)item))
101103
.placeholder(R.drawable.ic_photo_grey_600_36dp)
102104
.error(R.drawable.ic_photo_grey_600_36dp)
103105
.into(mImageView);
@@ -106,7 +108,7 @@ public void bind(DbxFiles.Metadata item) {
106108
.noFade()
107109
.into(mImageView);
108110
}
109-
} else if (item instanceof DbxFiles.FolderMetadata) {
111+
} else if (item instanceof FolderMetadata) {
110112
mPicasso.load(R.drawable.ic_folder_blue_36dp)
111113
.noFade()
112114
.into(mImageView);

examples/android/src/main/java/com/dropbox/core/examples/android/GetCurrentAccountTask.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
import com.dropbox.core.DbxException;
66
import com.dropbox.core.v2.DbxClientV2;
7-
import com.dropbox.core.v2.DbxUsers;
7+
import com.dropbox.core.v2.users.FullAccount;
88

99
/**
1010
* Async task for getting user account info
1111
*/
12-
class GetCurrentAccountTask extends AsyncTask<Void, Void, DbxUsers.FullAccount> {
12+
class GetCurrentAccountTask extends AsyncTask<Void, Void, FullAccount> {
1313

1414
private final DbxClientV2 mDbxClient;
1515
private final Callback mCallback;
1616
private Exception mException;
1717

1818
public interface Callback {
19-
void onComplete(DbxUsers.FullAccount result);
19+
void onComplete(FullAccount result);
2020
void onError(Exception e);
2121
}
2222

@@ -26,7 +26,7 @@ public interface Callback {
2626
}
2727

2828
@Override
29-
protected void onPostExecute(DbxUsers.FullAccount account) {
29+
protected void onPostExecute(FullAccount account) {
3030
super.onPostExecute(account);
3131
if (mException != null) {
3232
mCallback.onError(mException);
@@ -36,7 +36,7 @@ protected void onPostExecute(DbxUsers.FullAccount account) {
3636
}
3737

3838
@Override
39-
protected DbxUsers.FullAccount doInBackground(Void... params) {
39+
protected FullAccount doInBackground(Void... params) {
4040

4141
try {
4242
return mDbxClient.users.getCurrentAccount();

0 commit comments

Comments
 (0)