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 [](https://android-arsenal.com/details/3/921)
+ASNETutorial [](https://android-arsenal.com/details/3/921) [](http://www.codeproject.com/Articles/815900/Android-social-network-integration)
============

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 @@
+
-
-
-
+
+
+
+
+ generateDebugAndroidTestSources
+ generateDebugSources
+
@@ -21,8 +26,9 @@
-
+
+
@@ -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"/>
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 102c677..d086247 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -6,5 +6,6 @@
#3b5998
#55ACEE
#287bbc
+ #D34836
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 9b8abe4..18997d9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:0.12.2'
+ classpath 'com.android.tools.build:gradle:1.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -14,6 +14,10 @@ buildscript {
allprojects {
repositories {
- jcenter()
+ mavenCentral()
+// maven {
+////// url 'https://oss.sonatype.org/content/groups/public'
+// url 'https://oss.sonatype.org/content/groups/staging'
+// }
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1e61d1f..1a72db6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Apr 10 15:27:10 PDT 2013
+#Mon Dec 21 18:55:20 NOVT 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip