├── .gitignore
├── README.md
├── app
├── .gitignore
├── build.gradle
├── libs
│ ├── FlurryAnalytics-4.1.0.jar
│ ├── Parse-1.7.1.jar
│ └── android-support-multidex.jar
├── multidex.keep
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── io
│ │ └── github
│ │ └── froger
│ │ └── hellomultidex
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── io
│ │ └── github
│ │ └── froger
│ │ └── hellomultidex
│ │ ├── HelloMultiDexApplication.java
│ │ └── MainActivity.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── layout
│ └── activity_main.xml
│ ├── menu
│ └── menu_main.xml
│ ├── values-v21
│ └── styles.xml
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libs
└── facebook
│ ├── .classpath
│ ├── .project
│ ├── AndroidManifest.xml
│ ├── build.gradle
│ ├── build.xml
│ ├── libs
│ ├── BUCK
│ └── bolts-android-1.1.2.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_button_like_background.png
│ │ ├── com_facebook_button_like_background_selected.png
│ │ ├── com_facebook_button_like_icon.png
│ │ ├── com_facebook_button_like_icon_selected.png
│ │ ├── com_facebook_button_like_pressed.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_button_like_background.png
│ │ ├── com_facebook_button_like_background_selected.png
│ │ ├── com_facebook_button_like_icon.png
│ │ ├── com_facebook_button_like_icon_selected.png
│ │ ├── com_facebook_button_like_pressed.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-xxhdpi
│ │ ├── com_facebook_button_like_background.png
│ │ ├── com_facebook_button_like_background_selected.png
│ │ ├── com_facebook_button_like_icon.png
│ │ ├── com_facebook_button_like_icon_selected.png
│ │ └── com_facebook_button_like_pressed.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_button_like.xml
│ │ ├── com_facebook_button_like_background.png
│ │ ├── com_facebook_button_like_background_selected.png
│ │ ├── com_facebook_button_like_icon.png
│ │ ├── com_facebook_button_like_icon_selected.png
│ │ ├── com_facebook_button_like_pressed.png
│ │ ├── com_facebook_button_like_selected.xml
│ │ ├── 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
│ ├── BoltsMeasurementEventListener.java
│ ├── FacebookAppLinkResolver.java
│ ├── FacebookAuthorizationException.java
│ ├── FacebookBroadcastReceiver.java
│ ├── FacebookDialogException.java
│ ├── FacebookException.java
│ ├── FacebookGraphObjectException.java
│ ├── FacebookOperationCanceledException.java
│ ├── FacebookRequestError.java
│ ├── FacebookSdkVersion.java
│ ├── FacebookServiceException.java
│ ├── FacebookTimeSpentData.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
│ ├── BundleJSONConverter.java
│ ├── CacheableRequestBatch.java
│ ├── FacebookWebFallbackDialog.java
│ ├── FileLruCache.java
│ ├── ImageDownloader.java
│ ├── ImageRequest.java
│ ├── ImageResponse.java
│ ├── ImageResponseCache.java
│ ├── LikeActionController.java
│ ├── LikeBoxCountView.java
│ ├── LikeButton.java
│ ├── LikeStatusClient.java
│ ├── Logger.java
│ ├── NativeProtocol.java
│ ├── PendingCallStore.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
│ ├── LikeView.java
│ ├── LoginButton.java
│ ├── PickerFragment.java
│ ├── PlacePickerFragment.java
│ ├── ProfilePictureView.java
│ ├── SimpleGraphObjectCursor.java
│ ├── ToolTipPopup.java
│ ├── UserSettingsFragment.java
│ └── WebDialog.java
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | /local.properties
3 | /.idea/workspace.xml
4 | /.idea/libraries
5 | .DS_Store
6 | /build
7 |
8 | # Built application files
9 | *.apk
10 | *.ap_
11 |
12 | # Files for the Dalvik VM
13 | *.dex
14 |
15 | # Java class files
16 | *.class
17 |
18 | # Generated files
19 | bin/
20 | gen/
21 |
22 | # Gradle files
23 | .gradle/
24 | build/
25 |
26 | # Local configuration file (sdk path, etc)
27 | local.properties
28 |
29 | # Proguard folder generated by Eclipse
30 | proguard/
31 |
32 | # Log Files
33 | *.log
34 |
35 | # Intellij project files
36 | *.iml
37 | *.ipr
38 | *.iws
39 | .idea/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | HelloMultidex
2 | =============
3 |
4 | Project which shows multi-dex solution for 64k methods count limit in Dalvik.
5 |
6 | Blog post explanation: [MultiDex solution for 64k limit in Dalvik.](http://frogermcs.github.io/MultiDex-solution-for-64k-limit-in-Dalvik/)
7 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply plugin: 'hugo'
3 |
4 | android {
5 | compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
6 | buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
7 |
8 | defaultConfig {
9 | minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
10 | targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
11 |
12 | applicationId "io.github.froger.hellomultidex"
13 | versionCode 1
14 | versionName "1.0"
15 | }
16 | buildTypes {
17 | release {
18 | runProguard false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 |
23 | dexOptions {
24 | preDexLibraries = false
25 | }
26 | }
27 |
28 | repositories {
29 | maven { url 'https://repo.commonsware.com.s3.amazonaws.com' }
30 | maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
31 | maven { url 'https://maven.fabric.io/repo' }
32 | }
33 |
34 | dependencies {
35 | compile fileTree(dir: 'libs', include: ['*.jar'])
36 |
37 | compile 'com.android.support:support-v4:21.+'
38 | compile 'com.android.support:support-v13:21.+'
39 | compile 'com.android.support:appcompat-v7:21.0.+'
40 | compile 'com.android.support:palette-v7:+'
41 | compile 'com.android.support:recyclerview-v7:+'
42 | compile 'com.google.android.gms:play-services:6.1.+'
43 | compile 'com.google.guava:guava:18.0'
44 | compile 'com.google.code.gson:gson:2.3'
45 |
46 | compile 'com.netflix.rxjava:rxjava-android:0.20.5'
47 |
48 | provided 'com.squareup.dagger:dagger-compiler:1.2.2'
49 | compile 'com.squareup.retrofit:retrofit:1.7.0'
50 | compile 'com.squareup.dagger:dagger:1.2.2'
51 | compile 'com.squareup.picasso:picasso:2.3.4'
52 | compile 'com.squareup:otto:1.3.5'
53 |
54 | compile 'com.jakewharton:butterknife:5.1.2'
55 | compile 'com.jakewharton.timber:timber:2.4.0'
56 |
57 | compile 'com.newrelic.agent.android:android-agent:3.+'
58 | compile('com.crashlytics.sdk.android:crashlytics:2.0.0@aar') {
59 | transitive = true;
60 | }
61 |
62 | compile 'com.soundcloud.android:android-crop:0.9.10@aar'
63 | compile 'se.emilsjolander:stickylistheaders:2.5.1'
64 | compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
65 | compile 'com.facebook.rebound:rebound:0.3.6'
66 | }
67 |
68 | afterEvaluate {
69 | tasks.matching {
70 | it.name.startsWith('dex')
71 | }.each { dx ->
72 | if (dx.additionalParameters == null) {
73 | dx.additionalParameters = []
74 | }
75 | dx.additionalParameters += '--multi-dex'
76 | dx.additionalParameters += "--main-dex-list=$projectDir/multidex.keep".toString()
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/app/libs/FlurryAnalytics-4.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/libs/FlurryAnalytics-4.1.0.jar
--------------------------------------------------------------------------------
/app/libs/Parse-1.7.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/libs/Parse-1.7.1.jar
--------------------------------------------------------------------------------
/app/libs/android-support-multidex.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/libs/android-support-multidex.jar
--------------------------------------------------------------------------------
/app/multidex.keep:
--------------------------------------------------------------------------------
1 | android/support/multidex/BuildConfig/class
2 | android/support/multidex/MultiDex$V14/class
3 | android/support/multidex/MultiDex$V19/class
4 | android/support/multidex/MultiDex$V4/class
5 | android/support/multidex/MultiDex/class
6 | android/support/multidex/MultiDexApplication/class
7 | android/support/multidex/MultiDexExtractor$1/class
8 | android/support/multidex/MultiDexExtractor/class
9 | android/support/multidex/ZipUtil$CentralDirectory/class
10 | android/support/multidex/ZipUtil/class
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
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 | #}
18 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/io/github/froger/hellomultidex/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package io.github.froger.hellomultidex;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/froger/hellomultidex/HelloMultiDexApplication.java:
--------------------------------------------------------------------------------
1 | package io.github.froger.hellomultidex;
2 |
3 | import android.support.multidex.MultiDexApplication;
4 |
5 | /**
6 | * Created by froger_mcs on 02.11.14.
7 | */
8 | public class HelloMultiDexApplication extends MultiDexApplication {
9 |
10 | @Override
11 | public void onCreate() {
12 | super.onCreate();
13 | new Runnable() {
14 | @Override
15 | public void run() {
16 | //Your code
17 | }
18 | }.run();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/froger/hellomultidex/MainActivity.java:
--------------------------------------------------------------------------------
1 | package io.github.froger.hellomultidex;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.view.Menu;
6 | import android.view.MenuItem;
7 |
8 |
9 | public class MainActivity extends Activity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_main);
15 | }
16 |
17 |
18 | @Override
19 | public boolean onCreateOptionsMenu(Menu menu) {
20 | // Inflate the menu; this adds items to the action bar if it is present.
21 | getMenuInflater().inflate(R.menu.menu_main, menu);
22 | return true;
23 | }
24 |
25 | @Override
26 | public boolean onOptionsItemSelected(MenuItem item) {
27 | // Handle action bar item clicks here. The action bar will
28 | // automatically handle clicks on the Home/Up button, so long
29 | // as you specify a parent activity in AndroidManifest.xml.
30 | int id = item.getItemId();
31 |
32 | //noinspection SimplifiableIfStatement
33 | if (id == R.id.action_settings) {
34 | return true;
35 | }
36 |
37 | return super.onOptionsItemSelected(item);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | HelloMultidex
5 | Hello world!
6 | Settings
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | jcenter()
4 | mavenCentral()
5 | maven { url 'https://maven.fabric.io/repo' }
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:0.13.+'
10 | classpath 'com.jakewharton.hugo:hugo-plugin:1.1.+'
11 | classpath 'io.fabric.tools:gradle:1.+'
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | ANDROID_BUILD_MIN_SDK_VERSION=15
2 | ANDROID_BUILD_TARGET_SDK_VERSION=21
3 | ANDROID_BUILD_SDK_VERSION=21
4 | ANDROID_BUILD_TOOLS_VERSION=21.0.2
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Apr 10 15:27:10 PDT 2013
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/libs/facebook/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/libs/facebook/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | FacebookSDK
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/libs/facebook/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/libs/facebook/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'android-library'
2 |
3 | project.group = 'com.facebook.android'
4 |
5 | dependencies {
6 | compile 'com.android.support:support-v4:21.0.+'
7 | compile 'com.parse.bolts:bolts-android:1.1.2'
8 | }
9 |
10 | android {
11 | compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
12 | buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
13 |
14 | defaultConfig {
15 | minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
16 | targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
17 | }
18 |
19 | lintOptions {
20 | abortOnError false
21 | }
22 |
23 | sourceSets {
24 | main {
25 | manifest.srcFile 'AndroidManifest.xml'
26 | java.srcDirs = ['src']
27 | res.srcDirs = ['res']
28 | }
29 | }
30 | }
31 |
32 | apply plugin: 'maven'
33 | apply plugin: 'signing'
34 |
35 | def isSnapshot = version.endsWith('-SNAPSHOT')
36 | def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
37 | def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
38 |
39 | task setVersion {
40 | // The version will be derived from source
41 | project.version = null
42 | def sdkVersionFile = file('src/com/facebook/FacebookSdkVersion.java')
43 | sdkVersionFile.eachLine{
44 | def matcher = (it =~ /(?:.*BUILD = \")(.*)(?:\".*)/)
45 | if (matcher.matches()) {
46 | project.version = matcher[0][1]
47 | return
48 | }
49 | }
50 | if (project.version.is('unspecified')) {
51 | throw new GradleScriptException('Version could not be found.', null)
52 | }
53 | }
54 |
55 | uploadArchives {
56 | repositories.mavenDeployer {
57 | beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
58 |
59 | repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
60 | authentication(userName: ossrhUsername, password: ossrhPassword)
61 | }
62 |
63 | snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
64 | authentication(userName: ossrhUsername, password: ossrhPassword)
65 | }
66 |
67 | pom.project {
68 | name 'Facebook-Android-SDK'
69 | artifactId = 'facebook-android-sdk'
70 | packaging 'aar'
71 | description 'Facebook Android SDK'
72 | url 'https://github.com/facebook/facebook-android-sdk'
73 |
74 | scm {
75 | connection 'scm:git@github.com:facebook/facebook-android-sdk.git'
76 | developerConnection 'scm:git@github.com:facebook/facebook-android-sdk.git'
77 | url 'https://github.com/facebook/facebook-android-sdk'
78 | }
79 |
80 | licenses {
81 | license {
82 | name 'The Apache Software License, Version 2.0'
83 | url 'https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt'
84 | distribution 'repo'
85 | }
86 | }
87 |
88 | developers {
89 | developer {
90 | id 'facebook'
91 | name 'Facebook'
92 | }
93 | }
94 | }
95 | }
96 | }
97 |
98 | uploadArchives.dependsOn(setVersion)
99 |
100 | signing {
101 | required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") }
102 | sign configurations.archives
103 | }
104 |
105 | task androidJavadocs(type: Javadoc) {
106 | source = android.sourceSets.main.java.srcDirs
107 | classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
108 | }
109 |
110 | task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
111 | classifier = 'javadoc'
112 | from androidJavadocs.destinationDir
113 | }
114 |
115 | task androidSourcesJar(type: Jar) {
116 | classifier = 'sources'
117 | from android.sourceSets.main.java.sourceFiles
118 | }
119 |
120 | artifacts {
121 | archives androidSourcesJar
122 | archives androidJavadocsJar
123 | }
124 |
125 | afterEvaluate {
126 | androidJavadocs.classpath += project.android.libraryVariants.toList().first().javaCompile.classpath
127 | }
128 |
--------------------------------------------------------------------------------
/libs/facebook/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
29 |
30 |
31 |
40 |
41 |
42 |
43 |
47 |
48 |
60 |
61 |
62 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/libs/facebook/libs/BUCK:
--------------------------------------------------------------------------------
1 | prebuilt_jar(
2 | name = 'android-support-v4',
3 | binary_jar = 'android-support-v4.jar',
4 | visibility = [
5 | 'PUBLIC',
6 | ],
7 | )
8 |
9 | prebuilt_jar(
10 | name = 'bolts',
11 | binary_jar = 'bolts.jar',
12 | visibility = [
13 | 'PUBLIC',
14 | ],
15 | )
16 |
--------------------------------------------------------------------------------
/libs/facebook/libs/bolts-android-1.1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/libs/bolts-android-1.1.2.jar
--------------------------------------------------------------------------------
/libs/facebook/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | android.library=true
14 | # Project target.
15 | target=android-9
16 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_blue_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_grey_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_like_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_like_background.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_like_background_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_like_background_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_like_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_like_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_like_icon_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_like_icon_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_button_like_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_button_like_pressed.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_close.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_inverse_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_inverse_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_logo.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_picker_magnifier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_picker_magnifier.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_black_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-hdpi/com_facebook_tooltip_blue_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-ldpi/com_facebook_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-ldpi/com_facebook_close.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_button_blue_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_inverse_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_inverse_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_picker_magnifier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_picker_magnifier.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_black_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-mdpi/com_facebook_tooltip_blue_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_blue_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_grey_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_background.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_background_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_background_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_icon_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_icon_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_button_like_pressed.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_close.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_inverse_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_inverse_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_logo.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_picker_magnifier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_picker_magnifier.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_black_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_bottomnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_bottomnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_topnub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_topnub.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_xout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xhdpi/com_facebook_tooltip_blue_xout.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_background.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_background_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_background_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_icon_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_icon_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable-xxhdpi/com_facebook_button_like_pressed.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
14 |
18 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_blue_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_blue_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_blue_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_blue_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_blue_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_blue_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_check.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_check_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_check_off.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_check_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_check_on.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_grey_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_grey_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_grey_normal.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_grey_normal.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_grey_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_grey_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
14 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_like_background.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_background_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_like_background_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_like_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_icon_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_like_icon_selected.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_button_like_pressed.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_button_like_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
14 |
19 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_close.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_inverse_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_inverse_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_list_divider.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_list_divider.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_list_section_header_background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_list_section_header_background.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_loginbutton_silver.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
20 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_logo.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_item_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_picker_list_focused.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_longpressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_picker_list_longpressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_picker_list_pressed.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_selector_background_transition.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_list_selector_disabled.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_picker_list_selector_disabled.9.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_picker_top_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
23 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_place_default_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_place_default_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_profile_default_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_profile_default_icon.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_profile_picture_blank_portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_profile_picture_blank_portrait.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_profile_picture_blank_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/frogermcs/HelloMultidex/3713c901a7615402e2d298f901591a217c5d4cd3/libs/facebook/res/drawable/com_facebook_profile_picture_blank_square.png
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_top_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
23 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_top_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
21 |
23 |
25 |
27 |
28 |
--------------------------------------------------------------------------------
/libs/facebook/res/drawable/com_facebook_usersettingsfragment_background_gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
24 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_friendpickerfragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
23 |
24 |
25 |
35 |
36 |
44 |
45 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_login_activity_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
15 |
16 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_activity_circle_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
32 |
33 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
26 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
25 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_list_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
29 |
41 |
48 |
49 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_list_section_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
35 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_search_box.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
24 |
29 |
30 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_title_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
24 |
40 |
46 |
63 |
64 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_picker_title_bar_stub.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_placepickerfragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
24 |
25 |
26 |
27 |
38 |
39 |
47 |
48 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_placepickerfragment_list_row.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
29 |
33 |
40 |
41 |
49 |
61 |
73 |
74 |
81 |
82 |
90 |
91 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_search_bar_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
31 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_tooltip_bubble.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
15 |
24 |
34 |
35 |
44 |
54 |
55 |
--------------------------------------------------------------------------------
/libs/facebook/res/layout/com_facebook_usersettingsfragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
24 |
28 |
29 |
37 |
38 |
47 |
48 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 | Aceptar
20 | Cerrar sesión
21 | Iniciar sesión con Facebook
22 | Sesión iniciada como: %1$s
23 | Sesión iniciada con Facebook
24 | Cerrar sesión
25 | Cancelar
26 | Logo de Facebook
27 | Iniciar sesión…
28 | Sesión iniciada
29 | No has iniciado sesión
30 | %1$s • %2$,d estuvieron aquí
31 | %1$s
32 | es:%1$,d estuvieron aquí
33 | Aceptar
34 | Elige Amigos
35 | Cercano
36 | Cargando
37 | Error de AndroidManifest
38 | WebView inicio de sesión requiere permiso INTERNET
39 | Por favor, iniciar sesión a través https://www.facebook.com o https://m.facebook.com para volver a activar la aplicación para conectar con Facebook.
40 | La aplicación no se conecta con Facebook, inicie sesión y volver a conectar esta aplicación.
41 | Su contraseña de Facebook ha cambiado, por favor vuelva a conectar la aplicación con Facebook.
42 | Se produjo un error al conectar con Facebook, por favor vuelva a conectar la aplicación con Facebook.
43 | Una conexión de aplicación con Facebook falló debido a permisos insuficientes, por favor, conceda los permisos de aplicaciones para realizar la operación.
44 |
45 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-hdpi/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1px
4 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-he/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 | התנתק
20 | התחבר לפייסבוק
21 | מחובר בשם: %1$s
22 | מחובר באמצעות פייסבוק
23 | התנתק
24 | בטל
25 | פייסבוק לוגו
26 | התחבר…
27 | מחובר
28 | לא מחובר
29 | %1$s • %2$,d היו פה
30 | %1$s
31 | %1$,d היו פה
32 | בצע
33 | בחר חברים
34 | קרוב אליי
35 | ..מעלה
36 | AndroidManifest שגיאת
37 | ההתחברות לתצוגת אתר דורשת אישור אינטרנט
38 | .כדי לאפשר מחדש לאפליקציה להתחבר עם פייסבוק https://www.facebook.com או https://m.facebook.com אנא היכנס דרך
39 | .האפליקציה אינה מחוברת לפייסבוק, אנא היכנס וחבר מחדש את האפליקציה
40 | .הסיסמה שלך בפייסבוק השתנתה, אנא חבר מחדש את האפליקציה עם פייסבוק
41 | .ארעה שגיאה בעת החיבור עם פייסבוק, חבר בבקשה מחדש את האפליקציה עם פייסבוק
42 | .חיבור האפליקציה עם פייסבוק נכשל בשל הרשאות לא מספקות, אנא הענק הרשאות לאפליקציה בכדי שהפעולה תוכל להתבצע
43 | אישור
44 |
45 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 | התנתק
20 | התחבר לפייסבוק
21 | מחובר בשם: %1$s
22 | מחובר באמצעות פייסבוק
23 | התנתק
24 | בטל
25 | פייסבוק לוגו
26 | התחבר…
27 | מחובר
28 | לא מחובר
29 | %1$s • %2$,d היו פה
30 | %1$s
31 | %1$,d היו פה
32 | בצע
33 | בחר חברים
34 | קרוב אליי
35 | ..מעלה
36 | AndroidManifest שגיאת
37 | ההתחברות לתצוגת אתר דורשת אישור אינטרנט
38 | .כדי לאפשר מחדש לאפליקציה להתחבר עם פייסבוק https://www.facebook.com או https://m.facebook.com אנא היכנס דרך
39 | .האפליקציה אינה מחוברת לפייסבוק, אנא היכנס וחבר מחדש את האפליקציה
40 | .הסיסמה שלך בפייסבוק השתנתה, אנא חבר מחדש את האפליקציה עם פייסבוק
41 | .ארעה שגיאה בעת החיבור עם פייסבוק, חבר בבקשה מחדש את האפליקציה עם פייסבוק
42 | .חיבור האפליקציה עם פייסבוק נכשל בשל הרשאות לא מספקות, אנא הענק הרשאות לאפליקציה בכדי שהפעולה תוכל להתבצע
43 | אישור
44 |
45 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-ldpi/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1px
4 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-mdpi/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1px
4 |
--------------------------------------------------------------------------------
/libs/facebook/res/values-xhdpi/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2px
4 |
--------------------------------------------------------------------------------
/libs/facebook/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
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 |
--------------------------------------------------------------------------------
/libs/facebook/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 64dp
4 | #f5f5f7
5 | #bcbdc2
6 |
--------------------------------------------------------------------------------
/libs/facebook/res/values/drawables.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #33464c59
4 |
--------------------------------------------------------------------------------
/libs/facebook/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 | OK
20 | Like
21 | Liked
22 | Log out
23 | Log in with Facebook
24 | Logged in as: %1$s
25 | Logged in using Facebook
26 | Log out
27 | Cancel
28 | Facebook Logo
29 | Log in…
30 | Logged in
31 | Not logged in
32 | %1$s • %2$,d were here
33 | %1$s
34 | %1$,d were here
35 | Done
36 | Choose Friends
37 | Nearby
38 | Loading...
39 | AndroidManifest Error
40 | WebView login requires INTERNET permission
41 | Your Facebook account is locked. Please log into www.facebook.com to continue.
42 | Please log into this app again to reconnect your Facebook account.
43 | Your Facebook password has changed. Please log into this app again to reconnect your Facebook account.
44 | Please log into this app again to reconnect your Facebook account.
45 | This app doesn’t have permission to do this. To change permissions, try logging into the app again.
46 | New! You\'re in control - choose what info you want to share with apps.
47 |
48 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/AccessTokenSource.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Indicates where a Facebook access token was obtained from.
21 | */
22 | public enum AccessTokenSource {
23 | /**
24 | * Indicates an access token has not been obtained, or is otherwise invalid.
25 | */
26 | NONE(false),
27 | /**
28 | * Indicates an access token was obtained by the user logging in through the
29 | * Facebook app for Android using the web login dialog.
30 | */
31 | FACEBOOK_APPLICATION_WEB(true),
32 | /**
33 | * Indicates an access token was obtained by the user logging in through the
34 | * Facebook app for Android using the native login dialog.
35 | */
36 | FACEBOOK_APPLICATION_NATIVE(true),
37 | /**
38 | * Indicates an access token was obtained by asking the Facebook app for the
39 | * current token based on permissions the user has already granted to the app.
40 | * No dialog was shown to the user in this case.
41 | */
42 | FACEBOOK_APPLICATION_SERVICE(true),
43 | /**
44 | * Indicates an access token was obtained by the user logging in through the
45 | * Web-based dialog.
46 | */
47 | WEB_VIEW(false),
48 | /**
49 | * Indicates an access token is for a test user rather than an actual
50 | * Facebook user.
51 | */
52 | TEST_USER(true),
53 | /**
54 | * Indicates an access token constructed with a Client Token.
55 | */
56 | CLIENT_TOKEN(true);
57 |
58 | private final boolean canExtendToken;
59 |
60 | AccessTokenSource(boolean canExtendToken) {
61 | this.canExtendToken = canExtendToken;
62 | }
63 |
64 | boolean canExtendToken() {
65 | return canExtendToken;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/BoltsMeasurementEventListener.java:
--------------------------------------------------------------------------------
1 | package com.facebook;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.content.IntentFilter;
7 | import android.os.Bundle;
8 | import android.support.v4.content.LocalBroadcastManager;
9 |
10 | public class BoltsMeasurementEventListener extends BroadcastReceiver {
11 | private static BoltsMeasurementEventListener _instance;
12 |
13 | private final static String MEASUREMENT_EVENT_NOTIFICATION_NAME = "com.parse.bolts.measurement_event";
14 | private final static String MEASUREMENT_EVENT_NAME_KEY = "event_name";
15 | private final static String MEASUREMENT_EVENT_ARGS_KEY = "event_args";
16 | private final static String BOLTS_MEASUREMENT_EVENT_PREFIX = "bf_";
17 |
18 | private Context applicationContext;
19 |
20 | private BoltsMeasurementEventListener(Context context) {
21 | applicationContext = context.getApplicationContext();
22 | }
23 |
24 | private void open() {
25 | LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(applicationContext);
26 | broadcastManager.registerReceiver(this, new IntentFilter(MEASUREMENT_EVENT_NOTIFICATION_NAME));
27 | }
28 |
29 | private void close() {
30 | LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(applicationContext);
31 | broadcastManager.unregisterReceiver(this);
32 | }
33 |
34 | static BoltsMeasurementEventListener getInstance(Context context) {
35 | if (_instance != null) {
36 | return _instance;
37 | }
38 | _instance = new BoltsMeasurementEventListener(context);
39 | _instance.open();
40 | return _instance;
41 | }
42 |
43 | protected void finalize() throws Throwable {
44 | try {
45 | close();
46 | } finally {
47 | super.finalize();
48 | }
49 | }
50 |
51 | @Override
52 | public void onReceive(Context context, Intent intent) {
53 | AppEventsLogger appEventsLogger = AppEventsLogger.newLogger(context);
54 | String eventName = BOLTS_MEASUREMENT_EVENT_PREFIX + intent.getStringExtra(MEASUREMENT_EVENT_NAME_KEY);
55 | Bundle eventArgs = intent.getBundleExtra(MEASUREMENT_EVENT_ARGS_KEY);
56 | Bundle logData = new Bundle();
57 | for(String key : eventArgs.keySet()) {
58 | String safeKey = key.replaceAll("[^0-9a-zA-Z _-]", "-").replaceAll("^[ -]*", "").replaceAll("[ -]*$", "");
59 | logData.putString(safeKey, (String)eventArgs.get(key));
60 | }
61 | appEventsLogger.logEvent(eventName, logData);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookAuthorizationException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * An Exception indicating that a Session failed to open or obtain new permissions.
21 | */
22 | public class FacebookAuthorizationException extends FacebookException {
23 | static final long serialVersionUID = 1;
24 |
25 | /**
26 | * Constructs a FacebookAuthorizationException with no additional
27 | * information.
28 | */
29 | public FacebookAuthorizationException() {
30 | super();
31 | }
32 |
33 | /**
34 | * Constructs a FacebookAuthorizationException with a message.
35 | *
36 | * @param message
37 | * A String to be returned from getMessage.
38 | */
39 | public FacebookAuthorizationException(String message) {
40 | super(message);
41 | }
42 |
43 | /**
44 | * Constructs a FacebookAuthorizationException with a message and inner
45 | * error.
46 | *
47 | * @param message
48 | * A String to be returned from getMessage.
49 | * @param throwable
50 | * A Throwable to be returned from getCause.
51 | */
52 | public FacebookAuthorizationException(String message, Throwable throwable) {
53 | super(message, throwable);
54 | }
55 |
56 | /**
57 | * Constructs a FacebookAuthorizationException with an inner error.
58 | *
59 | * @param throwable
60 | * A Throwable to be returned from getCause.
61 | */
62 | public FacebookAuthorizationException(Throwable throwable) {
63 | super(throwable);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookBroadcastReceiver.java:
--------------------------------------------------------------------------------
1 | package com.facebook;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import com.facebook.internal.NativeProtocol;
8 |
9 | /**
10 | * This class implements a simple BroadcastReceiver designed to listen for broadcast notifications from the
11 | * Facebook app. At present, these notifications consistent of success/failure notifications for photo upload
12 | * operations that happen in the background.
13 | *
14 | * Applications may subclass this class and register it in their AndroidManifest.xml, listening on the
15 | * com.facebook.platform.AppCallResultBroadcast action.
16 | */
17 | public class FacebookBroadcastReceiver extends BroadcastReceiver {
18 |
19 | @Override
20 | public void onReceive(Context context, Intent intent) {
21 | String appCallId = intent.getStringExtra(NativeProtocol.EXTRA_PROTOCOL_CALL_ID);
22 | String action = intent.getStringExtra(NativeProtocol.EXTRA_PROTOCOL_ACTION);
23 | if (appCallId != null && action != null) {
24 | Bundle extras = intent.getExtras();
25 |
26 | if (NativeProtocol.isErrorResult(intent)) {
27 | onFailedAppCall(appCallId, action, extras);
28 | } else {
29 | onSuccessfulAppCall(appCallId, action, extras);
30 | }
31 | }
32 | }
33 |
34 | protected void onSuccessfulAppCall(String appCallId, String action, Bundle extras) {
35 | // Default does nothing.
36 | }
37 |
38 | protected void onFailedAppCall(String appCallId, String action, Bundle extras) {
39 | // Default does nothing.
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookDialogException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Represents an error condition relating to displaying a Facebook Web dialog.
21 | */
22 | public class FacebookDialogException extends FacebookException {
23 | static final long serialVersionUID = 1;
24 | private int errorCode;
25 | private String failingUrl;
26 |
27 | /**
28 | * Constructs a new FacebookException.
29 | */
30 | public FacebookDialogException(String message, int errorCode, String failingUrl) {
31 | super(message);
32 | this.errorCode = errorCode;
33 | this.failingUrl = failingUrl;
34 | }
35 |
36 | /**
37 | * Gets the error code received by the WebView. See:
38 | * http://developer.android.com/reference/android/webkit/WebViewClient.html
39 | *
40 | * @return the error code
41 | */
42 | public int getErrorCode() {
43 | return errorCode;
44 | }
45 |
46 | /**
47 | * Gets the URL that the dialog was trying to load.
48 | * @return the URL
49 | */
50 | public String getFailingUrl() {
51 | return failingUrl;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Represents an error condition specific to the Facebook SDK for Android.
21 | */
22 | public class FacebookException extends RuntimeException {
23 | static final long serialVersionUID = 1;
24 |
25 | /**
26 | * Constructs a new FacebookException.
27 | */
28 | public FacebookException() {
29 | super();
30 | }
31 |
32 | /**
33 | * Constructs a new FacebookException.
34 | *
35 | * @param message
36 | * the detail message of this exception
37 | */
38 | public FacebookException(String message) {
39 | super(message);
40 | }
41 |
42 | /**
43 | * Constructs a new FacebookException.
44 | *
45 | * @param message
46 | * the detail message of this exception
47 | * @param throwable
48 | * the cause of this exception
49 | */
50 | public FacebookException(String message, Throwable throwable) {
51 | super(message, throwable);
52 | }
53 |
54 | /**
55 | * Constructs a new FacebookException.
56 | *
57 | * @param throwable
58 | * the cause of this exception
59 | */
60 | public FacebookException(Throwable throwable) {
61 | super(throwable);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookGraphObjectException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Represents an error specific to the {@link com.facebook.model.GraphObject GraphObject} class.
21 | */
22 | public class FacebookGraphObjectException extends FacebookException {
23 | static final long serialVersionUID = 1;
24 |
25 | /**
26 | * Constructs a new FacebookGraphObjectException.
27 | */
28 | public FacebookGraphObjectException() {
29 | super();
30 | }
31 |
32 | /**
33 | * Constructs a new FacebookGraphObjectException.
34 | *
35 | * @param message
36 | * the detail message of this exception
37 | */
38 | public FacebookGraphObjectException(String message) {
39 | super(message);
40 | }
41 |
42 | /**
43 | * Constructs a new FacebookGraphObjectException.
44 | *
45 | * @param message
46 | * the detail message of this exception
47 | * @param throwable
48 | * the cause of this exception
49 | */
50 | public FacebookGraphObjectException(String message, Throwable throwable) {
51 | super(message, throwable);
52 | }
53 |
54 | /**
55 | * Constructs a new FacebookGraphObjectException.
56 | *
57 | * @param throwable
58 | * the cause of this exception
59 | */
60 | public FacebookGraphObjectException(Throwable throwable) {
61 | super(throwable);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookOperationCanceledException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * An Exception indicating that an operation was canceled before it completed.
21 | */
22 | public class FacebookOperationCanceledException extends FacebookException {
23 | static final long serialVersionUID = 1;
24 |
25 | /**
26 | * Constructs a FacebookOperationCanceledException with no additional information.
27 | */
28 | public FacebookOperationCanceledException() {
29 | super();
30 | }
31 |
32 | /**
33 | * Constructs a FacebookOperationCanceledException with a message.
34 | *
35 | * @param message A String to be returned from getMessage.
36 | */
37 | public FacebookOperationCanceledException(String message) {
38 | super(message);
39 | }
40 |
41 | /**
42 | * Constructs a FacebookOperationCanceledException with a message and inner error.
43 | *
44 | * @param message A String to be returned from getMessage.
45 | * @param throwable A Throwable to be returned from getCause.
46 | */
47 | public FacebookOperationCanceledException(String message, Throwable throwable) {
48 | super(message, throwable);
49 | }
50 |
51 | /**
52 | * Constructs a FacebookOperationCanceledException with an inner error.
53 | *
54 | * @param throwable A Throwable to be returned from getCause.
55 | */
56 | public FacebookOperationCanceledException(Throwable throwable) {
57 | super(throwable);
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookSdkVersion.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | final class FacebookSdkVersion {
20 | public static final String BUILD = "3.19.1";
21 | }
22 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/FacebookServiceException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Represents an error returned from the Facebook service in response to a request.
21 | */
22 | public class FacebookServiceException extends FacebookException {
23 |
24 | private final FacebookRequestError error;
25 |
26 | private static final long serialVersionUID = 1;
27 |
28 | /**
29 | * Constructs a new FacebookServiceException.
30 | *
31 | * @param error the error from the request
32 | */
33 | public FacebookServiceException(FacebookRequestError error, String errorMessage) {
34 | super(errorMessage);
35 | this.error = error;
36 | }
37 |
38 | /**
39 | * Returns an object that encapsulates complete information representing the error returned by Facebook.
40 | *
41 | * @return complete information representing the error.
42 | */
43 | public final FacebookRequestError getRequestError() {
44 | return error;
45 | }
46 |
47 | @Override
48 | public final String toString() {
49 | return new StringBuilder()
50 | .append("{FacebookServiceException: ")
51 | .append("httpResponseCode: ")
52 | .append(error.getRequestStatusCode())
53 | .append(", facebookErrorCode: ")
54 | .append(error.getErrorCode())
55 | .append(", facebookErrorType: ")
56 | .append(error.getErrorType())
57 | .append(", message: ")
58 | .append(error.getErrorMessage())
59 | .append("}")
60 | .toString();
61 | }
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/GetTokenClient.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 |
20 | import android.content.Context;
21 | import android.os.Bundle;
22 | import com.facebook.internal.NativeProtocol;
23 | import com.facebook.internal.PlatformServiceClient;
24 |
25 | final class GetTokenClient extends PlatformServiceClient {
26 |
27 | GetTokenClient(Context context, String applicationId) {
28 | super(context, NativeProtocol.MESSAGE_GET_ACCESS_TOKEN_REQUEST, NativeProtocol.MESSAGE_GET_ACCESS_TOKEN_REPLY,
29 | NativeProtocol.PROTOCOL_VERSION_20121101, applicationId);
30 | }
31 |
32 | @Override
33 | protected void populateRequestBundle(Bundle data) {
34 | }
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/HttpMethod.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Enumeration of HTTP methods supported by Request
21 | */
22 | public enum HttpMethod {
23 | /**
24 | * Use HTTP method "GET" for the request
25 | */
26 | GET,
27 |
28 | /**
29 | * Use HTTP method "POST" for the request
30 | */
31 | POST,
32 |
33 | /**
34 | * Use HTTP method "DELETE" for the request
35 | */
36 | DELETE,
37 | }
38 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/InsightsLogger.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import android.content.Context;
20 | import android.os.Bundle;
21 | import com.facebook.internal.Logger;
22 |
23 | import java.math.BigDecimal;
24 | import java.util.Currency;
25 |
26 | /**
27 | * This class is deprecated. Please use {@link AppEventsLogger} instead.
28 | */
29 | @Deprecated
30 | public class InsightsLogger {
31 | private static final String EVENT_PARAMETER_PIXEL_ID = "fb_offsite_pixel_id";
32 | private static final String EVENT_PARAMETER_PIXEL_VALUE = "fb_offsite_pixel_value";
33 |
34 | private static final String EVENT_NAME_LOG_CONVERSION_PIXEL = "fb_log_offsite_pixel";
35 |
36 | private AppEventsLogger appEventsLogger;
37 |
38 | private InsightsLogger(Context context, String applicationId, Session session) {
39 | appEventsLogger = AppEventsLogger.newLogger(context, applicationId, session);
40 | }
41 |
42 | /**
43 | * Deprecated. Please use {@link AppEventsLogger} instead.
44 | */
45 | public static InsightsLogger newLogger(Context context, String clientToken) {
46 | return new InsightsLogger(context, null, null);
47 | }
48 |
49 | /**
50 | * Deprecated. Please use {@link AppEventsLogger} instead.
51 | */
52 | public static InsightsLogger newLogger(Context context, String clientToken, String applicationId) {
53 | return new InsightsLogger(context, applicationId, null);
54 | }
55 |
56 | /**
57 | * Deprecated. Please use {@link AppEventsLogger} instead.
58 | */
59 | public static InsightsLogger newLogger(Context context, String clientToken, String applicationId, Session session) {
60 | return new InsightsLogger(context, applicationId, session);
61 | }
62 |
63 | /**
64 | * Deprecated. Please use {@link AppEventsLogger} instead.
65 | */
66 | public void logPurchase(BigDecimal purchaseAmount, Currency currency) {
67 | logPurchase(purchaseAmount, currency, null);
68 | }
69 |
70 | /**
71 | * Deprecated. Please use {@link AppEventsLogger} instead.
72 | */
73 | public void logPurchase(BigDecimal purchaseAmount, Currency currency, Bundle parameters) {
74 | appEventsLogger.logPurchase(purchaseAmount, currency, parameters);
75 | }
76 |
77 | /**
78 | * Deprecated. Please use {@link AppEventsLogger} instead.
79 | */
80 | public void logConversionPixel(String pixelId, double valueOfPixel) {
81 |
82 | if (pixelId == null) {
83 | Logger.log(LoggingBehavior.DEVELOPER_ERRORS, "Insights", "pixelID cannot be null");
84 | return;
85 | }
86 |
87 | Bundle parameters = new Bundle();
88 | parameters.putString(EVENT_PARAMETER_PIXEL_ID, pixelId);
89 | parameters.putDouble(EVENT_PARAMETER_PIXEL_VALUE, valueOfPixel);
90 |
91 | appEventsLogger.logEvent(EVENT_NAME_LOG_CONVERSION_PIXEL, valueOfPixel, parameters);
92 | AppEventsLogger.eagerFlush();
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/LegacyHelper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import android.os.Bundle;
20 |
21 | /**
22 | * LegacyHelper is solely for the use of other packages within the Facebook SDK for Android. Use of
23 | * any of the methods in this class is unsupported, and they may be modified or removed without warning at
24 | * any time.
25 | */
26 | public class LegacyHelper {
27 | @Deprecated
28 | public static void extendTokenCompleted(Session session, Bundle bundle) {
29 | session.extendTokenCompleted(bundle);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/LoggingBehavior.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Specifies different categories of logging messages that can be generated.
21 | *
22 | * @see Settings#addLoggingBehavior(LoggingBehavior)
23 | */
24 | public enum LoggingBehavior {
25 | /**
26 | * Indicates that HTTP requests and a summary of responses should be logged.
27 | */
28 | REQUESTS,
29 | /**
30 | * Indicates that access tokens should be logged as part of the request logging; normally they are not.
31 | */
32 | INCLUDE_ACCESS_TOKENS,
33 | /**
34 | * Indicates that the entire raw HTTP response for each request should be logged.
35 | */
36 | INCLUDE_RAW_RESPONSES,
37 | /**
38 | * Indicates that cache operations should be logged.
39 | */
40 | CACHE,
41 | /**
42 | * Indicates the App Events-related operations should be logged.
43 | */
44 | APP_EVENTS,
45 | /**
46 | * Indicates that likely developer errors should be logged. (This is set by default in LoggingBehavior.)
47 | */
48 | DEVELOPER_ERRORS
49 | ;
50 |
51 | @Deprecated
52 | public static final LoggingBehavior INSIGHTS = APP_EVENTS;
53 | }
54 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/NonCachingTokenCachingStrategy.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import android.os.Bundle;
20 |
21 | /**
22 | * Implements a trivial {@link TokenCachingStrategy} that does not actually cache any tokens.
23 | * It is intended for use when an access token may be used on a temporary basis but should not be
24 | * cached for future use (for instance, when handling a deep link).
25 | */
26 | public class NonCachingTokenCachingStrategy extends TokenCachingStrategy {
27 | @Override
28 | public Bundle load() {
29 | return null;
30 | }
31 |
32 | @Override
33 | public void save(Bundle bundle) {
34 | }
35 |
36 | @Override
37 | public void clear() {
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/ProgressNoopOutputStream.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import android.os.Handler;
20 |
21 | import java.io.OutputStream;
22 | import java.util.HashMap;
23 | import java.util.Map;
24 |
25 | class ProgressNoopOutputStream extends OutputStream implements RequestOutputStream {
26 | private final Map progressMap = new HashMap();
27 | private final Handler callbackHandler;
28 |
29 | private Request currentRequest;
30 | private RequestProgress currentRequestProgress;
31 | private int batchMax;
32 |
33 | ProgressNoopOutputStream(Handler callbackHandler) {
34 | this.callbackHandler = callbackHandler;
35 | }
36 |
37 | public void setCurrentRequest(Request currentRequest) {
38 | this.currentRequest = currentRequest;
39 | this.currentRequestProgress = currentRequest != null? progressMap.get(currentRequest) : null;
40 | }
41 |
42 | int getMaxProgress() {
43 | return batchMax;
44 | }
45 |
46 | Map getProgressMap() {
47 | return progressMap;
48 | }
49 |
50 | void addProgress(long size) {
51 | if (currentRequestProgress == null) {
52 | currentRequestProgress = new RequestProgress(callbackHandler, currentRequest);
53 | progressMap.put(currentRequest, currentRequestProgress);
54 | }
55 |
56 | currentRequestProgress.addToMax(size);
57 | batchMax += size;
58 | }
59 |
60 | @Override
61 | public void write(byte[] buffer) {
62 | addProgress(buffer.length);
63 | }
64 |
65 | @Override
66 | public void write(byte[] buffer, int offset, int length) {
67 | addProgress(length);
68 | }
69 |
70 | @Override
71 | public void write(int oneByte) {
72 | addProgress(1);
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/RequestOutputStream.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | interface RequestOutputStream {
20 | void setCurrentRequest(Request r);
21 | }
22 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/RequestProgress.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import android.os.Handler;
20 |
21 | class RequestProgress {
22 | private final Request request;
23 | private final Handler callbackHandler;
24 | private final long threshold;
25 |
26 | private long progress, lastReportedProgress, maxProgress;
27 |
28 | RequestProgress(Handler callbackHandler, Request request) {
29 | this.request = request;
30 | this.callbackHandler = callbackHandler;
31 |
32 | this.threshold = Settings.getOnProgressThreshold();
33 | }
34 |
35 | long getProgress() {
36 | return progress;
37 | }
38 |
39 | long getMaxProgress() {
40 | return maxProgress;
41 | }
42 |
43 | void addProgress(long size) {
44 | progress += size;
45 |
46 | if (progress >= lastReportedProgress + threshold || progress >= maxProgress) {
47 | reportProgress();
48 | }
49 | }
50 |
51 | void addToMax(long size) {
52 | maxProgress += size;
53 | }
54 |
55 | void reportProgress() {
56 | if (progress > lastReportedProgress) {
57 | Request.Callback callback = request.getCallback();
58 | if (maxProgress > 0 && callback instanceof Request.OnProgressCallback) {
59 | // Keep copies to avoid threading issues
60 | final long currentCopy = progress;
61 | final long maxProgressCopy = maxProgress;
62 | final Request.OnProgressCallback callbackCopy = (Request.OnProgressCallback) callback;
63 | if (callbackHandler == null) {
64 | callbackCopy.onProgress(currentCopy, maxProgressCopy);
65 | }
66 | else {
67 | callbackHandler.post(new Runnable() {
68 | @Override
69 | public void run() {
70 | callbackCopy.onProgress(currentCopy, maxProgressCopy);
71 | }
72 | });
73 | }
74 | lastReportedProgress = progress;
75 | }
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/SessionDefaultAudience.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | import com.facebook.internal.NativeProtocol;
20 |
21 | /**
22 | * Certain operations such as publishing a status or publishing a photo require an audience. When the user
23 | * grants an application permission to perform a publish operation, a default audience is selected as the
24 | * publication ceiling for the application. This enumerated value allows the application to select which
25 | * audience to ask the user to grant publish permission for.
26 | */
27 | public enum SessionDefaultAudience {
28 | /**
29 | * Represents an invalid default audience value, can be used when only reading.
30 | */
31 | NONE(null),
32 |
33 | /**
34 | * Indicates only the user is able to see posts made by the application.
35 | */
36 | ONLY_ME(NativeProtocol.AUDIENCE_ME),
37 |
38 | /**
39 | * Indicates that the user's friends are able to see posts made by the application.
40 | */
41 | FRIENDS(NativeProtocol.AUDIENCE_FRIENDS),
42 |
43 | /**
44 | * Indicates that all Facebook users are able to see posts made by the application.
45 | */
46 | EVERYONE(NativeProtocol.AUDIENCE_EVERYONE);
47 |
48 | private final String nativeProtocolAudience;
49 |
50 | private SessionDefaultAudience(String protocol) {
51 | nativeProtocolAudience = protocol;
52 | }
53 |
54 | public String getNativeProtocolAudience() {
55 | return nativeProtocolAudience;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/SessionLoginBehavior.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook;
18 |
19 | /**
20 | * Specifies the behaviors to try during
21 | * {@link Session#openForRead(com.facebook.Session.OpenRequest) openForRead},
22 | * {@link Session#openForPublish(com.facebook.Session.OpenRequest) openForPublish},
23 | * {@link Session#requestNewReadPermissions(com.facebook.Session.NewPermissionsRequest) requestNewReadPermissions}, or
24 | * {@link Session#requestNewPublishPermissions(com.facebook.Session.NewPermissionsRequest) requestNewPublishPermissions}.
25 | */
26 | public enum SessionLoginBehavior {
27 | /**
28 | * Specifies that Session should attempt Single Sign On (SSO), and if that
29 | * does not work fall back to dialog auth. This is the default behavior.
30 | */
31 | SSO_WITH_FALLBACK(true, true),
32 |
33 | /**
34 | * Specifies that Session should only attempt SSO. If SSO fails, then the
35 | * open or new permissions call fails.
36 | */
37 | SSO_ONLY(true, false),
38 |
39 | /**
40 | * Specifies that SSO should not be attempted, and to only use dialog auth.
41 | */
42 | SUPPRESS_SSO(false, true);
43 |
44 | private final boolean allowsKatanaAuth;
45 | private final boolean allowsWebViewAuth;
46 |
47 | private SessionLoginBehavior(boolean allowsKatanaAuth, boolean allowsWebViewAuth) {
48 | this.allowsKatanaAuth = allowsKatanaAuth;
49 | this.allowsWebViewAuth = allowsWebViewAuth;
50 | }
51 |
52 | boolean allowsKatanaAuth() {
53 | return allowsKatanaAuth;
54 | }
55 |
56 | boolean allowsWebViewAuth() {
57 | return allowsWebViewAuth;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/android/DialogError.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.android;
18 |
19 | /**
20 | * Encapsulation of Dialog Error.
21 | *
22 | * THIS CLASS SHOULD BE CONSIDERED DEPRECATED.
23 | *
24 | * All public members of this class are intentionally deprecated.
25 | * New code should instead use
26 | * {@link com.facebook.FacebookException}
27 | *
28 | * Adding @Deprecated to this class causes warnings in other deprecated classes
29 | * that reference this one. That is the only reason this entire class is not
30 | * deprecated.
31 | *
32 | * @devDocDeprecated
33 | */
34 | public class DialogError extends Throwable {
35 |
36 | private static final long serialVersionUID = 1L;
37 |
38 | /**
39 | * The ErrorCode received by the WebView: see
40 | * http://developer.android.com/reference/android/webkit/WebViewClient.html
41 | */
42 | private int mErrorCode;
43 |
44 | /** The URL that the dialog was trying to load */
45 | private String mFailingUrl;
46 |
47 | @Deprecated
48 | public DialogError(String message, int errorCode, String failingUrl) {
49 | super(message);
50 | mErrorCode = errorCode;
51 | mFailingUrl = failingUrl;
52 | }
53 |
54 | @Deprecated
55 | public int getErrorCode() {
56 | return mErrorCode;
57 | }
58 |
59 | @Deprecated
60 | public String getFailingUrl() {
61 | return mFailingUrl;
62 | }
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/android/FacebookError.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.android;
18 |
19 | /**
20 | * Encapsulation of a Facebook Error: a Facebook request that could not be
21 | * fulfilled.
22 | *
23 | * THIS CLASS SHOULD BE CONSIDERED DEPRECATED.
24 | *
25 | * All public members of this class are intentionally deprecated.
26 | * New code should instead use
27 | * {@link com.facebook.FacebookException}
28 | *
29 | * Adding @Deprecated to this class causes warnings in other deprecated classes
30 | * that reference this one. That is the only reason this entire class is not
31 | * deprecated.
32 | *
33 | * @devDocDeprecated
34 | */
35 | public class FacebookError extends RuntimeException {
36 |
37 | private static final long serialVersionUID = 1L;
38 |
39 | private int mErrorCode = 0;
40 | private String mErrorType;
41 |
42 | @Deprecated
43 | public FacebookError(String message) {
44 | super(message);
45 | }
46 |
47 | @Deprecated
48 | public FacebookError(String message, String type, int code) {
49 | super(message);
50 | mErrorType = type;
51 | mErrorCode = code;
52 | }
53 |
54 | @Deprecated
55 | public int getErrorCode() {
56 | return mErrorCode;
57 | }
58 |
59 | @Deprecated
60 | public String getErrorType() {
61 | return mErrorType;
62 | }
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/android/FbDialog.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.android;
18 |
19 | import android.content.Context;
20 | import android.os.Bundle;
21 | import com.facebook.FacebookDialogException;
22 | import com.facebook.FacebookException;
23 | import com.facebook.FacebookOperationCanceledException;
24 | import com.facebook.android.Facebook.DialogListener;
25 | import com.facebook.widget.WebDialog;
26 |
27 | /**
28 | * This class is deprecated. See {@link com.facebook.widget.WebDialog}.
29 | */
30 | @Deprecated
31 | public class FbDialog extends WebDialog {
32 | private DialogListener mListener;
33 |
34 | public FbDialog(Context context, String url, DialogListener listener) {
35 | this(context, url, listener, DEFAULT_THEME);
36 | }
37 |
38 | public FbDialog(Context context, String url, DialogListener listener, int theme) {
39 | super(context, url, theme);
40 | setDialogListener(listener);
41 | }
42 |
43 | public FbDialog(Context context, String action, Bundle parameters, DialogListener listener) {
44 | super(context, action, parameters, DEFAULT_THEME, null);
45 | setDialogListener(listener);
46 | }
47 |
48 | public FbDialog(Context context, String action, Bundle parameters, DialogListener listener,
49 | int theme) {
50 | super(context, action, parameters, theme, null);
51 | setDialogListener(listener);
52 | }
53 |
54 | private void setDialogListener(DialogListener listener) {
55 | this.mListener = listener;
56 | setOnCompleteListener(new OnCompleteListener() {
57 | @Override
58 | public void onComplete(Bundle values, FacebookException error) {
59 | callDialogListener(values, error);
60 | }
61 | });
62 | }
63 |
64 | private void callDialogListener(Bundle values, FacebookException error) {
65 | if (mListener == null) {
66 | return;
67 | }
68 |
69 | if (values != null) {
70 | mListener.onComplete(values);
71 | } else {
72 | if (error instanceof FacebookDialogException) {
73 | FacebookDialogException facebookDialogException = (FacebookDialogException) error;
74 | DialogError dialogError = new DialogError(facebookDialogException.getMessage(),
75 | facebookDialogException.getErrorCode(), facebookDialogException.getFailingUrl());
76 | mListener.onError(dialogError);
77 | } else if (error instanceof FacebookOperationCanceledException) {
78 | mListener.onCancel();
79 | } else {
80 | FacebookError facebookError = new FacebookError(error.getMessage());
81 | mListener.onFacebookError(facebookError);
82 | }
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/CacheableRequestBatch.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | import com.facebook.Request;
20 | import com.facebook.RequestBatch;
21 |
22 | /**
23 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
24 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
25 | * any time.
26 | */
27 | public class CacheableRequestBatch extends RequestBatch {
28 | private String cacheKey;
29 | private boolean forceRoundTrip;
30 |
31 | public CacheableRequestBatch() {
32 | }
33 |
34 | public CacheableRequestBatch(Request... requests) {
35 | super(requests);
36 | }
37 |
38 | public final String getCacheKeyOverride() {
39 | return cacheKey;
40 | }
41 |
42 | // If this is set, the provided string will override the default key (the URL) for single requests.
43 | // There is no default for multi-request batches, so no caching will be done unless the override is
44 | // specified.
45 | public final void setCacheKeyOverride(String cacheKey) {
46 | this.cacheKey = cacheKey;
47 | }
48 |
49 | public final boolean getForceRoundTrip() {
50 | return forceRoundTrip;
51 | }
52 |
53 | public final void setForceRoundTrip(boolean forceRoundTrip) {
54 | this.forceRoundTrip = forceRoundTrip;
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/ImageResponse.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | import android.graphics.Bitmap;
20 |
21 | public class ImageResponse {
22 |
23 | private ImageRequest request;
24 | private Exception error;
25 | private boolean isCachedRedirect;
26 | private Bitmap bitmap;
27 |
28 | ImageResponse(ImageRequest request, Exception error, boolean isCachedRedirect, Bitmap bitmap) {
29 | this.request = request;
30 | this.error = error;
31 | this.bitmap = bitmap;
32 | this.isCachedRedirect = isCachedRedirect;
33 | }
34 |
35 | public ImageRequest getRequest() {
36 | return request;
37 | }
38 |
39 | public Exception getError() {
40 | return error;
41 | }
42 |
43 | public Bitmap getBitmap() {
44 | return bitmap;
45 | }
46 |
47 | public boolean isCachedRedirect() {
48 | return isCachedRedirect;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/LikeButton.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | import android.content.Context;
20 | import android.graphics.Typeface;
21 | import android.util.TypedValue;
22 | import android.view.Gravity;
23 | import android.widget.Button;
24 | import com.facebook.android.R;
25 |
26 | /**
27 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
28 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
29 | * any time.
30 | */
31 | public class LikeButton extends Button {
32 |
33 | private boolean isLiked;
34 |
35 | /**
36 | * Create the LikeButton .
37 | *
38 | * @see android.view.View#View(android.content.Context)
39 | */
40 | public LikeButton(Context context, boolean isLiked) {
41 | super(context);
42 |
43 | this.isLiked = isLiked;
44 |
45 | initialize();
46 | }
47 |
48 | public void setLikeState(boolean isLiked) {
49 | if (isLiked != this.isLiked) {
50 | this.isLiked = isLiked;
51 | updateForLikeStatus();
52 | }
53 | }
54 |
55 | private void initialize() {
56 | // apparently there's no method of setting a default style in xml,
57 | // so in case the users do not explicitly specify a style, we need
58 | // to use sensible defaults.
59 | this.setGravity(Gravity.CENTER_VERTICAL);
60 | this.setTextColor(getResources().getColor(R.color.com_facebook_likebutton_text_color));
61 | this.setTextSize(TypedValue.COMPLEX_UNIT_PX,
62 | getResources().getDimension(R.dimen.com_facebook_likebutton_text_size));
63 | this.setTypeface(Typeface.DEFAULT_BOLD);
64 |
65 | this.setCompoundDrawablePadding(
66 | getResources().getDimensionPixelSize(R.dimen.com_facebook_likebutton_compound_drawable_padding));
67 | this.setPadding(
68 | getResources().getDimensionPixelSize(R.dimen.com_facebook_likebutton_padding_left),
69 | getResources().getDimensionPixelSize(R.dimen.com_facebook_likebutton_padding_top),
70 | getResources().getDimensionPixelSize(R.dimen.com_facebook_likebutton_padding_right),
71 | getResources().getDimensionPixelSize(R.dimen.com_facebook_likebutton_padding_bottom));
72 |
73 | updateForLikeStatus();
74 | }
75 |
76 | private void updateForLikeStatus() {
77 | if (isLiked) {
78 | this.setBackgroundResource(R.drawable.com_facebook_button_like_selected);
79 | this.setCompoundDrawablesWithIntrinsicBounds(R.drawable.com_facebook_button_like_icon_selected, 0, 0, 0);
80 | this.setText(getResources().getString(R.string.com_facebook_like_button_liked));
81 | } else {
82 | this.setBackgroundResource(R.drawable.com_facebook_button_like);
83 | this.setCompoundDrawablesWithIntrinsicBounds(R.drawable.com_facebook_button_like_icon, 0, 0, 0);
84 | this.setText(getResources().getString(R.string.com_facebook_like_button_not_liked));
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/LikeStatusClient.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 |
20 | import android.content.Context;
21 | import android.os.Bundle;
22 |
23 | /**
24 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
25 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
26 | * any time.
27 | */
28 |
29 | /**
30 | * This class executes service calls to fetch like-state of objects from the Facebook Application, if available.
31 | */
32 | final class LikeStatusClient extends PlatformServiceClient {
33 | private String objectId;
34 |
35 | LikeStatusClient(Context context, String applicationId, String objectId) {
36 | super(context, NativeProtocol.MESSAGE_GET_LIKE_STATUS_REQUEST, NativeProtocol.MESSAGE_GET_LIKE_STATUS_REPLY,
37 | NativeProtocol.PROTOCOL_VERSION_20141001, applicationId);
38 |
39 | this.objectId = objectId;
40 | }
41 |
42 | @Override
43 | protected void populateRequestBundle(Bundle data) {
44 | // Only thing we need to pass in is the object id.
45 | data.putString(NativeProtocol.EXTRA_OBJECT_ID, objectId);
46 | }
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/PendingCallStore.java:
--------------------------------------------------------------------------------
1 | package com.facebook.internal;
2 |
3 | import android.content.Context;
4 | import android.os.Bundle;
5 | import com.facebook.widget.FacebookDialog;
6 |
7 | import java.util.ArrayList;
8 | import java.util.HashMap;
9 | import java.util.Map;
10 | import java.util.UUID;
11 |
12 | /**
13 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
14 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
15 | * any time.
16 | */
17 | public class PendingCallStore {
18 | private static final String CALL_ID_ARRAY_KEY = "com.facebook.internal.PendingCallStore.callIdArrayKey";
19 | private static final String CALL_KEY_PREFIX = "com.facebook.internal.PendingCallStore.";
20 |
21 | private static PendingCallStore mInstance;
22 |
23 | private Map pendingCallMap = new HashMap();
24 |
25 | public static PendingCallStore getInstance() {
26 | if (mInstance == null) {
27 | createInstance();
28 | }
29 |
30 | return mInstance;
31 | }
32 |
33 | private synchronized static void createInstance() {
34 | if (mInstance == null) {
35 | mInstance = new PendingCallStore();
36 | }
37 | }
38 |
39 | public void trackPendingCall(FacebookDialog.PendingCall pendingCall) {
40 | if (pendingCall != null) {
41 | pendingCallMap.put(pendingCall.getCallId().toString(), pendingCall);
42 | }
43 | }
44 |
45 | public void stopTrackingPendingCall(UUID callId) {
46 | if (callId != null) {
47 | pendingCallMap.remove(callId.toString());
48 | }
49 | }
50 |
51 | public FacebookDialog.PendingCall getPendingCallById(UUID callId) {
52 | if (callId == null) {
53 | return null;
54 | }
55 | return pendingCallMap.get(callId.toString());
56 | }
57 |
58 | public void saveInstanceState(Bundle outState) {
59 | ArrayList callIds = new ArrayList(pendingCallMap.keySet());
60 | outState.putStringArrayList(CALL_ID_ARRAY_KEY, callIds);
61 |
62 | for(FacebookDialog.PendingCall pendingCall : pendingCallMap.values()) {
63 | String stateKey = getSavedStateKeyForPendingCallId(pendingCall.getCallId().toString());
64 | outState.putParcelable(stateKey, pendingCall);
65 | }
66 | }
67 |
68 | public void restoreFromSavedInstanceState(Bundle savedInstanceState) {
69 | ArrayList callIds = savedInstanceState.getStringArrayList(CALL_ID_ARRAY_KEY);
70 | if (callIds != null) {
71 | for (String callId : callIds) {
72 | String stateKey = getSavedStateKeyForPendingCallId(callId);
73 | FacebookDialog.PendingCall pendingCall = savedInstanceState.getParcelable(stateKey);
74 |
75 | if (pendingCall != null) {
76 | pendingCallMap.put(pendingCall.getCallId().toString(), pendingCall);
77 | }
78 | }
79 | }
80 | }
81 |
82 | private String getSavedStateKeyForPendingCallId(String pendingCallId) {
83 | return CALL_KEY_PREFIX + pendingCallId;
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/SessionAuthorizationType.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | /**
20 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
21 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
22 | * any time.
23 | */
24 | public enum SessionAuthorizationType {
25 | READ,
26 | PUBLISH
27 | }
28 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/UrlRedirectCache.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | import android.content.Context;
20 | import android.util.Log;
21 | import com.facebook.LoggingBehavior;
22 |
23 | import java.io.IOException;
24 | import java.io.InputStream;
25 | import java.io.InputStreamReader;
26 | import java.io.OutputStream;
27 | import java.net.URI;
28 | import java.net.URISyntaxException;
29 |
30 | class UrlRedirectCache {
31 | static final String TAG = UrlRedirectCache.class.getSimpleName();
32 | private static final String REDIRECT_CONTENT_TAG = TAG + "_Redirect";
33 |
34 | private volatile static FileLruCache urlRedirectCache;
35 |
36 | synchronized static FileLruCache getCache(Context context) throws IOException{
37 | if (urlRedirectCache == null) {
38 | urlRedirectCache = new FileLruCache(context.getApplicationContext(), TAG, new FileLruCache.Limits());
39 | }
40 | return urlRedirectCache;
41 | }
42 |
43 | static URI getRedirectedUri(Context context, URI uri) {
44 | if (uri == null) {
45 | return null;
46 | }
47 |
48 | String uriString = uri.toString();
49 | InputStreamReader reader = null;
50 | try {
51 | InputStream stream;
52 | FileLruCache cache = getCache(context);
53 | boolean redirectExists = false;
54 | while ((stream = cache.get(uriString, REDIRECT_CONTENT_TAG)) != null) {
55 | redirectExists = true;
56 |
57 | // Get the redirected url
58 | reader = new InputStreamReader(stream);
59 | char[] buffer = new char[128];
60 | int bufferLength;
61 | StringBuilder urlBuilder = new StringBuilder();
62 | while ((bufferLength = reader.read(buffer, 0, buffer.length)) > 0) {
63 | urlBuilder.append(buffer, 0, bufferLength);
64 | }
65 | Utility.closeQuietly(reader);
66 |
67 | // Iterate to the next url in the redirection
68 | uriString = urlBuilder.toString();
69 | }
70 |
71 | if (redirectExists) {
72 | return new URI(uriString);
73 | }
74 | } catch (URISyntaxException e) {
75 | // caching is best effort, so ignore the exception
76 | } catch (IOException ioe) {
77 | } finally {
78 | Utility.closeQuietly(reader);
79 | }
80 |
81 | return null;
82 | }
83 |
84 | static void cacheUriRedirect(Context context, URI fromUri, URI toUri) {
85 | if (fromUri == null || toUri == null) {
86 | return;
87 | }
88 |
89 | OutputStream redirectStream = null;
90 | try {
91 | FileLruCache cache = getCache(context);
92 | redirectStream = cache.openPutStream(fromUri.toString(), REDIRECT_CONTENT_TAG);
93 | redirectStream.write(toUri.toString().getBytes());
94 | } catch (IOException e) {
95 | // Caching is best effort
96 | } finally {
97 | Utility.closeQuietly(redirectStream);
98 | }
99 | }
100 |
101 | static void clearCache(Context context) {
102 | try {
103 | getCache(context).clearCache();
104 | } catch (IOException e) {
105 | Logger.log(LoggingBehavior.CACHE, Log.WARN, TAG, "clearCache failed " + e.getMessage());
106 | }
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/Validate.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.internal;
18 |
19 | import java.util.Collection;
20 |
21 | /**
22 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
23 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
24 | * any time.
25 | */
26 | public final class Validate {
27 | public static void notNull(Object arg, String name) {
28 | if (arg == null) {
29 | throw new NullPointerException("Argument '" + name + "' cannot be null");
30 | }
31 | }
32 |
33 | public static void notEmpty(Collection container, String name) {
34 | if (container.isEmpty()) {
35 | throw new IllegalArgumentException("Container '" + name + "' cannot be empty");
36 | }
37 | }
38 |
39 | public static void containsNoNulls(Collection container, String name) {
40 | Validate.notNull(container, name);
41 | for (T item : container) {
42 | if (item == null) {
43 | throw new NullPointerException("Container '" + name + "' cannot contain null values");
44 | }
45 | }
46 | }
47 |
48 | public static void containsNoNullOrEmpty(Collection container, String name) {
49 | Validate.notNull(container, name);
50 | for (String item : container) {
51 | if (item == null) {
52 | throw new NullPointerException("Container '" + name + "' cannot contain null values");
53 | }
54 | if (item.length() == 0) {
55 | throw new IllegalArgumentException("Container '" + name + "' cannot contain empty values");
56 | }
57 | }
58 | }
59 |
60 | public static void notEmptyAndContainsNoNulls(Collection container, String name) {
61 | Validate.containsNoNulls(container, name);
62 | Validate.notEmpty(container, name);
63 | }
64 |
65 | public static void notNullOrEmpty(String arg, String name) {
66 | if (Utility.isNullOrEmpty(arg)) {
67 | throw new IllegalArgumentException("Argument '" + name + "' cannot be null or empty");
68 | }
69 | }
70 |
71 | public static void oneOf(Object arg, String name, Object... values) {
72 | for (Object value : values) {
73 | if (value != null) {
74 | if (value.equals(arg)) {
75 | return;
76 | }
77 | } else {
78 | if (arg == null) {
79 | return;
80 | }
81 | }
82 | }
83 | throw new IllegalArgumentException("Argument '" + name + "' was not one of the allowed values");
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/internal/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * com.facebook.internal is solely for the use of other packages within the Facebook SDK for Android. Use of
3 | * any of the classes in this package is unsupported, and they may be modified or removed without warning at
4 | * any time.
5 | */
6 | package com.facebook.internal;
7 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/CreateGraphObject.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | import java.lang.annotation.Retention;
20 | import java.lang.annotation.RetentionPolicy;
21 |
22 | /**
23 | * Use this annotation setters in an interface that derives from
24 | * GraphObject, if you wish to provide a setter that takes a primitive data type (e.g., String)
25 | * or a List of primitive data types, but actually populates its underlying property with a
26 | * new GraphObject with a property equal to the specified value (or a List of such GraphObjects).
27 | * This is useful for providing "helper" setters to avoid requiring callers to instantiate a GraphObject
28 | * just to set a single property on it (e.g., 'url' or 'id').
29 | *
30 | * The String value provided to this annotation should be the name of the property that will be
31 | * populated on the newly-created GraphObject using the value that was passed to the setter.
32 | *
33 | * This annotation has no effect if applied to a getter.
34 | */
35 | @Retention(RetentionPolicy.RUNTIME)
36 | public @interface CreateGraphObject {
37 | String value();
38 | }
39 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/GraphLocation.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | /**
20 | * Provides a strongly-typed representation of a Location as defined by the Graph API.
21 | *
22 | * Note that this interface is intended to be used with GraphObject.Factory
23 | * and not implemented directly.
24 | */
25 | public interface GraphLocation extends GraphObject {
26 | /**
27 | * Returns the street component of the location.
28 | *
29 | * @return the street component of the location, or null
30 | */
31 | public String getStreet();
32 |
33 | /**
34 | * Sets the street component of the location.
35 | *
36 | * @param street
37 | * the street component of the location, or null
38 | */
39 | public void setStreet(String street);
40 |
41 | /**
42 | * Gets the city component of the location.
43 | *
44 | * @return the city component of the location
45 | */
46 | public String getCity();
47 |
48 | /**
49 | * Sets the city component of the location.
50 | *
51 | * @param city
52 | * the city component of the location
53 | */
54 | public void setCity(String city);
55 |
56 | /**
57 | * Returns the state component of the location.
58 | *
59 | * @return the state component of the location
60 | */
61 | public String getState();
62 |
63 | /**
64 | * Sets the state component of the location.
65 | *
66 | * @param state
67 | * the state component of the location
68 | */
69 | public void setState(String state);
70 |
71 | /**
72 | * Returns the country component of the location.
73 | *
74 | * @return the country component of the location
75 | */
76 | public String getCountry();
77 |
78 | /**
79 | * Sets the country component of the location
80 | *
81 | * @param country
82 | * the country component of the location
83 | */
84 | public void setCountry(String country);
85 |
86 | /**
87 | * Returns the postal code component of the location.
88 | *
89 | * @return the postal code component of the location
90 | */
91 | public String getZip();
92 |
93 | /**
94 | * Sets the postal code component of the location.
95 | *
96 | * @param zip
97 | * the postal code component of the location
98 | */
99 | public void setZip(String zip);
100 |
101 | /**
102 | * Returns the latitude component of the location.
103 | *
104 | * @return the latitude component of the location
105 | */
106 | public double getLatitude();
107 |
108 | /**
109 | * Sets the latitude component of the location.
110 | *
111 | * @param latitude
112 | * the latitude component of the location
113 | */
114 | public void setLatitude(double latitude);
115 |
116 | /**
117 | * Returns the longitude component of the location.
118 | *
119 | * @return the longitude component of the location
120 | */
121 | public double getLongitude();
122 |
123 | /**
124 | * Sets the longitude component of the location.
125 | *
126 | * @param longitude
127 | * the longitude component of the location
128 | */
129 | public void setLongitude(double longitude);
130 | }
131 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/GraphMultiResult.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | /**
20 | * Defines a GraphObject that represents the result of a query that returns multiple GraphObjects
21 | * nested under a "data" property.
22 | *
23 | * Note that this interface is intended to be used with GraphObject.Factory
24 | * and not implemented directly.
25 | */
26 | public interface GraphMultiResult extends GraphObject {
27 | /**
28 | * Provides access to the GraphObjects that make up the result set.
29 | * @return a list of GraphObjects
30 | */
31 | public GraphObjectList getData();
32 | }
33 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/GraphObjectList.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | import org.json.JSONArray;
20 |
21 | import java.util.List;
22 |
23 | /**
24 | * GraphObjectList is the primary representation of a collection of graph objects in the Facebook SDK for Android.
25 | * It is not implemented by any concrete classes, but rather by a proxy (see the {@link com.facebook.model.GraphObject.Factory Factory}
26 | * class). A GraphObjectList can actually contain elements of any type, not just graph objects, but its principal
27 | * use in the SDK is to contain types derived from GraphObject.
28 | *
29 | *
30 | * @param the type of elements in the list
31 | */
32 | public interface GraphObjectList extends List {
33 | // cast method is only supported if T extends GraphObject
34 | /**
35 | * If T is derived from GraphObject, returns a new GraphObjectList exposing the same underlying data as a new
36 | * GraphObject-derived type.
37 | * @param graphObjectClass the GraphObject-derived type to return a list of
38 | * @return a list representing the same underlying data, exposed as the new GraphObject-derived type
39 | * @throws com.facebook.FacebookGraphObjectException if T does not derive from GraphObject
40 | */
41 | public GraphObjectList castToListOf(Class graphObjectClass);
42 | /**
43 | * Gets the underlying JSONArray representation of the data.
44 | * @return the underlying JSONArray representation of the data
45 | */
46 | public JSONArray getInnerJSONArray();
47 | }
48 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/GraphPlace.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | /**
20 | * Provides a strongly-typed representation of a Place as defined by the Graph API.
21 | *
22 | * Note that this interface is intended to be used with GraphObject.Factory
23 | * and not implemented directly.
24 | */
25 | public interface GraphPlace extends GraphObject {
26 | /**
27 | * Returns the ID of the place.
28 | * @return the ID of the place
29 | */
30 | public String getId();
31 | /**
32 | * Sets the ID of the place.
33 | * @param id the ID of the place
34 | */
35 | public void setId(String id);
36 |
37 | /**
38 | * Returns the name of the place.
39 | * @return the name of the place
40 | */
41 | public String getName();
42 | /**
43 | * Sets the name of the place.
44 | * @param name the name of the place
45 | */
46 | public void setName(String name);
47 |
48 | /**
49 | * Returns the category of the place.
50 | * @return the category of the place
51 | */
52 | public String getCategory();
53 | /**
54 | * Sets the category of the place.
55 | * @param category the category of the place
56 | */
57 | public void setCategory(String category);
58 |
59 | /**
60 | * Returns the location of the place.
61 | * @return the location of the place
62 | */
63 | public GraphLocation getLocation();
64 | /**
65 | * Sets the location of the place.
66 | * @param location the location of the place
67 | */
68 | public void setLocation(GraphLocation location);
69 | }
70 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/GraphUser.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | /**
20 | * Provides a strongly-typed representation of a User as defined by the Graph API.
21 | *
22 | * Note that this interface is intended to be used with GraphObject.Factory
23 | * and not implemented directly.
24 | */
25 | public interface GraphUser extends GraphObject {
26 | /**
27 | * Returns the ID of the user.
28 | * @return the ID of the user
29 | */
30 | public String getId();
31 | /**
32 | * Sets the ID of the user.
33 | * @param id the ID of the user
34 | */
35 | public void setId(String id);
36 |
37 | /**
38 | * Returns the name of the user.
39 | * @return the name of the user
40 | */
41 | public String getName();
42 | /**
43 | * Sets the name of the user.
44 | * @param name the name of the user
45 | */
46 | public void setName(String name);
47 |
48 | /**
49 | * Returns the first name of the user.
50 | * @return the first name of the user
51 | */
52 | public String getFirstName();
53 | /**
54 | * Sets the first name of the user.
55 | * @param firstName the first name of the user
56 | */
57 | public void setFirstName(String firstName);
58 |
59 | /**
60 | * Returns the middle name of the user.
61 | * @return the middle name of the user
62 | */
63 | public String getMiddleName();
64 | /**
65 | * Sets the middle name of the user.
66 | * @param middleName the middle name of the user
67 | */
68 | public void setMiddleName(String middleName);
69 |
70 | /**
71 | * Returns the last name of the user.
72 | * @return the last name of the user
73 | */
74 | public String getLastName();
75 | /**
76 | * Sets the last name of the user.
77 | * @param lastName the last name of the user
78 | */
79 | public void setLastName(String lastName);
80 |
81 | /**
82 | * Returns the Facebook URL of the user.
83 | * @return the Facebook URL of the user
84 | */
85 | public String getLink();
86 | /**
87 | * Sets the Facebook URL of the user.
88 | * @param link the Facebook URL of the user
89 | */
90 | public void setLink(String link);
91 |
92 | /**
93 | * Returns the Facebook username of the user.
94 | * @return the Facebook username of the user
95 | */
96 | public String getUsername();
97 | /**
98 | * Sets the Facebook username of the user.
99 | * @param username the Facebook username of the user
100 | */
101 | public void setUsername(String username);
102 |
103 | /**
104 | * Returns the birthday of the user.
105 | * @return the birthday of the user
106 | */
107 | public String getBirthday();
108 | /**
109 | * Sets the birthday of the user.
110 | * @param birthday the birthday of the user
111 | */
112 | public void setBirthday(String birthday);
113 |
114 | /**
115 | * Returns the current place of the user.
116 | * @return the current place of the user
117 | */
118 | public GraphPlace getLocation();
119 |
120 | /**
121 | * Sets the current place of the user.
122 | * @param location the current place of the user
123 | */
124 | public void setLocation(GraphPlace location);
125 | }
126 |
--------------------------------------------------------------------------------
/libs/facebook/src/com/facebook/model/JsonUtil.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2010-present Facebook.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.facebook.model;
18 |
19 | import android.annotation.SuppressLint;
20 | import org.json.JSONException;
21 | import org.json.JSONObject;
22 |
23 | import java.util.*;
24 |
25 | class JsonUtil {
26 | static void jsonObjectClear(JSONObject jsonObject) {
27 | @SuppressWarnings("unchecked")
28 | Iterator keys = (Iterator) jsonObject.keys();
29 | while (keys.hasNext()) {
30 | keys.next();
31 | keys.remove();
32 | }
33 | }
34 |
35 | static boolean jsonObjectContainsValue(JSONObject jsonObject, Object value) {
36 | @SuppressWarnings("unchecked")
37 | Iterator keys = (Iterator) jsonObject.keys();
38 | while (keys.hasNext()) {
39 | Object thisValue = jsonObject.opt(keys.next());
40 | if (thisValue != null && thisValue.equals(value)) {
41 | return true;
42 | }
43 | }
44 | return false;
45 | }
46 |
47 | private final static class JSONObjectEntry implements Map.Entry {
48 | private final String key;
49 | private final Object value;
50 |
51 | JSONObjectEntry(String key, Object value) {
52 | this.key = key;
53 | this.value = value;
54 | }
55 |
56 | @SuppressLint("FieldGetter")
57 | @Override
58 | public String getKey() {
59 | return this.key;
60 | }
61 |
62 | @Override
63 | public Object getValue() {
64 | return this.value;
65 | }
66 |
67 | @Override
68 | public Object setValue(Object object) {
69 | throw new UnsupportedOperationException("JSONObjectEntry is immutable");
70 | }
71 |
72 | }
73 |
74 | static Set> jsonObjectEntrySet(JSONObject jsonObject) {
75 | HashSet> result = new HashSet>();
76 |
77 | @SuppressWarnings("unchecked")
78 | Iterator keys = (Iterator) jsonObject.keys();
79 | while (keys.hasNext()) {
80 | String key = keys.next();
81 | Object value = jsonObject.opt(key);
82 | result.add(new JSONObjectEntry(key, value));
83 | }
84 |
85 | return result;
86 | }
87 |
88 | static Set jsonObjectKeySet(JSONObject jsonObject) {
89 | HashSet result = new HashSet();
90 |
91 | @SuppressWarnings("unchecked")
92 | Iterator keys = (Iterator) jsonObject.keys();
93 | while (keys.hasNext()) {
94 | result.add(keys.next());
95 | }
96 |
97 | return result;
98 | }
99 |
100 | static void jsonObjectPutAll(JSONObject jsonObject, Map map) {
101 | Set> entrySet = map.entrySet();
102 | for (Map.Entry entry : entrySet) {
103 | try {
104 | jsonObject.putOpt(entry.getKey(), entry.getValue());
105 | } catch (JSONException e) {
106 | throw new IllegalArgumentException(e);
107 | }
108 | }
109 | }
110 |
111 | static Collection