I will create a 4 fragment page.If i move to the home fragment means,the fragment should be refreshed.If any changes done in another fragment means it will update in home fragment.Any one help me to refresh the home fragment.
public class HomeFragment extends Fragment {
ImageButton explore,chat;
//Facebook Declaration
private CallbackManager callbackManager;
private LoginButton FbLoginButton;
String fb_call = "fb";
ListView recyclerView;
RelativeLayout emptyView;
private boolean mLoading = false;
//Check Facebook
Boolean Check_activity = false;
List<String> fb_friends_list= new ArrayList<String>();
private List<FeedItem> feedsList= new ArrayList<FeedItem>();
CustomHomeFragmentAdapter adapter;
String LiveUrl,userID,Facebook_Token;
protected static final String TAG = "HomeFragment";
public static final String MY_PREFS_NAME = "MyPrefsFile";
boolean loading = true;
int pastVisiblesItems, visibleItemCount, totalItemCount;
//Progresswheel
ProgressWheel pw;
ResetPasswordActivity obj=new ResetPasswordActivity();
public HomeFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getContext());
callbackManager = CallbackManager.Factory.create();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
LiveUrl= sharedPreferences.getString("liveurl3", null);
System.out.println("Liveurl1" + LiveUrl);
SharedPreferences prefs1 = getContext().getSharedPreferences(MY_PREFS_NAME, getContext().MODE_PRIVATE);
userID= prefs1.getString("userid", null);
System.out.println("userid" + userID);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_home, container, false);
FontChangeCrawler fontChanger = new FontChangeCrawler(getContext().getAssets(), "arial.ttf");
fontChanger.replaceFonts((ViewGroup) v);
// Inflate the layout for this fragment
System.out.println("Home");
pw=(ProgressWheel)v.findViewById(R.id.pw_spinner);
obj.styleRandom(pw, v.getContext());
emptyView=(RelativeLayout)v.findViewById(R.id.empty_view);
recyclerView=(ListView)v.findViewById(R.id.recycler_view);
adapter=new CustomHomeFragmentAdapter(getContext(),feedsList,HomeFragment.this);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
getHomePosts();
recyclerView.setRecyclerListener(new AbsListView.RecyclerListener() {
@Override
public void onMovedToScrapHeap(View view) {
VideoView videoView = (VideoView) view.findViewById(R.id.post_video);
videoView.stopPlayback();
}
});
explore= (ImageButton) v.findViewById(R.id.explore_page);
chat= (ImageButton) v.findViewById(R.id.edit_page);
chat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent chat=new Intent(getContext(),ChatActivity.class);
startActivity(chat);
}
});
FbLoginButton = (LoginButton) v.findViewById(R.id.fb_login_button);
FbLoginButton.setBackgroundResource(R.drawable.rounded_button);
FbLoginButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
FbLoginButton.setCompoundDrawablePadding(0);
FbLoginButton.setPadding(0, 0, 0, 0);
FbLoginButton.setText("Find People to follow");
FbLoginButton.setTextColor(Color.WHITE);
List<String> permissions = new ArrayList<>();
permissions.add("user_friends");
FbLoginButton.setReadPermissions(permissions);
FbLoginButton.setFragment(this);
FbLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//FbLoginButton.setEnabled(false);
}
});
FbLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Facebook_Token = loginResult.getAccessToken().getToken();
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/friends",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
LoginManager.getInstance().logOut();
System.out.println("response for friends" + response.toString());
JSONObject obj = response.getJSONObject();
System.out.println("obj" + obj);
JSONArray arr;
try {
arr = obj.getJSONArray("data");
System.out.println("array value" + arr);
if (arr.length() != 0) {
for (int i = 0; i < arr.length(); i++) {
JSONObject fbfriends = arr.getJSONObject(i);
String id = fbfriends.getString("id");
fb_friends_list.add(id);
System.out.println("facebook friends list" + fb_friends_list);
String ids = fb_friends_list.toString().replaceAll("\\[", "").replaceAll("\\]", "").replaceAll(" ", "");
Intent intent = new Intent(getContext(), FacebookFriendsActivity.class);
intent.putExtra("friendslist", ids);
intent.putExtra("fb_call", fb_call);
startActivity(intent);
}
} else {
Toast.makeText(getContext(), "No Friends are using Hotfuse", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
System.out.println("inside exception");
e.printStackTrace();
}
}
}
).executeAsync();
}
@Override
public void onCancel() {
Toast.makeText(getActivity(), "Login cancelled by user!", Toast.LENGTH_LONG).show();
System.out.println("Facebook Login failed!!");
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getActivity(), "Login unsuccessful!", Toast.LENGTH_LONG).show();
System.out.println("Facebook Login failed!!");
}
});
explore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getChildFragmentManager()
.beginTransaction()
.replace(
R.id.homefragment,
new ExploreFragment(),
ExploreFragment.TAG)
.addToBackStack(null)
.commit();
}
});
return v;
}
//Call Facebook StartActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
public void getHomePosts()
{
pw.setVisibility(View.VISIBLE);
pw.startSpinning();
//String url=LiveUrl+"followingactivities?user_id="+userID;
String url=LiveUrl+"post_data/?user_id="+userID;
System.out.println("URL IS" + url);
JsonArrayRequest movieReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
pw.setVisibility(View.GONE);
pw.stopSpinning();
JSONObject suggested_jsonobj = response.getJSONObject(i);
FeedItem movie = new FeedItem();
System.out.println("user_id value" +suggested_jsonobj.optString("user_id"));
if (!suggested_jsonobj.optString("user_id").isEmpty())
{
movie.setTitle(suggested_jsonobj.optString("username"));
movie.setId(suggested_jsonobj.optString("user_id"));
movie.setPostID(suggested_jsonobj.optString("id"));
movie.setVideoID(suggested_jsonobj.optString("video_src"));
movie.setVideoImage(suggested_jsonobj.optString("image_thumb"));
movie.setThumbnail(suggested_jsonobj.optString("profile_image"));
movie.setDate(suggested_jsonobj.optString("created"));
movie.setVotecount(suggested_jsonobj.optString("votecount"));
movie.setPost(suggested_jsonobj.optString("resize1"));
movie.setPrivacyStatus(suggested_jsonobj.optString("privacy_status"));
movie.setLikedStatus(suggested_jsonobj.optString("like_status"));
movie.setLikedCount(suggested_jsonobj.optString("like_count"));
movie.setLikeduserID(suggested_jsonobj.optString("like_user_id1"));
movie.setLikedUserName(suggested_jsonobj.optString("like_username1"));
movie.setCommentCount(suggested_jsonobj.optString("comment_count"));
movie.setCaption(suggested_jsonobj.optString("caption"));
movie.setCaptionUserName(suggested_jsonobj.optString("captionusername"));
movie.setTagCount(suggested_jsonobj.optString("tag_count"));
if (!suggested_jsonobj.optString("image_tag").matches("null")) {
final JSONArray arr = new JSONArray(suggested_jsonobj.optString("image_tag"));
final JSONObject jObj = arr.optJSONObject(0);
movie.setx1Tag(jObj.optString("x1"));
movie.sety1Tag(jObj.optString("y1"));
movie.setx1userName(jObj.optString("name1"));
movie.setx1userID(jObj.optString("user_id1"));
movie.setx2Tag(jObj.optString("x2"));
movie.sety2Tag(jObj.optString("y2"));
movie.setx2userName(jObj.optString("name2"));
movie.setx2userID(jObj.optString("user_id2"));
movie.setx3Tag(jObj.optString("x3"));
movie.sety3Tag(jObj.optString("y3"));
movie.setx3userName(jObj.optString("name3"));
movie.setx3userID(jObj.optString("user_id3"));
movie.setx4Tag(jObj.optString("x4"));
movie.sety4Tag(jObj.optString("y4"));
movie.setx4userName(jObj.optString("name4"));
movie.setx4userID(jObj.optString("user_id4"));
}if (!suggested_jsonobj.optString("comment").isEmpty()) {
final JSONArray arr = new JSONArray(suggested_jsonobj.optString("comment"));
final JSONObject jObj = arr.optJSONObject(0);
//Comment 1
movie.setCommentID(jObj.optString("id"));
movie.setCommentuserName(jObj.optString("username"));
movie.setCommentProPic(jObj.optString("image"));
movie.setCommentText(jObj.optString("comment"));
//Comment 2
final JSONObject jObj1 = arr.optJSONObject(1);
if(jObj1!=null) {
movie.setCommentID2(jObj1.optString("id"));
movie.setCommentuserName2(jObj1.optString("username"));
movie.setCommentProPic2(jObj1.optString("image"));
movie.setCommentText2(jObj1.optString("comment"));
}
//Comment 3
final JSONObject jObj2 = arr.optJSONObject(2);
if(jObj2!=null) {
movie.setCommentID3(jObj2.optString("id"));
movie.setCommentuserName3(jObj2.optString("username"));
movie.setCommentProPic3(jObj2.optString("image"));
movie.setCommentText3(jObj2.optString("comment"));
}
}
feedsList.add(movie);
}
else
{
recyclerView.setVisibility(View.GONE);
emptyView.setVisibility(View.VISIBLE);
}
} catch (JSONException e) {
pw.setVisibility(View.GONE);
pw.stopSpinning();
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(error instanceof NoConnectionError) {
pw.setVisibility(View.GONE);
pw.stopSpinning();
Toast.makeText(getContext(), "Sorry we couldn't complete your request.Please try again in a moment", Toast.LENGTH_SHORT).show();
}
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(movieReq);
movieReq.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}
/* public void switchContent(int id,String id1) {
getChildFragmentManager()
.beginTransaction()
.replace(id, ParallaxProfileActivity.newInstance(id1), ParallaxProfileActivity.TAG)
.commit();
}*/
/*
@Override
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}*/
public class MyCustomLayoutManager extends LinearLayoutManager {
private static final float MILLISECONDS_PER_INCH = 50f;
private Context mContext;
public MyCustomLayoutManager(Context context) {
super(context);
mContext = context;
}
@Override
public void smoothScrollToPosition(RecyclerView recyclerView,
RecyclerView.State state, final int position) {
LinearSmoothScroller smoothScroller =
new LinearSmoothScroller(mContext) {
//This controls the direction in which smoothScroll looks
//for your view
@Override
public PointF computeScrollVectorForPosition
(int targetPosition) {
return MyCustomLayoutManager.this
.computeScrollVectorForPosition(targetPosition);
}
//This returns the milliseconds it takes to
//scroll one pixel.
@Override
protected float calculateSpeedPerPixel
(DisplayMetrics displayMetrics) {
return MILLISECONDS_PER_INCH/displayMetrics.densityDpi;
}
};
smoothScroller.setTargetPosition(position);
startSmoothScroll(smoothScroller);
}
}
}
`