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 a36df5c..df97cee 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-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
Today social network integration to your android application is common practice - it makes user easily login to your app and share their actions. There are a lot of ways to do it - usually developers add native social network SDK or use API for every network. It provides login via installed social network application or native dialogs. You have to spend time and nerves to learn and use different social network SDKs.
@@ -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