· 6 years ago · Mar 07, 2019, 07:14 AM
1public void uploadPhoto(OAuth... params)
2 throws ParserConfigurationException {
3 OAuth oauth = params[0];
4 OAuthToken token = oauth.getToken();
5 RequestContext requestContext = RequestContext.getRequestContext();
6 OAuth auth = new OAuth();
7 auth.setToken(new OAuthToken(token.getOauthToken(), token
8 .getOauthTokenSecret()));
9 requestContext.setOAuth(auth);
10 Uploader up = new Uploader(FlickrHelper.API_KEY, FlickrHelper.API_SEC);
11 UploadMetaData uploadMetaData = new UploadMetaData();
12 uploadMetaData.setTitle("hello world");
13 try {
14 Drawable d = getResources().getDrawable(R.drawable.icon);
15 // the drawable (Captain Obvious, to the rescue!!!)
16 Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
17 ByteArrayOutputStream stream = new ByteArrayOutputStream();
18 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
19 byte[] bitmapdata = stream.toByteArray();
20 System.out.println("Bitmap value= " + bitmapdata);
21 userIcon.setImageBitmap(bitmap);
22 up.upload("Hello From Emulator", bitmapdata, uploadMetaData);
23
24 } catch (FlickrException e) {
25
26 e.printStackTrace();
27
28 } catch (IOException e) {
29 // TODO Auto-generated catch block
30 e.printStackTrace();
31 } catch (SAXException e) {
32 // TODO Auto-generated catch block
33 e.printStackTrace();
34 }
35 }
36
37public class OAuthTask extends AsyncTask<Void, Integer, String> {
38
39// private static final Logger logger = LoggerFactory
40// .getLogger(OAuthTask.class);
41private static final Uri OAUTH_CALLBACK_URI = Uri
42 .parse(FlickrjAndroidSampleActivity.CALLBACK_SCHEME + "://oauth"); //$NON-NLS-1$
43
44/**
45 * The context.
46 */
47private Context mContext;
48
49/**
50 * The progress dialog before going to the browser.
51 */
52private ProgressDialog mProgressDialog;
53
54/**
55 * Constructor.
56 *
57 * @param context
58 */
59public OAuthTask(Context context) {
60 super();
61 this.mContext = context;
62}
63
64@Override
65protected void onPreExecute() {
66 super.onPreExecute();
67 mProgressDialog = ProgressDialog.show(mContext,
68 "", "Generating the authorization request..."); //$NON-NLS-1$ //$NON-NLS-2$
69 mProgressDialog.setCanceledOnTouchOutside(true);
70 mProgressDialog.setCancelable(true);
71 mProgressDialog.setOnCancelListener(new OnCancelListener() {
72 @Override
73 public void onCancel(DialogInterface dlg) {
74 OAuthTask.this.cancel(true);
75 }
76 });
77}
78
79/*
80 * (non-Javadoc)
81 *
82 * @see android.os.AsyncTask#doInBackground(Params[])
83 */
84@Override
85protected String doInBackground(Void... params) {
86 try {
87 Flickr f = FlickrHelper.getInstance().getFlickr();
88 OAuthToken oauthToken = f.getOAuthInterface().getRequestToken(
89 OAUTH_CALLBACK_URI.toString());
90 saveTokenSecrent(oauthToken.getOauthTokenSecret());
91 URL oauthUrl = f.getOAuthInterface().buildAuthenticationUrl(
92 Permission.WRITE, oauthToken);
93 return oauthUrl.toString();
94 } catch (Exception e) {
95 // logger.error("Error to oauth", e); //$NON-NLS-1$
96 return "error:" + e.getMessage(); //$NON-NLS-1$
97 }
98}
99
100/**
101 * Saves the oauth token secrent.
102 *
103 * @param tokenSecret
104 */
105private void saveTokenSecrent(String tokenSecret) {
106 // logger.debug("request token: " + tokenSecret); //$NON-NLS-1$
107 FlickrjAndroidSampleActivity act = (FlickrjAndroidSampleActivity) mContext;
108 act.saveOAuthToken(null, null, null, tokenSecret);
109 // logger.debug("oauth token secret saved: {}", tokenSecret); //$NON-NLS-1$
110}
111
112@Override
113protected void onPostExecute(String result) {
114 if (mProgressDialog != null) {
115 mProgressDialog.dismiss();
116 }
117 if (result != null && !result.startsWith("error")) { //$NON-NLS-1$
118 mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri
119 .parse(result)));
120 } else {
121 Toast.makeText(mContext, result, Toast.LENGTH_LONG).show();
122 }
123}
124
125}