├── .gitignore ├── README.md ├── api_demos ├── .gitignore ├── build.gradle ├── proguard-rules.txt └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── android.jpg │ ├── java │ └── com │ │ └── github │ │ └── androidsocialnetworks │ │ └── apidemos │ │ ├── APIDemosApplication.java │ │ ├── activity │ │ └── MainActivity.java │ │ └── fragment │ │ ├── APIDemosListFragment.java │ │ ├── base │ │ ├── BaseDemoFragment.java │ │ └── BaseLoginDemoFragment.java │ │ ├── demo │ │ ├── AddFriendFragment.java │ │ ├── CheckIsFriendFragment.java │ │ ├── CurrentUserProfileFragment.java │ │ ├── LoginUsingGlobalListenersFragment.java │ │ ├── LoginUsingLocalListenersFragment.java │ │ ├── OtherUsersProfile.java │ │ ├── PostMessageFragment.java │ │ ├── PostPhotoFragment.java │ │ ├── RemoveFriendFragment.java │ │ └── ShowProfileFragment.java │ │ └── dialog │ │ ├── AlertDialogFragment.java │ │ └── ProgressDialogFragment.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── drawable-xxxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_main.xml │ ├── fragment_base_buttons.xml │ └── fragment_show_profile.xml │ ├── menu │ └── main.xml │ └── values │ ├── config.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── library ├── .gitignore ├── build.gradle ├── libs │ ├── linkedin-j-android-1.0.jar │ ├── signpost-commonshttp4-1.2.1.1.jar │ └── signpost-core-1.2.1.1.jar ├── proguard-rules.txt └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── androidsocialnetworks │ │ └── lib │ │ ├── AccessToken.java │ │ ├── Consts.java │ │ ├── MomentUtil.java │ │ ├── OAuthActivity.java │ │ ├── OAuthSocialNetwork.java │ │ ├── SocialNetwork.java │ │ ├── SocialNetworkAsyncTask.java │ │ ├── SocialNetworkException.java │ │ ├── SocialNetworkManager.java │ │ ├── SocialPerson.java │ │ ├── impl │ │ ├── FacebookSocialNetwork.java │ │ ├── GooglePlusSocialNetwork.java │ │ ├── LinkedInSocialNetwork.java │ │ └── TwitterSocialNetwork.java │ │ └── listener │ │ ├── OnCheckIsFriendCompleteListener.java │ │ ├── OnLoginCompleteListener.java │ │ ├── OnPostingCompleteListener.java │ │ ├── OnRequestAddFriendCompleteListener.java │ │ ├── OnRequestRemoveFriendCompleteListener.java │ │ ├── OnRequestSocialPersonCompleteListener.java │ │ └── base │ │ └── SocialNetworkListener.java │ └── res │ ├── layout │ └── asn_activity_oauth.xml │ ├── values-v14 │ └── styles.xml │ └── values │ └── styles.xml ├── other ├── asn.png ├── asn.psd └── sn_icons │ ├── facebook.png │ ├── google_plus.png │ ├── linkedin.png │ └── twitter.png ├── settings.gradle └── third_party └── facebook ├── AndroidManifest.xml ├── build.gradle ├── build.xml ├── libs ├── android-support-v4.jar └── bolts.jar ├── project.properties ├── res ├── drawable-hdpi │ ├── com_facebook_button_blue_focused.9.png │ ├── com_facebook_button_blue_normal.9.png │ ├── com_facebook_button_blue_pressed.9.png │ ├── com_facebook_button_grey_focused.9.png │ ├── com_facebook_button_grey_normal.9.png │ ├── com_facebook_button_grey_pressed.9.png │ ├── com_facebook_close.png │ ├── com_facebook_inverse_icon.png │ ├── com_facebook_logo.png │ ├── com_facebook_picker_magnifier.png │ ├── com_facebook_tooltip_black_background.9.png │ ├── com_facebook_tooltip_black_bottomnub.png │ ├── com_facebook_tooltip_black_topnub.png │ ├── com_facebook_tooltip_black_xout.png │ ├── com_facebook_tooltip_blue_background.9.png │ ├── com_facebook_tooltip_blue_bottomnub.png │ ├── com_facebook_tooltip_blue_topnub.png │ └── com_facebook_tooltip_blue_xout.png ├── drawable-ldpi │ └── com_facebook_close.png ├── drawable-mdpi │ ├── com_facebook_button_blue_focused.9.png │ ├── com_facebook_button_blue_normal.9.png │ ├── com_facebook_button_blue_pressed.9.png │ ├── com_facebook_inverse_icon.png │ ├── com_facebook_picker_magnifier.png │ ├── com_facebook_tooltip_black_background.9.png │ ├── com_facebook_tooltip_black_bottomnub.png │ ├── com_facebook_tooltip_black_topnub.png │ ├── com_facebook_tooltip_black_xout.png │ ├── com_facebook_tooltip_blue_background.9.png │ ├── com_facebook_tooltip_blue_bottomnub.png │ ├── com_facebook_tooltip_blue_topnub.png │ └── com_facebook_tooltip_blue_xout.png ├── drawable-xhdpi │ ├── com_facebook_button_blue_focused.9.png │ ├── com_facebook_button_blue_normal.9.png │ ├── com_facebook_button_blue_pressed.9.png │ ├── com_facebook_button_grey_focused.9.png │ ├── com_facebook_button_grey_normal.9.png │ ├── com_facebook_button_grey_pressed.9.png │ ├── com_facebook_close.png │ ├── com_facebook_inverse_icon.png │ ├── com_facebook_logo.png │ ├── com_facebook_picker_magnifier.png │ ├── com_facebook_tooltip_black_background.9.png │ ├── com_facebook_tooltip_black_bottomnub.png │ ├── com_facebook_tooltip_black_topnub.png │ ├── com_facebook_tooltip_black_xout.png │ ├── com_facebook_tooltip_blue_background.9.png │ ├── com_facebook_tooltip_blue_bottomnub.png │ ├── com_facebook_tooltip_blue_topnub.png │ └── com_facebook_tooltip_blue_xout.png ├── drawable │ ├── com_facebook_button_blue.xml │ ├── com_facebook_button_blue_focused.9.png │ ├── com_facebook_button_blue_normal.9.png │ ├── com_facebook_button_blue_pressed.9.png │ ├── com_facebook_button_check.xml │ ├── com_facebook_button_check_off.png │ ├── com_facebook_button_check_on.png │ ├── com_facebook_button_grey_focused.9.png │ ├── com_facebook_button_grey_normal.9.png │ ├── com_facebook_button_grey_pressed.9.png │ ├── com_facebook_close.png │ ├── com_facebook_inverse_icon.png │ ├── com_facebook_list_divider.9.png │ ├── com_facebook_list_section_header_background.9.png │ ├── com_facebook_loginbutton_silver.xml │ ├── com_facebook_logo.png │ ├── com_facebook_picker_item_background.xml │ ├── com_facebook_picker_list_focused.9.png │ ├── com_facebook_picker_list_longpressed.9.png │ ├── com_facebook_picker_list_pressed.9.png │ ├── com_facebook_picker_list_selector.xml │ ├── com_facebook_picker_list_selector_background_transition.xml │ ├── com_facebook_picker_list_selector_disabled.9.png │ ├── com_facebook_picker_top_button.xml │ ├── com_facebook_place_default_icon.png │ ├── com_facebook_profile_default_icon.png │ ├── com_facebook_profile_picture_blank_portrait.png │ ├── com_facebook_profile_picture_blank_square.png │ ├── com_facebook_top_background.xml │ ├── com_facebook_top_button.xml │ └── com_facebook_usersettingsfragment_background_gradient.xml ├── layout │ ├── com_facebook_friendpickerfragment.xml │ ├── com_facebook_login_activity_layout.xml │ ├── com_facebook_picker_activity_circle_row.xml │ ├── com_facebook_picker_checkbox.xml │ ├── com_facebook_picker_image.xml │ ├── com_facebook_picker_list_row.xml │ ├── com_facebook_picker_list_section_header.xml │ ├── com_facebook_picker_search_box.xml │ ├── com_facebook_picker_title_bar.xml │ ├── com_facebook_picker_title_bar_stub.xml │ ├── com_facebook_placepickerfragment.xml │ ├── com_facebook_placepickerfragment_list_row.xml │ ├── com_facebook_search_bar_layout.xml │ ├── com_facebook_tooltip_bubble.xml │ └── com_facebook_usersettingsfragment.xml ├── values-es │ └── strings.xml ├── values-hdpi │ └── dimens.xml ├── values-he │ └── strings.xml ├── values-iw │ └── strings.xml ├── values-ldpi │ └── dimens.xml ├── values-mdpi │ └── dimens.xml ├── values-xhdpi │ └── dimens.xml └── values │ ├── attrs.xml │ ├── colors.xml │ ├── drawables.xml │ ├── strings.xml │ └── styles.xml └── src └── com └── facebook ├── AccessToken.java ├── AccessTokenSource.java ├── AppEventsConstants.java ├── AppEventsLogger.java ├── AppLinkData.java ├── AuthorizationClient.java ├── FacebookAppLinkResolver.java ├── FacebookAuthorizationException.java ├── FacebookBroadcastReceiver.java ├── FacebookDialogException.java ├── FacebookException.java ├── FacebookGraphObjectException.java ├── FacebookOperationCanceledException.java ├── FacebookRequestError.java ├── FacebookSdkVersion.java ├── FacebookServiceException.java ├── GetTokenClient.java ├── HttpMethod.java ├── InsightsLogger.java ├── LegacyHelper.java ├── LoggingBehavior.java ├── LoginActivity.java ├── NativeAppCallAttachmentStore.java ├── NativeAppCallContentProvider.java ├── NonCachingTokenCachingStrategy.java ├── ProgressNoopOutputStream.java ├── ProgressOutputStream.java ├── Request.java ├── RequestAsyncTask.java ├── RequestBatch.java ├── RequestOutputStream.java ├── RequestProgress.java ├── Response.java ├── Session.java ├── SessionDefaultAudience.java ├── SessionLoginBehavior.java ├── SessionState.java ├── Settings.java ├── SharedPreferencesTokenCachingStrategy.java ├── TestSession.java ├── TokenCachingStrategy.java ├── UiLifecycleHelper.java ├── android ├── AsyncFacebookRunner.java ├── DialogError.java ├── Facebook.java ├── FacebookError.java ├── FbDialog.java └── Util.java ├── internal ├── AnalyticsEvents.java ├── AttributionIdentifiers.java ├── CacheableRequestBatch.java ├── FileLruCache.java ├── ImageDownloader.java ├── ImageRequest.java ├── ImageResponse.java ├── ImageResponseCache.java ├── Logger.java ├── NativeProtocol.java ├── PlatformServiceClient.java ├── ServerProtocol.java ├── SessionAuthorizationType.java ├── SessionTracker.java ├── UrlRedirectCache.java ├── Utility.java ├── Validate.java ├── WorkQueue.java └── package-info.java ├── model ├── CreateGraphObject.java ├── GraphLocation.java ├── GraphMultiResult.java ├── GraphObject.java ├── GraphObjectList.java ├── GraphPlace.java ├── GraphUser.java ├── JsonUtil.java ├── OpenGraphAction.java ├── OpenGraphObject.java └── PropertyName.java └── widget ├── FacebookDialog.java ├── FacebookFragment.java ├── FriendPickerFragment.java ├── GraphObjectAdapter.java ├── GraphObjectCursor.java ├── GraphObjectPagingLoader.java ├── LoginButton.java ├── PickerFragment.java ├── PlacePickerFragment.java ├── ProfilePictureView.java ├── SimpleGraphObjectCursor.java ├── ToolTipPopup.java ├── UserSettingsFragment.java └── WebDialog.java /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | .DS_Store 5 | 6 | .idea 7 | build 8 | *.iml 9 | out 10 | repo -------------------------------------------------------------------------------- /api_demos/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api_demos/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | minSdkVersion 9 9 | targetSdkVersion 19 10 | versionCode 3 11 | versionName "0.3.3" 12 | } 13 | 14 | signingConfigs { 15 | release { 16 | storeFile file(System.getenv("ASN_KEYSTORE")) 17 | storePassword System.getenv("ASN_KEYSTORE_PASSWORD") 18 | keyAlias System.getenv("ASN_KEY_ALIAS") 19 | keyPassword System.getenv("ASN_KEY_PASSWORD") 20 | } 21 | } 22 | 23 | buildTypes { 24 | release { 25 | signingConfig signingConfigs.release 26 | runProguard false 27 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 28 | } 29 | } 30 | } 31 | 32 | dependencies { 33 | compile fileTree(dir: 'libs', include: ['*.jar']) 34 | compile 'com.android.support:appcompat-v7:19.+' 35 | compile project(':library') 36 | 37 | // for displaying avatars 38 | compile 'com.squareup.picasso:picasso:2.2.0@jar' 39 | // to display facebook avatar: https://github.com/square/picasso/issues/166 40 | compile 'com.squareup.okhttp:okhttp:1.5.4@jar' 41 | } 42 | -------------------------------------------------------------------------------- /api_demos/proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /opt/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the ProGuard 5 | # include property in project.properties. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /api_demos/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 15 | 16 | 19 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /api_demos/src/main/assets/android.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/assets/android.jpg -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/APIDemosApplication.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos; 2 | 3 | import android.app.Application; 4 | 5 | public class APIDemosApplication extends Application { 6 | 7 | public static final String TAG = "AndroidSocialNetworks_API_Demos"; 8 | 9 | public static final String USER_ID_TWITTER = "2446056205"; 10 | public static final String USER_ID_LINKED_IN = "WQlagxgbbw"; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/activity/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.activity; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v7.app.ActionBarActivity; 7 | import android.view.MenuItem; 8 | 9 | import com.github.androidsocialnetworks.apidemos.R; 10 | import com.github.androidsocialnetworks.apidemos.fragment.APIDemosListFragment; 11 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 12 | 13 | 14 | public class MainActivity extends ActionBarActivity { 15 | 16 | @Override 17 | protected void onCreate(Bundle savedInstanceState) { 18 | super.onCreate(savedInstanceState); 19 | setContentView(R.layout.activity_main); 20 | 21 | if (savedInstanceState == null) { 22 | getSupportFragmentManager().beginTransaction() 23 | .replace(R.id.root_container, APIDemosListFragment.newInstance()) 24 | .commit(); 25 | } 26 | 27 | if (getSupportFragmentManager().getBackStackEntryCount() > 0) { 28 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 29 | } 30 | } 31 | 32 | @Override 33 | public void onBackPressed() { 34 | if (getSupportFragmentManager().getBackStackEntryCount() > 0) { 35 | getSupportFragmentManager().popBackStack(); 36 | return; 37 | } 38 | 39 | super.onBackPressed(); 40 | } 41 | 42 | @Override 43 | public boolean onOptionsItemSelected(MenuItem item) { 44 | switch (item.getItemId()) { 45 | case android.R.id.home: 46 | onBackPressed(); 47 | return true; 48 | } 49 | 50 | return super.onOptionsItemSelected(item); 51 | } 52 | 53 | @Override 54 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { 55 | super.onActivityResult(requestCode, resultCode, data); 56 | 57 | /** 58 | * This is required only if you are using Google Plus, the issue is that there SDK 59 | * require Activity to launch Auth, so library can't receive onActivityResult in fragment 60 | */ 61 | Fragment fragment = getSupportFragmentManager().findFragmentByTag(BaseDemoFragment.SOCIAL_NETWORK_TAG); 62 | if (fragment != null) { 63 | fragment.onActivityResult(requestCode, resultCode, data); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/base/BaseLoginDemoFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.base; 2 | 3 | import android.graphics.Color; 4 | import android.view.View; 5 | 6 | public abstract class BaseLoginDemoFragment extends BaseDemoFragment implements View.OnClickListener { 7 | 8 | @Override 9 | public void onSocialNetworkManagerInitialized() { 10 | if (mSocialNetworkManager.getTwitterSocialNetwork().isConnected()) { 11 | mTwitterButton.setText("Twitter connected"); 12 | mTwitterButton.setBackgroundColor(Color.LTGRAY); 13 | mTwitterButton.setOnClickListener(null); 14 | } 15 | 16 | if (mSocialNetworkManager.getLinkedInSocialNetwork().isConnected()) { 17 | mLinkedInButton.setText("LinkedIn connected"); 18 | mLinkedInButton.setBackgroundColor(Color.LTGRAY); 19 | mLinkedInButton.setOnClickListener(null); 20 | } 21 | 22 | if (mSocialNetworkManager.getFacebookSocialNetwork().isConnected()) { 23 | mFacebookButton.setText("Facebook connected"); 24 | mFacebookButton.setBackgroundColor(Color.LTGRAY); 25 | mFacebookButton.setOnClickListener(null); 26 | } 27 | 28 | if (mSocialNetworkManager.getGooglePlusSocialNetwork().isConnected()) { 29 | mGooglePlusButton.setText("Google Plus connected"); 30 | mGooglePlusButton.setBackgroundColor(Color.LTGRAY); 31 | mGooglePlusButton.setOnClickListener(null); 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/AddFriendFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import com.androidsocialnetworks.lib.impl.LinkedInSocialNetwork; 7 | import com.androidsocialnetworks.lib.impl.TwitterSocialNetwork; 8 | import com.androidsocialnetworks.lib.listener.OnRequestAddFriendCompleteListener; 9 | import com.github.androidsocialnetworks.apidemos.APIDemosApplication; 10 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 11 | 12 | public class AddFriendFragment extends BaseDemoFragment { 13 | public static AddFriendFragment newInstance() { 14 | return new AddFriendFragment(); 15 | } 16 | 17 | @Override 18 | public void onViewCreated(View view, Bundle savedInstanceState) { 19 | super.onViewCreated(view, savedInstanceState); 20 | 21 | mTwitterButton.setText("Follow Anton Krasov"); 22 | mLinkedInButton.setText("Send invite to Anton Krasov"); 23 | mFacebookButton.setVisibility(View.GONE); 24 | mGooglePlusButton.setVisibility(View.GONE); 25 | } 26 | 27 | @Override 28 | protected void onTwitterAction() { 29 | if (!checkIsLoginned(TwitterSocialNetwork.ID)) return; 30 | 31 | showProgress("Following Anton Krasov"); 32 | mSocialNetworkManager.getTwitterSocialNetwork().requestAddFriend( 33 | APIDemosApplication.USER_ID_TWITTER, 34 | new DemoTwitterOnRequestAddFriendCompleteListener() 35 | ); 36 | } 37 | 38 | @Override 39 | protected void onLinkedInAction() { 40 | if (!checkIsLoginned(LinkedInSocialNetwork.ID)) return; 41 | 42 | showProgress("Following Anton Krasov"); 43 | mSocialNetworkManager.getLinkedInSocialNetwork().requestAddFriend( 44 | APIDemosApplication.USER_ID_LINKED_IN, 45 | new DemoLinkedInOnRequestAddFriendCompleteListener() 46 | ); 47 | } 48 | 49 | @Override 50 | protected void onFacebookAction() { 51 | throw new IllegalStateException("Unsupported"); 52 | } 53 | 54 | @Override 55 | protected void onGooglePlusAction() { 56 | throw new IllegalStateException("Unsupported"); 57 | } 58 | 59 | private class DemoTwitterOnRequestAddFriendCompleteListener implements OnRequestAddFriendCompleteListener { 60 | @Override 61 | public void onRequestAddFriendComplete(int socialNetworkID, String userID) { 62 | hideProgress(); 63 | 64 | handleSuccess("Add friend", "Now you follow Anton Krasov!"); 65 | } 66 | 67 | @Override 68 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 69 | hideProgress(); 70 | handleError(errorMessage); 71 | } 72 | } 73 | 74 | private class DemoLinkedInOnRequestAddFriendCompleteListener implements OnRequestAddFriendCompleteListener { 75 | @Override 76 | public void onRequestAddFriendComplete(int socialNetworkID, String userID) { 77 | hideProgress(); 78 | 79 | handleSuccess("Add friend", "Invite was successfully sent to Anton Krasov!"); 80 | } 81 | 82 | @Override 83 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 84 | hideProgress(); 85 | handleError(errorMessage); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/CurrentUserProfileFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import com.androidsocialnetworks.lib.SocialPerson; 7 | import com.androidsocialnetworks.lib.impl.FacebookSocialNetwork; 8 | import com.androidsocialnetworks.lib.impl.GooglePlusSocialNetwork; 9 | import com.androidsocialnetworks.lib.impl.LinkedInSocialNetwork; 10 | import com.androidsocialnetworks.lib.impl.TwitterSocialNetwork; 11 | import com.androidsocialnetworks.lib.listener.OnRequestSocialPersonCompleteListener; 12 | import com.github.androidsocialnetworks.apidemos.R; 13 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 14 | 15 | public class CurrentUserProfileFragment extends BaseDemoFragment implements View.OnClickListener { 16 | 17 | public static CurrentUserProfileFragment newInstance() { 18 | return new CurrentUserProfileFragment(); 19 | } 20 | 21 | @Override 22 | public void onViewCreated(View view, Bundle savedInstanceState) { 23 | super.onViewCreated(view, savedInstanceState); 24 | 25 | mTwitterButton.setText("Load Twitter Profile"); 26 | mLinkedInButton.setText("Load LinkedIn Profile"); 27 | mFacebookButton.setText("Load Facebook Profile"); 28 | mGooglePlusButton.setText("Load Google Plus Profile"); 29 | } 30 | 31 | @Override 32 | protected void onTwitterAction() { 33 | if (!checkIsLoginned(TwitterSocialNetwork.ID)) return; 34 | 35 | showProgress("Loading profile"); 36 | mSocialNetworkManager.getTwitterSocialNetwork() 37 | .requestCurrentPerson(new DemoOnRequestSocialPersonCompleteListener()); 38 | 39 | } 40 | 41 | @Override 42 | protected void onLinkedInAction() { 43 | if (!checkIsLoginned(LinkedInSocialNetwork.ID)) return; 44 | 45 | showProgress("Loading profile"); 46 | mSocialNetworkManager.getLinkedInSocialNetwork() 47 | .requestCurrentPerson(new DemoOnRequestSocialPersonCompleteListener()); 48 | } 49 | 50 | @Override 51 | protected void onFacebookAction() { 52 | if (!checkIsLoginned(FacebookSocialNetwork.ID)) return; 53 | 54 | showProgress("Loading profile"); 55 | mSocialNetworkManager.getFacebookSocialNetwork() 56 | .requestCurrentPerson(new DemoOnRequestSocialPersonCompleteListener()); 57 | } 58 | 59 | @Override 60 | protected void onGooglePlusAction() { 61 | if (!checkIsLoginned(GooglePlusSocialNetwork.ID)) return; 62 | 63 | mSocialNetworkManager.getGooglePlusSocialNetwork() 64 | .requestCurrentPerson(new DemoOnRequestSocialPersonCompleteListener()); 65 | } 66 | 67 | private class DemoOnRequestSocialPersonCompleteListener implements OnRequestSocialPersonCompleteListener { 68 | @Override 69 | public void onRequestSocialPersonSuccess(int socialNetworkID, SocialPerson socialPerson) { 70 | hideProgress(); 71 | 72 | getFragmentManager().beginTransaction() 73 | .replace(R.id.root_container, ShowProfileFragment.newInstance(socialPerson)) 74 | .addToBackStack(null) 75 | .commit(); 76 | } 77 | 78 | @Override 79 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 80 | hideProgress(); 81 | handleError(errorMessage); 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/LoginUsingGlobalListenersFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import com.androidsocialnetworks.lib.SocialNetwork; 4 | import com.androidsocialnetworks.lib.listener.OnLoginCompleteListener; 5 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseLoginDemoFragment; 6 | 7 | public class LoginUsingGlobalListenersFragment extends BaseLoginDemoFragment 8 | implements OnLoginCompleteListener { 9 | 10 | private static final String TAG = LoginUsingGlobalListenersFragment.class.getSimpleName(); 11 | 12 | public static LoginUsingGlobalListenersFragment newInstance() { 13 | return new LoginUsingGlobalListenersFragment(); 14 | } 15 | 16 | @Override 17 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 18 | hideProgress(); 19 | handleError(errorMessage); 20 | } 21 | 22 | @Override 23 | protected void onTwitterAction() { 24 | showProgress("Authentificating... Twitter"); 25 | mSocialNetworkManager.getTwitterSocialNetwork().requestLogin(); 26 | } 27 | 28 | @Override 29 | protected void onLinkedInAction() { 30 | showProgress("Authentificating... LinkedIn"); 31 | mSocialNetworkManager.getLinkedInSocialNetwork().requestLogin(); 32 | } 33 | 34 | @Override 35 | protected void onFacebookAction() { 36 | mSocialNetworkManager.getFacebookSocialNetwork().requestLogin(); 37 | } 38 | 39 | @Override 40 | protected void onGooglePlusAction() { 41 | mSocialNetworkManager.getGooglePlusSocialNetwork().requestLogin(); 42 | } 43 | 44 | @Override 45 | public void onLoginSuccess(int socialNetworkID) { 46 | // let's reset buttons, we need to disable buttons 47 | onSocialNetworkManagerInitialized(); 48 | 49 | hideProgress(); 50 | handleSuccess("onLoginSuccess", "Now you can try other API Demos."); 51 | } 52 | 53 | @Override 54 | public void onSocialNetworkManagerInitialized() { 55 | super.onSocialNetworkManagerInitialized(); 56 | 57 | for (SocialNetwork socialNetwork : mSocialNetworkManager.getInitializedSocialNetworks()) { 58 | socialNetwork.setOnLoginCompleteListener(this); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/LoginUsingLocalListenersFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import com.androidsocialnetworks.lib.listener.OnLoginCompleteListener; 4 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseLoginDemoFragment; 5 | 6 | public class LoginUsingLocalListenersFragment extends BaseLoginDemoFragment { 7 | public static LoginUsingLocalListenersFragment newInstance() { 8 | return new LoginUsingLocalListenersFragment(); 9 | } 10 | 11 | @Override 12 | protected void onTwitterAction() { 13 | showProgress("Authentificating... Twitter"); 14 | mSocialNetworkManager.getTwitterSocialNetwork().requestLogin(new DemoOnLoginCompleteListener()); 15 | } 16 | 17 | @Override 18 | protected void onLinkedInAction() { 19 | showProgress("Authentificating... LinkedIn"); 20 | mSocialNetworkManager.getLinkedInSocialNetwork().requestLogin(new DemoOnLoginCompleteListener()); 21 | } 22 | 23 | @Override 24 | protected void onFacebookAction() { 25 | mSocialNetworkManager.getFacebookSocialNetwork().requestLogin(new DemoOnLoginCompleteListener()); 26 | } 27 | 28 | @Override 29 | protected void onGooglePlusAction() { 30 | mSocialNetworkManager.getGooglePlusSocialNetwork().requestLogin(new DemoOnLoginCompleteListener()); 31 | } 32 | 33 | private class DemoOnLoginCompleteListener implements OnLoginCompleteListener { 34 | @Override 35 | public void onLoginSuccess(int socialNetworkID) { 36 | // let's reset buttons, we need to disable buttons 37 | onSocialNetworkManagerInitialized(); 38 | 39 | hideProgress(); 40 | handleSuccess("onLoginSuccess", "Now you can try other API Demos."); 41 | } 42 | 43 | @Override 44 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 45 | hideProgress(); 46 | handleError(errorMessage); 47 | } 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/OtherUsersProfile.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | import android.widget.Toast; 6 | 7 | import com.androidsocialnetworks.lib.SocialPerson; 8 | import com.androidsocialnetworks.lib.impl.FacebookSocialNetwork; 9 | import com.androidsocialnetworks.lib.impl.GooglePlusSocialNetwork; 10 | import com.androidsocialnetworks.lib.impl.LinkedInSocialNetwork; 11 | import com.androidsocialnetworks.lib.impl.TwitterSocialNetwork; 12 | import com.androidsocialnetworks.lib.listener.OnRequestSocialPersonCompleteListener; 13 | import com.github.androidsocialnetworks.apidemos.APIDemosApplication; 14 | import com.github.androidsocialnetworks.apidemos.R; 15 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 16 | 17 | public class OtherUsersProfile extends BaseDemoFragment { 18 | 19 | 20 | public static OtherUsersProfile newInstance() { 21 | return new OtherUsersProfile(); 22 | } 23 | 24 | @Override 25 | public void onViewCreated(View view, Bundle savedInstanceState) { 26 | super.onViewCreated(view, savedInstanceState); 27 | 28 | mTwitterButton.setText("Load Twitter Profile"); 29 | mLinkedInButton.setText("Load LinkedIn Profile"); 30 | mFacebookButton.setVisibility(View.GONE); 31 | mGooglePlusButton.setVisibility(View.GONE); 32 | } 33 | 34 | @Override 35 | protected void onTwitterAction() { 36 | if (!checkIsLoginned(TwitterSocialNetwork.ID)) return; 37 | 38 | showProgress("Loading profile"); 39 | mSocialNetworkManager.getTwitterSocialNetwork().requestSocialPerson(APIDemosApplication.USER_ID_TWITTER, 40 | new DemoOnRequestSocialPersonCompleteListener() 41 | ); 42 | } 43 | 44 | @Override 45 | protected void onLinkedInAction() { 46 | if (!checkIsLoginned(LinkedInSocialNetwork.ID)) return; 47 | 48 | showProgress("Loading profile"); 49 | mSocialNetworkManager.getLinkedInSocialNetwork().requestSocialPerson(APIDemosApplication.USER_ID_LINKED_IN, 50 | new DemoOnRequestSocialPersonCompleteListener() 51 | ); 52 | } 53 | 54 | @Override 55 | protected void onFacebookAction() { 56 | if (!checkIsLoginned(FacebookSocialNetwork.ID)) return; 57 | 58 | Toast.makeText(getActivity(), "Load Facebook Profile", Toast.LENGTH_SHORT).show(); 59 | } 60 | 61 | @Override 62 | protected void onGooglePlusAction() { 63 | if (!checkIsLoginned(GooglePlusSocialNetwork.ID)) return; 64 | 65 | Toast.makeText(getActivity(), "Load Google Plus Profile", Toast.LENGTH_SHORT).show(); 66 | } 67 | 68 | private class DemoOnRequestSocialPersonCompleteListener implements OnRequestSocialPersonCompleteListener { 69 | @Override 70 | public void onRequestSocialPersonSuccess(int socialNetworkID, SocialPerson socialPerson) { 71 | hideProgress(); 72 | 73 | getFragmentManager().beginTransaction() 74 | .replace(R.id.root_container, ShowProfileFragment.newInstance(socialPerson)) 75 | .addToBackStack(null) 76 | .commit(); 77 | } 78 | 79 | @Override 80 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 81 | hideProgress(); 82 | handleError(errorMessage); 83 | } 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/PostMessageFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import com.androidsocialnetworks.lib.impl.FacebookSocialNetwork; 7 | import com.androidsocialnetworks.lib.impl.LinkedInSocialNetwork; 8 | import com.androidsocialnetworks.lib.impl.TwitterSocialNetwork; 9 | import com.androidsocialnetworks.lib.listener.OnPostingCompleteListener; 10 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 11 | 12 | import java.util.UUID; 13 | 14 | public class PostMessageFragment extends BaseDemoFragment { 15 | 16 | public static PostMessageFragment newInstance() { 17 | return new PostMessageFragment(); 18 | } 19 | 20 | @Override 21 | public void onViewCreated(View view, Bundle savedInstanceState) { 22 | super.onViewCreated(view, savedInstanceState); 23 | 24 | mTwitterButton.setText("Post tweet"); 25 | mLinkedInButton.setText("Update LinkedIn status"); 26 | mFacebookButton.setText("Post to Facebook"); 27 | mGooglePlusButton.setVisibility(View.GONE); 28 | } 29 | 30 | @Override 31 | protected void onTwitterAction() { 32 | if (!checkIsLoginned(TwitterSocialNetwork.ID)) return; 33 | 34 | final String message = "ASN Test: " + UUID.randomUUID(); 35 | 36 | showProgress("Posting message"); 37 | mSocialNetworkManager.getTwitterSocialNetwork().requestPostMessage(message, 38 | new DemoOnPostingCompleteListener(message) 39 | ); 40 | } 41 | 42 | @Override 43 | protected void onLinkedInAction() { 44 | if (!checkIsLoginned(LinkedInSocialNetwork.ID)) return; 45 | 46 | final String message = "ASN Test: " + UUID.randomUUID(); 47 | 48 | showProgress("Posting message"); 49 | mSocialNetworkManager.getLinkedInSocialNetwork().requestPostMessage(message, 50 | new DemoOnPostingCompleteListener(message) 51 | ); 52 | } 53 | 54 | @Override 55 | protected void onFacebookAction() { 56 | if (!checkIsLoginned(FacebookSocialNetwork.ID)) return; 57 | 58 | final String message = "ASN Test: " + UUID.randomUUID(); 59 | 60 | showProgress("Posting message"); 61 | mSocialNetworkManager.getFacebookSocialNetwork().requestPostMessage(message, 62 | new DemoOnPostingCompleteListener(message) 63 | ); 64 | } 65 | 66 | @Override 67 | protected void onGooglePlusAction() { 68 | throw new IllegalStateException("Unsupported"); 69 | } 70 | 71 | private class DemoOnPostingCompleteListener implements OnPostingCompleteListener { 72 | private String mmMessage; 73 | 74 | private DemoOnPostingCompleteListener(String message) { 75 | mmMessage = message; 76 | } 77 | 78 | @Override 79 | public void onPostSuccessfully(int socialNetworkID) { 80 | hideProgress(); 81 | 82 | handleSuccess("Success", "Message: '" + mmMessage + "' successfully posted."); 83 | } 84 | 85 | @Override 86 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 87 | hideProgress(); 88 | handleError(errorMessage); 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/RemoveFriendFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import com.androidsocialnetworks.lib.impl.TwitterSocialNetwork; 7 | import com.androidsocialnetworks.lib.listener.OnRequestRemoveFriendCompleteListener; 8 | import com.github.androidsocialnetworks.apidemos.APIDemosApplication; 9 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 10 | 11 | public class RemoveFriendFragment extends BaseDemoFragment { 12 | public static RemoveFriendFragment newInstance() { 13 | return new RemoveFriendFragment(); 14 | } 15 | 16 | @Override 17 | public void onViewCreated(View view, Bundle savedInstanceState) { 18 | super.onViewCreated(view, savedInstanceState); 19 | 20 | mTwitterButton.setText("Unfollow Anton Krasov"); 21 | mLinkedInButton.setVisibility(View.GONE); 22 | mFacebookButton.setVisibility(View.GONE); 23 | mGooglePlusButton.setVisibility(View.GONE); 24 | } 25 | 26 | @Override 27 | protected void onTwitterAction() { 28 | if (!checkIsLoginned(TwitterSocialNetwork.ID)) return; 29 | 30 | showProgress("Unfollowing Anton Krasov"); 31 | mSocialNetworkManager.getTwitterSocialNetwork().requestRemoveFriend( 32 | APIDemosApplication.USER_ID_TWITTER, 33 | new OnRequestRemoveFriendCompleteListener() { 34 | @Override 35 | public void onRequestRemoveFriendComplete(int socialNetworkID, String userID) { 36 | hideProgress(); 37 | 38 | handleSuccess("Remove friend", "Now you don't follow Anton Krasov!"); 39 | } 40 | 41 | @Override 42 | public void onError(int socialNetworkID, String requestID, String errorMessage, Object data) { 43 | hideProgress(); 44 | handleError(errorMessage); 45 | } 46 | } 47 | ); 48 | } 49 | 50 | @Override 51 | protected void onLinkedInAction() { 52 | throw new IllegalStateException("Unsupported"); 53 | } 54 | 55 | @Override 56 | protected void onFacebookAction() { 57 | throw new IllegalStateException("Unsupported"); 58 | } 59 | 60 | @Override 61 | protected void onGooglePlusAction() { 62 | throw new IllegalStateException("Unsupported"); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/demo/ShowProfileFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.demo; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import com.androidsocialnetworks.lib.SocialPerson; 12 | import com.github.androidsocialnetworks.apidemos.R; 13 | import com.squareup.picasso.Picasso; 14 | 15 | public class ShowProfileFragment extends Fragment { 16 | 17 | public static final String PARAM_SOCIAL_PERSON = "ShowProfileFragment.PARAM_SOCIAL_PERSON"; 18 | 19 | public static ShowProfileFragment newInstance(SocialPerson socialPerson) { 20 | Bundle args = new Bundle(); 21 | args.putParcelable(PARAM_SOCIAL_PERSON, socialPerson); 22 | 23 | ShowProfileFragment showProfileFragment = new ShowProfileFragment(); 24 | showProfileFragment.setArguments(args); 25 | return showProfileFragment; 26 | } 27 | 28 | @Override 29 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 30 | return inflater.inflate(R.layout.fragment_show_profile, container, false); 31 | } 32 | 33 | @Override 34 | public void onViewCreated(View view, Bundle savedInstanceState) { 35 | super.onViewCreated(view, savedInstanceState); 36 | 37 | ImageView avatarImageView = (ImageView) view.findViewById(R.id.avatar_image_view); 38 | TextView profileURLTextView = (TextView) view.findViewById(R.id.profile_url_text_view); 39 | TextView textView = (TextView) view.findViewById(R.id.text_view); 40 | 41 | SocialPerson socialPerson = getArguments().getParcelable(PARAM_SOCIAL_PERSON); 42 | 43 | profileURLTextView.setText(socialPerson.profileURL); 44 | 45 | Picasso.with(getActivity()).load(socialPerson.avatarURL).into(avatarImageView); 46 | 47 | StringBuilder builder = new StringBuilder(); 48 | builder.append("ID: "); 49 | builder.append(socialPerson.id); 50 | builder.append('\n'); 51 | builder.append("Name: "); 52 | builder.append(socialPerson.name); 53 | builder.append('\n'); 54 | builder.append("Company: "); 55 | builder.append(socialPerson.company); 56 | builder.append('\n'); 57 | builder.append("Position: "); 58 | builder.append(socialPerson.position); 59 | builder.append('\n'); 60 | builder.append("Nickname: "); 61 | builder.append(socialPerson.nickname); 62 | builder.append('\n'); 63 | textView.setText(builder.toString()); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/dialog/AlertDialogFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.dialog; 2 | 3 | import android.app.AlertDialog; 4 | import android.app.Dialog; 5 | import android.os.Bundle; 6 | import android.support.v4.app.DialogFragment; 7 | 8 | public class AlertDialogFragment extends DialogFragment { 9 | 10 | private static final String PARAM_TITLE = "AlertDialogFragment.PARAM_TITLE"; 11 | private static final String PARAM_MESSAGE = "AlertDialogFragment.PARAM_MESSAGE"; 12 | 13 | public static AlertDialogFragment newInstance(String title, String message) { 14 | Bundle args = new Bundle(); 15 | args.putString(PARAM_TITLE, title); 16 | args.putString(PARAM_MESSAGE, message); 17 | 18 | AlertDialogFragment alertDialogFragment = new AlertDialogFragment(); 19 | alertDialogFragment.setArguments(args); 20 | return alertDialogFragment; 21 | } 22 | 23 | @Override 24 | public Dialog onCreateDialog(Bundle savedInstanceState) { 25 | final Bundle args = getArguments(); 26 | 27 | final String paramTitle = args.getString(PARAM_TITLE); 28 | final String paramMessage = args.getString(PARAM_MESSAGE); 29 | 30 | AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 31 | builder.setTitle(paramTitle); 32 | builder.setMessage(paramMessage); 33 | builder.setPositiveButton(android.R.string.ok, null); 34 | return builder.create(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /api_demos/src/main/java/com/github/androidsocialnetworks/apidemos/fragment/dialog/ProgressDialogFragment.java: -------------------------------------------------------------------------------- 1 | package com.github.androidsocialnetworks.apidemos.fragment.dialog; 2 | 3 | import android.app.Dialog; 4 | import android.app.ProgressDialog; 5 | import android.content.DialogInterface; 6 | import android.os.Bundle; 7 | import android.support.v4.app.DialogFragment; 8 | import android.support.v4.app.Fragment; 9 | import android.util.Log; 10 | 11 | import com.github.androidsocialnetworks.apidemos.fragment.base.BaseDemoFragment; 12 | 13 | import static com.github.androidsocialnetworks.apidemos.APIDemosApplication.TAG; 14 | 15 | public class ProgressDialogFragment extends DialogFragment { 16 | 17 | private static final String PARAM_MESSAGE = "ProgressDialogFragment.PARAM_MESSAGE"; 18 | 19 | public static ProgressDialogFragment newInstance(String message) { 20 | Log.d(TAG, "ProgressDialogFragment.newInstance: " + message); 21 | 22 | Bundle args = new Bundle(); 23 | args.putString(PARAM_MESSAGE, message); 24 | 25 | ProgressDialogFragment progressDialogFragment = new ProgressDialogFragment(); 26 | progressDialogFragment.setArguments(args); 27 | return progressDialogFragment; 28 | } 29 | 30 | @Override 31 | public Dialog onCreateDialog(Bundle savedInstanceState) { 32 | Log.d(TAG, "ProgressDialogFragment.onCreateDialog"); 33 | 34 | final Bundle args = getArguments(); 35 | 36 | final String paramMessage = args.getString(PARAM_MESSAGE); 37 | 38 | Dialog dialog = ProgressDialog.show(getActivity(), "Executing request", paramMessage); 39 | dialog.setCancelable(true); 40 | return dialog; 41 | } 42 | 43 | @Override 44 | public void onCancel(DialogInterface dialog) { 45 | Log.d(TAG, "ProgressDialogFragment.onCancel"); 46 | 47 | super.onCancel(dialog); 48 | 49 | Fragment fragment = getTargetFragment(); 50 | 51 | // stop all requests on cancel 52 | if (fragment != null && fragment instanceof BaseDemoFragment) { 53 | ((BaseDemoFragment) fragment).onRequestCancel(); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /api_demos/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /api_demos/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /api_demos/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /api_demos/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /api_demos/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonkrasov/AndroidSocialNetworks/d729701bd00ce7a0f46115bb33df09d322d68e26/api_demos/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /api_demos/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /api_demos/src/main/res/layout/fragment_base_buttons.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 |