From 30d9a88fa955615059922b5c7d3fb041ca04ab89 Mon Sep 17 00:00:00 2001 From: pnemonic78 Date: Wed, 31 Dec 2014 15:15:56 +0200 Subject: [PATCH 01/11] Android things. spelling. naming. use generic List instead of concrete ArrayList. show progress dialog before action so there is something to hide. --- .../gorbin/asnetutorial/FriendsFragment.java | 11 ++--- .../asnetutorial/FriendsListAdapter.java | 6 +-- .../gorbin/asnetutorial/MainActivity.java | 4 +- .../gorbin/asnetutorial/MainFragment.java | 45 +++++++++---------- .../gorbin/asnetutorial/ProfileFragment.java | 22 +++++---- app/src/main/res/layout/main_fragment.xml | 8 ++-- 6 files changed, 51 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/github/gorbin/asnetutorial/FriendsFragment.java b/app/src/main/java/com/github/gorbin/asnetutorial/FriendsFragment.java index dd05ee3..8e83e48 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/FriendsFragment.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/FriendsFragment.java @@ -12,14 +12,14 @@ import com.github.gorbin.asne.core.listener.OnRequestGetFriendsCompleteListener; import com.github.gorbin.asne.core.persons.SocialPerson; -import java.util.ArrayList; +import java.util.List; public class FriendsFragment extends Fragment implements OnRequestGetFriendsCompleteListener { private static final String NETWORK_ID = "NETWORK_ID"; private ListView listView; - public static FriendsFragment newInstannce(int id) { + public static FriendsFragment newInstance(int id) { FriendsFragment fragment = new FriendsFragment(); Bundle args = new Bundle(); args.putInt(NETWORK_ID, id); @@ -39,21 +39,22 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, View rootView = inflater.inflate(R.layout.friends_list_fragment, container, false); listView = (ListView) rootView.findViewById(R.id.list); + MainActivity.showProgress("Loading friends"); + SocialNetwork socialNetwork = MainFragment.mSocialNetworkManager.getSocialNetwork(networkId); socialNetwork.setOnRequestGetFriendsCompleteListener(this); socialNetwork.requestGetFriends(); - MainActivity.showProgress("Loading friends"); return rootView; } @Override - public void OnGetFriendsIdComplete(int id, String[] friendsID) { + public void onGetFriendsIdComplete(int id, String[] friendsID) { ((MainActivity)getActivity()).getSupportActionBar().setTitle(friendsID.length + " Friends"); } @Override - public void OnGetFriendsComplete(int networkID, ArrayList socialPersons) { + public void onGetFriendsComplete(int networkID, List socialPersons) { MainActivity.hideProgress(); FriendsListAdapter adapter = new FriendsListAdapter(getActivity(), socialPersons, networkID); listView.setAdapter(adapter); 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 2bb5eac..34ec404 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/FriendsListAdapter.java @@ -15,16 +15,16 @@ import com.github.gorbin.asne.twitter.TwitterSocialNetwork; import com.squareup.picasso.Picasso; -import java.util.ArrayList; +import java.util.List; public class FriendsListAdapter extends BaseAdapter { private final Activity context; private ViewHolder holder; - private ArrayList friends; + private List friends; private int networkId; private int image; - public FriendsListAdapter(Activity context, ArrayList friends, int socialNetworkID) { + public FriendsListAdapter(Activity context, List friends, int socialNetworkID) { this.context = context; this.friends = friends; this.networkId = socialNetworkID; diff --git a/app/src/main/java/com/github/gorbin/asnetutorial/MainActivity.java b/app/src/main/java/com/github/gorbin/asnetutorial/MainActivity.java index a22cccc..80ae8e2 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/MainActivity.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/MainActivity.java @@ -3,10 +3,10 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v7.app.ActionBarActivity; -import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -15,6 +15,7 @@ public class MainActivity extends ActionBarActivity implements FragmentManager.O public static final String SOCIAL_NETWORK_TAG = "SocialIntegrationMain.SOCIAL_NETWORK_TAG"; private static ProgressDialog pd; static Context context; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -69,6 +70,7 @@ protected static void showProgress(String message) { } protected static void hideProgress() { + if (pd != null) pd.dismiss(); } 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 94fb471..2538825 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/MainFragment.java @@ -16,7 +16,6 @@ import com.github.gorbin.asne.linkedin.LinkedInSocialNetwork; import com.github.gorbin.asne.twitter.TwitterSocialNetwork; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -44,28 +43,27 @@ public MainFragment() { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.main_fragment, container, false); - ((MainActivity)getActivity()).getSupportActionBar().setTitle(R.string.app_name); + ((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.app_name); // init buttons and set Listener facebook = (Button) rootView.findViewById(R.id.facebook); - facebook.setOnClickListener(loginClick); + facebook.setOnClickListener(mLoginClick); twitter = (Button) rootView.findViewById(R.id.twitter); - twitter.setOnClickListener(loginClick); + twitter.setOnClickListener(mLoginClick); linkedin = (Button) rootView.findViewById(R.id.linkedin); - linkedin.setOnClickListener(loginClick); + linkedin.setOnClickListener(mLoginClick); googleplus = (Button) rootView.findViewById(R.id.googleplus); - googleplus.setOnClickListener(loginClick); + googleplus.setOnClickListener(mLoginClick); //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_CONSUMER_KEY = getString(R.string.twitter_consumer_key); + String TWITTER_CONSUMER_SECRET = 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_CONSUMER_KEY = getString(R.string.linkedin_consumer_key); + String LINKEDIN_CONSUMER_SECRET = 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")); + List fbScope = Arrays.asList("public_profile, email, user_friends"); String linkedInScope = "r_basicprofile+r_fullprofile+rw_nus+r_network+w_messages+r_emailaddress+r_contactinfo"; //Use manager to manage SocialNetworks @@ -96,7 +94,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, mSocialNetworkManager.setOnInitializationCompleteListener(this); } else { //if manager exist - get and setup login only for initialized SocialNetworks - if(!mSocialNetworkManager.getInitializedSocialNetworks().isEmpty()) { + if (!mSocialNetworkManager.getInitializedSocialNetworks().isEmpty()) { List socialNetworks = mSocialNetworkManager.getInitializedSocialNetworks(); for (SocialNetwork socialNetwork : socialNetworks) { socialNetwork.setOnLoginCompleteListener(this); @@ -107,9 +105,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, return rootView; } - private void initSocialNetwork(SocialNetwork socialNetwork){ - if(socialNetwork.isConnected()){ - switch (socialNetwork.getID()){ + private void initSocialNetwork(SocialNetwork socialNetwork) { + if (socialNetwork.isConnected()) { + switch (socialNetwork.getID()) { case FacebookSocialNetwork.ID: facebook.setText("Show Facebook profile"); break; @@ -125,6 +123,7 @@ private void initSocialNetwork(SocialNetwork socialNetwork){ } } } + @Override public void onSocialNetworkManagerInitialized() { //when init SocialNetworks - get and setup login only for initialized SocialNetworks @@ -136,11 +135,11 @@ public void onSocialNetworkManagerInitialized() { //Login listener - private View.OnClickListener loginClick = new View.OnClickListener() { + private View.OnClickListener mLoginClick = new View.OnClickListener() { @Override public void onClick(View view) { int networkId = 0; - switch (view.getId()){ + switch (view.getId()) { case R.id.facebook: networkId = FacebookSocialNetwork.ID; break; @@ -155,10 +154,10 @@ public void onClick(View view) { break; } SocialNetwork socialNetwork = mSocialNetworkManager.getSocialNetwork(networkId); - if(!socialNetwork.isConnected()) { - if(networkId != 0) { - socialNetwork.requestLogin(); + if (!socialNetwork.isConnected()) { + if (networkId != 0) { MainActivity.showProgress("Loading social person"); + socialNetwork.requestLogin(MainFragment.this); } else { Toast.makeText(getActivity(), "Wrong networkId", Toast.LENGTH_LONG).show(); } @@ -180,8 +179,8 @@ public void onError(int networkId, String requestID, String errorMessage, Object Toast.makeText(getActivity(), "ERROR: " + errorMessage, Toast.LENGTH_LONG).show(); } - private void startProfile(int networkId){ - ProfileFragment profile = ProfileFragment.newInstannce(networkId); + private void startProfile(int networkId) { + ProfileFragment profile = ProfileFragment.newInstance(networkId); getActivity().getSupportFragmentManager().beginTransaction() .addToBackStack("profile") .replace(R.id.container, profile) 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 d06057b..fad8b25 100644 --- a/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java +++ b/app/src/main/java/com/github/gorbin/asnetutorial/ProfileFragment.java @@ -4,6 +4,7 @@ import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -41,7 +42,7 @@ public class ProfileFragment extends Fragment implements OnRequestSocialPersonCo private Button share; private RelativeLayout frame; - public static ProfileFragment newInstannce(int id) { + public static ProfileFragment newInstance(int id) { ProfileFragment fragment = new ProfileFragment(); Bundle args = new Bundle(); args.putInt(NETWORK_ID, id); @@ -57,7 +58,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); networkId = getArguments().containsKey(NETWORK_ID) ? getArguments().getInt(NETWORK_ID) : 0; - ((MainActivity)getActivity()).getSupportActionBar().setTitle("Profile"); + ((MainActivity) getActivity()).getSupportActionBar().setTitle("Profile"); + + MainActivity.showProgress("Loading social person"); View rootView = inflater.inflate(R.layout.profile_fragment, container, false); @@ -74,9 +77,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, socialNetwork = MainFragment.mSocialNetworkManager.getSocialNetwork(networkId); socialNetwork.setOnRequestCurrentPersonCompleteListener(this); - socialNetwork.requestCurrentPerson(); + socialNetwork.requestCurrentPerson(this); - MainActivity.showProgress("Loading social person"); return rootView; } @@ -104,12 +106,14 @@ public void onRequestSocialPersonSuccess(int i, SocialPerson socialPerson) { name.setText(socialPerson.name); id.setText(socialPerson.id); String socialPersonString = socialPerson.toString(); - String infoString = socialPersonString.substring(socialPersonString.indexOf("{")+1, socialPersonString.lastIndexOf("}")); + String infoString = socialPersonString.substring(socialPersonString.indexOf("{") + 1, socialPersonString.lastIndexOf("}")); info.setText(infoString.replace(", ", "\n")); + if (!TextUtils.isEmpty(socialPerson.avatarURL)) { Picasso.with(getActivity()) .load(socialPerson.avatarURL) .into(photo); } + } @Override public void onError(int networkId, String requestID, String errorMessage, Object data) { @@ -120,7 +124,7 @@ public void onError(int networkId, String requestID, String errorMessage, Object private View.OnClickListener friendsClick = new View.OnClickListener() { @Override public void onClick(View view) { - FriendsFragment friends = FriendsFragment.newInstannce(networkId); + FriendsFragment friends = FriendsFragment.newInstance(networkId); getActivity().getSupportFragmentManager().beginTransaction() .addToBackStack("friends") .replace(R.id.container, friends) @@ -137,7 +141,7 @@ 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); - if(networkId == GooglePlusSocialNetwork.ID) { + if (networkId == GooglePlusSocialNetwork.ID) { socialNetwork.requestPostDialog(postParams, postingComplete); } else { socialNetwork.requestPostLink(postParams, message, postingComplete); @@ -171,7 +175,7 @@ public void onError(int socialNetworkID, String requestID, String errorMessage, } }; - private void colorProfile(int networkId){ + private void colorProfile(int networkId) { int color = getResources().getColor(R.color.dark); int image = R.drawable.user; switch (networkId) { @@ -200,7 +204,7 @@ private void colorProfile(int networkId){ photo.setImageResource(image); } - private AlertDialog.Builder alertDialogInit(String title, String message){ + private AlertDialog.Builder alertDialogInit(String title, String message) { AlertDialog.Builder ad = new AlertDialog.Builder(getActivity()); ad.setTitle(title); ad.setMessage(message); diff --git a/app/src/main/res/layout/main_fragment.xml b/app/src/main/res/layout/main_fragment.xml index e0d37e0..933acaf 100644 --- a/app/src/main/res/layout/main_fragment.xml +++ b/app/src/main/res/layout/main_fragment.xml @@ -11,7 +11,7 @@ android:text="Login via Facebook" android:id="@+id/facebook" android:layout_gravity="center_horizontal" - android:background="#3b5998" + android:background="@color/facebook" android:layout_margin="8dp" android:textColor="#ffffffff" />