-
Notifications
You must be signed in to change notification settings - Fork 444
/
DropboxActivity.java
51 lines (41 loc) · 1.59 KB
/
DropboxActivity.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
package com.dropbox.core.examples.android;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import com.dropbox.core.android.Auth;
/**
* Base class for Activities that require auth tokens
* Will redirect to auth flow if needed
*/
public abstract class DropboxActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = getSharedPreferences("dropbox-sample", MODE_PRIVATE);
String accessToken = prefs.getString("access-token", null);
if (accessToken == null) {
accessToken = Auth.getOAuth2Token();
if (accessToken != null) {
prefs.edit().putString("access-token", accessToken).apply();
initAndLoadData(accessToken);
}
} else {
initAndLoadData(accessToken);
}
String uid = Auth.getUid();
String storedUid = prefs.getString("user-id", null);
if (uid != null && !uid.equals(storedUid)) {
prefs.edit().putString("user-id", uid).apply();
}
}
private void initAndLoadData(String accessToken) {
DropboxClientFactory.init(accessToken);
PicassoClient.init(getApplicationContext(), DropboxClientFactory.getClient());
loadData();
}
protected abstract void loadData();
protected boolean hasToken() {
SharedPreferences prefs = getSharedPreferences("dropbox-sample", MODE_PRIVATE);
String accessToken = prefs.getString("access-token", null);
return accessToken != null;
}
}