diff --git a/ASNETutorial.iml b/ASNETutorial.iml index 0bb6048..fc084f1 100644 --- a/ASNETutorial.iml +++ b/ASNETutorial.iml @@ -1,13 +1,14 @@ - + - + @@ -15,5 +16,4 @@ - - + \ No newline at end of file diff --git a/README.md b/README.md index abcb5d8..df97cee 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -ASNETutorial [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ASNETutorial-brightgreen.svg?style=flat)](https://android-arsenal.com/details/3/921) +ASNETutorial [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ASNETutorial-brightgreen.svg?style=flat)](https://android-arsenal.com/details/3/921) [![Codeproject](https://img.shields.io/badge/Codeproject-article-ff9900.svg?style=flat)](http://www.codeproject.com/Articles/815900/Android-social-network-integration) ============ ![](https://raw.githubusercontent.com/gorbin/ASNE/master/resources/recomended.png) Simple example project for https://github.com/gorbin/ASNE library @@ -120,9 +120,9 @@ To continue you need dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:20.0.0' - compile 'com.github.asne:asne-facebook:0.2.1' - compile 'com.github.asne:asne-linkedin:0.2.1' - compile 'com.github.asne:asne-twitter:0.2.1' + compile 'com.github.asne:asne-facebook:0.3.1' + compile 'com.github.asne:asne-linkedin:0.3.1' + compile 'com.github.asne:asne-twitter:0.3.1' } ``` 5. Lets create some layouts @@ -347,8 +347,10 @@ To continue you need ```java String TWITTER_CONSUMER_KEY = getActivity().getString(R.string.twitter_consumer_key); String TWITTER_CONSUMER_SECRET = getActivity().getString(R.string.twitter_consumer_secret); + String TWITTER_CALLBACK_URL = "oauth://ASNE"; String LINKEDIN_CONSUMER_KEY = getActivity().getString(R.string.linkedin_consumer_key); String LINKEDIN_CONSUMER_SECRET = getActivity().getString(R.string.linkedin_consumer_secret); + String LINKEDIN_CALLBACK_URL = "https://asneTutorial"; ``` * Create chosen `SocialNetworks` with permissions @@ -358,10 +360,10 @@ To continue you need FacebookSocialNetwork fbNetwork = new FacebookSocialNetwork(this, fbScope); // permissions for twitter in developer twitter console - TwitterSocialNetwork twNetwork = new TwitterSocialNetwork(this, TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET); + TwitterSocialNetwork twNetwork = new TwitterSocialNetwork(this, TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_CALLBACK_URL); - String linkedInScope = "r_basicprofile+rw_nus+r_network+w_messages"; - LinkedInSocialNetwork liNetwork = new LinkedInSocialNetwork(this, LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET, linkedInScope); + String linkedInScope = "r_basicprofile+r_fullprofile+rw_nus+r_network+w_messages+r_emailaddress+r_contactinfo"; + LinkedInSocialNetwork liNetwork = new LinkedInSocialNetwork(this, LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET, LINKEDIN_CALLBACK_URL, linkedInScope); ``` @@ -774,6 +776,8 @@ Using ASNE modules you can easily and quickly integrate any popular social netwo This is simple tutorial demom if you need more complex - [check ASNE demo app](https://github.com/gorbin/ASNE) +[Codeproject article](http://www.codeproject.com/Articles/815900/Android-social-network-integration) + Source code: [Zip](https://github.com/gorbin/ASNETutorial/archive/master.zip) diff --git a/app/app.iml b/app/app.iml index e2170ab..85bf501 100644 --- a/app/app.iml +++ b/app/app.iml @@ -1,5 +1,5 @@ - + @@ -9,10 +9,15 @@ - + + @@ -30,29 +36,31 @@ - - - - - + + + + + + + + - + - + - @@ -63,6 +71,15 @@ + + + + + + + + + @@ -77,19 +94,20 @@ - + - - - - - - - - - + + + + + - + + + + + + + - - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 5943160..caa8ee2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,28 +1,29 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 19 - buildToolsVersion "20.0.0" + compileSdkVersion 23 + buildToolsVersion '23.0.2' defaultConfig { applicationId "com.github.gorbin.asnetutorial" minSdkVersion 10 - targetSdkVersion 19 + targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { - runProguard false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' +// runProguard false +// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:20.0.0' - compile 'com.github.asne:asne-facebook:0.2.1' - compile 'com.github.asne:asne-linkedin:0.2.1' - compile 'com.github.asne:asne-twitter:0.2.1' + compile 'com.android.support:appcompat-v7:23.1.0' + compile 'com.github.asne:asne-facebook:0.3.1' + compile 'com.github.asne:asne-linkedin:0.3.1' + compile 'com.github.asne:asne-twitter:0.3.1' + compile 'com.github.asne:asne-googleplus:0.3.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6e5ca8c..229b20e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="com.github.gorbin.asnetutorial" xmlns:tools="http://schemas.android.com/tools"> @@ -18,7 +18,9 @@ - + diff --git a/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java b/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java index a02ec42..2bb5eac 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java @@ -9,6 +9,10 @@ import android.widget.TextView; import com.github.gorbin.asne.core.persons.SocialPerson; +import com.github.gorbin.asne.facebook.FacebookSocialNetwork; +import com.github.gorbin.asne.googleplus.GooglePlusSocialNetwork; +import com.github.gorbin.asne.linkedin.LinkedInSocialNetwork; +import com.github.gorbin.asne.twitter.TwitterSocialNetwork; import com.squareup.picasso.Picasso; import java.util.ArrayList; @@ -73,18 +77,22 @@ public View getView(int position, View convertView, ViewGroup parent) { private void colorRow(int networkId){ int color = context.getResources().getColor(R.color.dark); switch (networkId) { - case 1: + case TwitterSocialNetwork.ID: color = context.getResources().getColor(R.color.twitter); image = R.drawable.twitter_user; break; - case 2: + case LinkedInSocialNetwork.ID: color = context.getResources().getColor(R.color.linkedin); image = R.drawable.linkedin_user; break; - case 4: + case FacebookSocialNetwork.ID: color = context.getResources().getColor(R.color.facebook); image = R.drawable.com_facebook_profile_picture_blank_square; break; + case GooglePlusSocialNetwork.ID: + color = context.getResources().getColor(R.color.googleplus); + image = R.drawable.g_plus_user; + break; } holder.label.setTextColor(color); } diff --git a/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java b/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java index c6447d8..94fb471 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java @@ -12,6 +12,7 @@ import com.github.gorbin.asne.core.SocialNetworkManager; import com.github.gorbin.asne.core.listener.OnLoginCompleteListener; import com.github.gorbin.asne.facebook.FacebookSocialNetwork; +import com.github.gorbin.asne.googleplus.GooglePlusSocialNetwork; import com.github.gorbin.asne.linkedin.LinkedInSocialNetwork; import com.github.gorbin.asne.twitter.TwitterSocialNetwork; @@ -31,12 +32,10 @@ public class MainFragment extends Fragment implements SocialNetworkManager.OnIni * 6 - Odnoklassniki * 7 - Instagram */ - public static final int TWITTER = 1; - public static final int LINKEDIN = 2; - public static final int FACEBOOK = 4; private Button facebook; private Button twitter; private Button linkedin; + private Button googleplus; public MainFragment() { } @@ -53,17 +52,21 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, twitter.setOnClickListener(loginClick); linkedin = (Button) rootView.findViewById(R.id.linkedin); linkedin.setOnClickListener(loginClick); + googleplus = (Button) rootView.findViewById(R.id.googleplus); + googleplus.setOnClickListener(loginClick); //Get Keys for initiate SocialNetworks String TWITTER_CONSUMER_KEY = getActivity().getString(R.string.twitter_consumer_key); String TWITTER_CONSUMER_SECRET = getActivity().getString(R.string.twitter_consumer_secret); + String TWITTER_CALLBACK_URL = "oauth://ASNE"; String LINKEDIN_CONSUMER_KEY = getActivity().getString(R.string.linkedin_consumer_key); String LINKEDIN_CONSUMER_SECRET = getActivity().getString(R.string.linkedin_consumer_secret); + String LINKEDIN_CALLBACK_URL = "https://asneTutorial"; //Chose permissions ArrayList fbScope = new ArrayList(); fbScope.addAll(Arrays.asList("public_profile, email, user_friends")); - String linkedInScope = "r_basicprofile+rw_nus+r_network+w_messages"; + String linkedInScope = "r_basicprofile+r_fullprofile+rw_nus+r_network+w_messages+r_emailaddress+r_contactinfo"; //Use manager to manage SocialNetworks mSocialNetworkManager = (SocialNetworkManager) getFragmentManager().findFragmentByTag(MainActivity.SOCIAL_NETWORK_TAG); @@ -77,13 +80,17 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, mSocialNetworkManager.addSocialNetwork(fbNetwork); //Init and add to manager TwitterSocialNetwork - TwitterSocialNetwork twNetwork = new TwitterSocialNetwork(this, TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET); + TwitterSocialNetwork twNetwork = new TwitterSocialNetwork(this, TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_CALLBACK_URL); mSocialNetworkManager.addSocialNetwork(twNetwork); //Init and add to manager LinkedInSocialNetwork - LinkedInSocialNetwork liNetwork = new LinkedInSocialNetwork(this, LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET, linkedInScope); + LinkedInSocialNetwork liNetwork = new LinkedInSocialNetwork(this, LINKEDIN_CONSUMER_KEY, LINKEDIN_CONSUMER_SECRET, LINKEDIN_CALLBACK_URL, linkedInScope); mSocialNetworkManager.addSocialNetwork(liNetwork); + //Init and add to manager LinkedInSocialNetwork + GooglePlusSocialNetwork gpNetwork = new GooglePlusSocialNetwork(this); + mSocialNetworkManager.addSocialNetwork(gpNetwork); + //Initiate every network from mSocialNetworkManager getFragmentManager().beginTransaction().add(mSocialNetworkManager, MainActivity.SOCIAL_NETWORK_TAG).commit(); mSocialNetworkManager.setOnInitializationCompleteListener(this); @@ -103,15 +110,18 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, private void initSocialNetwork(SocialNetwork socialNetwork){ if(socialNetwork.isConnected()){ switch (socialNetwork.getID()){ - case FACEBOOK: + case FacebookSocialNetwork.ID: facebook.setText("Show Facebook profile"); break; - case TWITTER: + case TwitterSocialNetwork.ID: twitter.setText("Show Twitter profile"); break; - case LINKEDIN: + case LinkedInSocialNetwork.ID: linkedin.setText("Show LinkedIn profile"); break; + case GooglePlusSocialNetwork.ID: + googleplus.setText("Show GooglePlus profile"); + break; } } } @@ -132,13 +142,16 @@ public void onClick(View view) { int networkId = 0; switch (view.getId()){ case R.id.facebook: - networkId = FACEBOOK; + networkId = FacebookSocialNetwork.ID; break; case R.id.twitter: - networkId = TWITTER; + networkId = TwitterSocialNetwork.ID; break; case R.id.linkedin: - networkId = LINKEDIN; + networkId = LinkedInSocialNetwork.ID; + break; + case R.id.googleplus: + networkId = GooglePlusSocialNetwork.ID; break; } SocialNetwork socialNetwork = mSocialNetworkManager.getSocialNetwork(networkId); diff --git a/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java b/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java index cb666da..d06057b 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java @@ -20,6 +20,10 @@ import com.github.gorbin.asne.core.listener.OnPostingCompleteListener; import com.github.gorbin.asne.core.listener.OnRequestSocialPersonCompleteListener; import com.github.gorbin.asne.core.persons.SocialPerson; +import com.github.gorbin.asne.facebook.FacebookSocialNetwork; +import com.github.gorbin.asne.googleplus.GooglePlusSocialNetwork; +import com.github.gorbin.asne.linkedin.LinkedInSocialNetwork; +import com.github.gorbin.asne.twitter.TwitterSocialNetwork; import com.squareup.picasso.Picasso; public class ProfileFragment extends Fragment implements OnRequestSocialPersonCompleteListener { @@ -131,8 +135,13 @@ public void onClick(View view) { ad.setPositiveButton("Post link", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Bundle postParams = new Bundle(); + postParams.putString(SocialNetwork.BUNDLE_NAME, "Simple and easy way to add social networks for android application"); postParams.putString(SocialNetwork.BUNDLE_LINK, link); - socialNetwork.requestPostLink(postParams, message, postingComplete); + if(networkId == GooglePlusSocialNetwork.ID) { + socialNetwork.requestPostDialog(postParams, postingComplete); + } else { + socialNetwork.requestPostLink(postParams, message, postingComplete); + } } }); ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @@ -166,15 +175,19 @@ private void colorProfile(int networkId){ int color = getResources().getColor(R.color.dark); int image = R.drawable.user; switch (networkId) { - case 1: + case TwitterSocialNetwork.ID: color = getResources().getColor(R.color.twitter); image = R.drawable.twitter_user; break; - case 2: + case LinkedInSocialNetwork.ID: color = getResources().getColor(R.color.linkedin); image = R.drawable.linkedin_user; break; - case 4: + case GooglePlusSocialNetwork.ID: + color = getResources().getColor(R.color.googleplus); + image = R.drawable.g_plus_user; + break; + case FacebookSocialNetwork.ID: color = getResources().getColor(R.color.facebook); image = R.drawable.com_facebook_profile_picture_blank_square; break; diff --git a/app/src/main/res/layout/main_fragment.xml b/app/src/main/res/layout/main_fragment.xml index f60ed07..e0d37e0 100644 --- a/app/src/main/res/layout/main_fragment.xml +++ b/app/src/main/res/layout/main_fragment.xml @@ -32,4 +32,13 @@ android:background="#287bbc" android:layout_margin="8dp" android:textColor="#ffffffff"/> +