Created
January 26, 2018 11:56
-
-
Save gauravrai1/137328b341160f80e63ccd2e0ba63639 to your computer and use it in GitHub Desktop.
Interface for fragment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package ctize.connectplus.com.communitize; | |
| import android.animation.Animator; | |
| import android.animation.AnimatorListenerAdapter; | |
| import android.content.ActivityNotFoundException; | |
| import android.content.Context; | |
| import android.content.Intent; | |
| import android.net.Uri; | |
| import android.os.Build; | |
| import android.os.Bundle; | |
| import android.os.Handler; | |
| import android.support.annotation.NonNull; | |
| import android.support.annotation.RequiresApi; | |
| import android.support.design.internal.BottomNavigationMenuView; | |
| import android.support.design.widget.BottomNavigationView; | |
| import android.support.design.widget.FloatingActionButton; | |
| import android.support.design.widget.NavigationView; | |
| import android.support.v4.app.Fragment; | |
| import android.support.v4.app.FragmentPagerAdapter; | |
| import android.support.v4.util.ArrayMap; | |
| import android.support.v4.view.GravityCompat; | |
| import android.support.v4.view.ViewPager; | |
| import android.support.v4.widget.DrawerLayout; | |
| import android.support.v7.app.ActionBarDrawerToggle; | |
| import android.support.v7.app.AppCompatActivity; | |
| import android.support.v7.widget.Toolbar; | |
| import android.util.DisplayMetrics; | |
| import android.util.Log; | |
| import android.util.TypedValue; | |
| import android.view.Menu; | |
| import android.view.MenuItem; | |
| import android.view.View; | |
| import android.view.ViewGroup; | |
| import android.view.animation.AccelerateDecelerateInterpolator; | |
| import android.view.inputmethod.InputMethodManager; | |
| import android.widget.EditText; | |
| import android.widget.ImageView; | |
| import android.widget.LinearLayout; | |
| import android.widget.PopupMenu; | |
| import android.widget.Toast; | |
| import com.google.android.gms.appinvite.AppInviteInvitation; | |
| import com.google.firebase.auth.FirebaseAuth; | |
| import com.google.firebase.auth.FirebaseUser; | |
| import com.google.firebase.database.DataSnapshot; | |
| import com.google.firebase.database.DatabaseError; | |
| import com.google.firebase.database.DatabaseReference; | |
| import com.google.firebase.database.FirebaseDatabase; | |
| import com.google.firebase.database.ServerValue; | |
| import com.google.firebase.database.ValueEventListener; | |
| import com.miguelcatalan.materialsearchview.MaterialSearchView; | |
| import java.util.HashMap; | |
| import ctize.connectplus.com.communitize.model.model.Community; | |
| import ctize.connectplus.com.communitize.model.model.Post; | |
| import io.codetail.animation.SupportAnimator; | |
| import io.codetail.animation.ViewAnimationUtils; | |
| public class Home extends AppCompatActivity | |
| implements NavigationView.OnNavigationItemSelectedListener { | |
| public static final int REQUEST_INVITE = 95; | |
| private static final String TAG = Home.class.getSimpleName(); | |
| public ImageView send; | |
| public boolean postpermission = false; | |
| MaterialSearchView searchView; | |
| FloatingActionButton fab; | |
| LinearLayout mRevealView; | |
| LinearLayout ask_a_question,requirement,offering,event,announcement,poll,postoptions; | |
| EditText postscreen; | |
| Uri deepLink; | |
| private FirebaseAuth auth; | |
| private FirebaseUser user; | |
| private DatabaseReference mUserRef; | |
| private String admin, community, communityId, communityUrl,type="Default"; | |
| private Boolean admincheck = false; | |
| private boolean hidden = true; | |
| private update_post listener; | |
| private ArrayMap<Integer, String> communityKeys; | |
| public FloatingActionButton getFab() { | |
| return fab; | |
| } | |
| listener = (UpdatesFragment) getFragmentManager().findFragmentById(R.id.fragement_updates); //Here is listnere attcahed with fragment and thisis where th NullPointer error is pointed. | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.activity_home); | |
| Toolbar toolbar = findViewById(R.id.toolbar); | |
| setSupportActionBar(toolbar); | |
| auth = FirebaseAuth.getInstance(); | |
| mRevealView = findViewById(R.id.reveal_items); | |
| mRevealView.setVisibility(View.GONE); | |
| create_post_options(); | |
| final BottomNavigationView bottomNavigationView = findViewById(R.id.navigation); | |
| BottomNavigationMenuView menuView = (BottomNavigationMenuView) | |
| bottomNavigationView.getChildAt(0); | |
| for (int i = 0; i < menuView.getChildCount(); i++) { | |
| final View iconView = | |
| menuView.getChildAt(i).findViewById(android.support.design.R.id.icon); | |
| final ViewGroup.LayoutParams layoutParams = | |
| iconView.getLayoutParams(); | |
| final DisplayMetrics displayMetrics = | |
| getResources().getDisplayMetrics(); | |
| layoutParams.height = (int) | |
| TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 18, | |
| displayMetrics); | |
| layoutParams.width = (int) | |
| TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 18, | |
| displayMetrics); | |
| iconView.setLayoutParams(layoutParams); | |
| } | |
| final ViewPager viewPager = findViewById(R.id.view_pager); | |
| FragmentPagerAdapter pagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { | |
| @Override | |
| public int getCount() { | |
| return 4; | |
| } | |
| @Override | |
| public Fragment getItem(int position) { | |
| switch (position) { | |
| case 0: | |
| return new UpdatesFragment(); | |
| case 1: | |
| return new ForumsFragment(); | |
| case 2: | |
| return new ChatsFragment(); | |
| case 3: | |
| return new NotificationsFragment(); | |
| } | |
| return null; | |
| } | |
| }; | |
| viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() | |
| { | |
| @Override | |
| public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { | |
| } | |
| @Override | |
| public void onPageSelected(int position) { | |
| switch (position) { | |
| case 0: | |
| fab.hide(); | |
| postoptions.setVisibility(View.VISIBLE); | |
| mRevealView.setVisibility(View.GONE); | |
| break; | |
| case 1: | |
| fab.hide(); | |
| postoptions.setVisibility(View.GONE); | |
| mRevealView.setVisibility(View.GONE); | |
| break; | |
| case 2: | |
| fab.hide(); | |
| postoptions.setVisibility(View.GONE); | |
| mRevealView.setVisibility(View.GONE); | |
| break; | |
| case 3: | |
| fab.hide(); | |
| postoptions.setVisibility(View.GONE); | |
| mRevealView.setVisibility(View.GONE); | |
| break; | |
| default: | |
| fab.hide(); | |
| postoptions.setVisibility(View.VISIBLE); | |
| mRevealView.setVisibility(View.GONE); | |
| break; | |
| } | |
| } | |
| @Override | |
| public void onPageScrollStateChanged(int state) { | |
| } | |
| }); | |
| viewPager.setAdapter(pagerAdapter); | |
| bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { | |
| @Override | |
| public boolean onNavigationItemSelected(@NonNull MenuItem item) { | |
| switch (item.getItemId()) { | |
| case R.id.navigation_status: | |
| viewPager.setCurrentItem(0); | |
| break; | |
| case R.id.navigation_forum: | |
| viewPager.setCurrentItem(1); | |
| break; | |
| case R.id.navigation_message: | |
| viewPager.setCurrentItem(2); | |
| break; | |
| case R.id.navigation_notification: | |
| viewPager.setCurrentItem(3); | |
| break; | |
| } | |
| return false; | |
| } | |
| }); | |
| DrawerLayout drawer = findViewById(R.id.drawer_layout); | |
| ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( | |
| this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); | |
| drawer.addDrawerListener(toggle); | |
| toggle.syncState(); | |
| NavigationView navigationView = findViewById(R.id.nav_view); | |
| //for switching communit | |
| Menu menu = navigationView.getMenu(); | |
| final MenuItem post_approval = menu.findItem(R.id.nav_post_approval); | |
| final MenuItem shareLink = menu.findItem(R.id.share_link); | |
| final MenuItem addMembers = menu.findItem(R.id.add_members); | |
| // Post approval menu item | |
| if (!admincheck) { | |
| post_approval.setVisible(false); //non admin members | |
| shareLink.setVisible(false); | |
| addMembers.setVisible(false); | |
| announcement.setVisibility(View.GONE); | |
| event.setVisibility(View.GONE); | |
| poll.setVisibility(View.GONE); | |
| } else { | |
| post_approval.setVisible(true); | |
| shareLink.setVisible(true); | |
| addMembers.setVisible(true); | |
| //for admin | |
| } | |
| navigationView.setNavigationItemSelectedListener(this); | |
| auth = FirebaseAuth.getInstance(); | |
| } | |
| @Override | |
| public boolean onCreateOptionsMenu(Menu menu) { | |
| // Inflate the menu; this adds items to the action bar if it is present. | |
| getMenuInflater().inflate(R.menu.home, menu); | |
| MenuItem item = menu.findItem(R.id.action_search); | |
| searchView.setMenuItem(item); | |
| return true; | |
| } | |
| @Override | |
| public boolean onOptionsItemSelected(MenuItem item) { | |
| // Handle action bar item clicks here. The action bar will | |
| // automatically handle clicks on the Home/Up button, so long | |
| // as you specify a parent activity in AndroidManifest.xml. | |
| int id = item.getItemId(); | |
| //noinspection SimplifiableIfStatement | |
| if (id == R.id.bookmark) { | |
| Intent i = new Intent(Home.this,Boolmarksv2.class); | |
| startActivity(i); | |
| return true; | |
| } | |
| if (id == R.id.forum) { | |
| return true; | |
| } | |
| if (id == R.id.accout_setting) { | |
| Intent i = new Intent(Home.this,AccountSetting.class); | |
| startActivity(i); | |
| return true; | |
| } | |
| if (id == R.id.Logout) { | |
| mUserRef.child("online").setValue(ServerValue.TIMESTAMP); | |
| auth.signOut(); | |
| user = FirebaseAuth.getInstance().getCurrentUser(); | |
| if (user == null) { | |
| // user auth state is changed - user is null | |
| // launch login activity | |
| startActivity(new Intent(Home.this, Login.class)); | |
| finish(); | |
| } | |
| return true; | |
| } | |
| return super.onOptionsItemSelected(item); | |
| } | |
| @SuppressWarnings("StatementWithEmptyBody") | |
| @Override | |
| public boolean onNavigationItemSelected(MenuItem item) { | |
| // Handle navigation view item clicks here. | |
| int id = item.getItemId(); | |
| if (id == R.id.new_community) { | |
| Intent intent = new Intent(Home.this, CreateCommunity.class); | |
| startActivity(intent); | |
| finish(); | |
| } else if (id == R.id.nav_profile) { | |
| Intent i = new Intent(Home.this,UserDetails.class); | |
| i.putExtra("type","0"); | |
| startActivity(i); | |
| } else if (id == R.id.nav_bookmark) { | |
| Intent i = new Intent(Home.this,Boolmarksv2.class); | |
| startActivity(i); | |
| } else if (id == R.id.nav_settings) { | |
| Intent i = new Intent(Home.this,AccountSetting.class); | |
| startActivity(i); | |
| } else if (id == R.id.nav_post_approval) { | |
| Intent i = new Intent(Home.this,Post_approval.class); | |
| startActivity(i); | |
| } | |
| else if (id == R.id.share_link) { | |
| Intent sendIntent = new Intent(); | |
| sendIntent.setAction(Intent.ACTION_SEND); | |
| sendIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.invitation_title).concat(community) + " on ConnectPlus" + "\n" + | |
| "https://czj4d.app.goo.gl/?link=http://" + communityUrl + "/join/" + communityId + | |
| "/&apn=ctize.connectplus.com.communitize"); | |
| sendIntent.setType("text/plain"); | |
| startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.share_link)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); | |
| } | |
| else if (id == R.id.add_members) { | |
| try { | |
| Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title).concat(community)) | |
| .setEmailSubject(getString(R.string.invitation_title).concat(community)) | |
| .setEmailHtmlContent("<html>" + | |
| " <body>" + | |
| " <img src='" + getString(R.string.invitation_custom_image) + "'/>" + | |
| " <a href='" + deepLink + "'>Click here to install</a>" + | |
| " </body>" + | |
| " </html>") | |
| .build(); | |
| startActivityForResult(intent, REQUEST_INVITE); | |
| } catch (ActivityNotFoundException ac) { | |
| Intent sendIntent = new Intent(); | |
| sendIntent.setAction(Intent.ACTION_SEND); | |
| sendIntent.setType("text/plain"); | |
| startActivity(sendIntent); | |
| } | |
| } | |
| DrawerLayout drawer = findViewById(R.id.drawer_layout); | |
| drawer.closeDrawer(GravityCompat.START); | |
| return true; | |
| } | |
| @Override | |
| protected void onActivityResult(int requestCode, int resultCode, Intent data) { | |
| super.onActivityResult(requestCode, resultCode, data); | |
| Log.d(TAG, "onActivityResult: requestCode=" + requestCode + ", resultCode=" + resultCode); | |
| if (requestCode == REQUEST_INVITE) { | |
| if (resultCode == RESULT_OK) { | |
| // Get the invitation IDs of all sent messages | |
| String[] ids = AppInviteInvitation.getInvitationIds(resultCode, data); | |
| for (String id : ids) { | |
| Log.d(TAG, "onActivityResult: sent invitation " + id); | |
| } | |
| } | |
| else { | |
| Log.d(TAG, "invite send failed or cancelled:" + requestCode + ",resultCode:" + resultCode ); | |
| } | |
| } | |
| } | |
| public void print(String s) { | |
| Toast.makeText(this,s,Toast.LENGTH_SHORT).show(); | |
| } | |
| public void post_data(View view) { | |
| String message = postscreen.getText().toString().trim(); | |
| if (type.equals("Default")) { | |
| print("Choose a Post Type to continue"); | |
| } else if (message.isEmpty()) { | |
| print("Type your Post to continue"); | |
| } else { | |
| permissionCheck(); | |
| DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(communityId); | |
| if (postpermission) { | |
| mDatabase = mDatabase.child("temp_connectplus_posts"); | |
| } else { | |
| mDatabase = mDatabase.child("connectplus_posts"); | |
| } | |
| String key = mDatabase.push().getKey(); | |
| long timeStamp = System.currentTimeMillis(); | |
| Post post = new Post(timeStamp, auth.getUid().toString(),"0",type,message,"0",0,0,0,null); | |
| mDatabase.child(key).setValue(post); | |
| print("Posted Successfully"); | |
| postscreen.setText(""); | |
| postscreen.setCursorVisible(false); | |
| postscreen.setHint("Start typing.."); | |
| type = "Default"; | |
| InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); | |
| im.hideSoftInputFromWindow(postscreen.getWindowToken(), 0); | |
| listener.update_it(); //Listner is called here. | |
| } | |
| } | |
| public void post_option(View view) { | |
| int cx = (mRevealView.getLeft() + mRevealView.getRight()); | |
| int cy = mRevealView.getTop(); | |
| int radius = Math.max(mRevealView.getWidth(), mRevealView.getHeight()); | |
| //Below Android LOLIPOP Version | |
| if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { | |
| SupportAnimator animator = | |
| ViewAnimationUtils.createCircularReveal(mRevealView, cx, cy, 0, radius); | |
| animator.setInterpolator(new AccelerateDecelerateInterpolator()); | |
| animator.setDuration(700); | |
| SupportAnimator animator_reverse = animator.reverse(); | |
| if (hidden) { | |
| mRevealView.setVisibility(View.VISIBLE); | |
| animator.addListener(new SupportAnimator.AnimatorListener() { | |
| @Override | |
| public void onAnimationStart() { | |
| } | |
| @Override | |
| public void onAnimationEnd() { | |
| postscreen.setHint("Choose a category"); | |
| } | |
| @Override | |
| public void onAnimationCancel() { | |
| } | |
| @Override | |
| public void onAnimationRepeat() { | |
| } | |
| }); | |
| hidden = false; | |
| animator.start(); | |
| } else { | |
| animator_reverse.addListener(new SupportAnimator.AnimatorListener() { | |
| @Override | |
| public void onAnimationStart() { | |
| } | |
| @Override | |
| public void onAnimationEnd() { | |
| mRevealView.setVisibility(View.INVISIBLE); | |
| hidden = true; | |
| postscreen.setHint("Start typing"); | |
| } | |
| @Override | |
| public void onAnimationCancel() { | |
| } | |
| @Override | |
| public void onAnimationRepeat() { | |
| } | |
| }); | |
| animator_reverse.start(); | |
| } | |
| } | |
| // Android LOLIPOP And ABOVE Version | |
| else { | |
| if (hidden) { | |
| Animator anim = android.view.ViewAnimationUtils. | |
| createCircularReveal(mRevealView, cx, cy, 0, radius); | |
| mRevealView.setVisibility(View.VISIBLE); | |
| final Handler handler = new Handler(); | |
| handler.postDelayed(new Runnable() { | |
| @Override | |
| public void run() { | |
| postscreen.setHint("Choose a category"); | |
| // Do something after 5s = 5000ms | |
| } | |
| }, 400); | |
| anim.start(); | |
| hidden = false; | |
| } else { | |
| Animator anim = android.view.ViewAnimationUtils. | |
| createCircularReveal(mRevealView, cx, cy, radius, 0); | |
| anim.addListener(new AnimatorListenerAdapter() { | |
| @Override | |
| public void onAnimationEnd(Animator animation) { | |
| super.onAnimationEnd(animation); | |
| mRevealView.setVisibility(View.INVISIBLE); | |
| hidden = true; | |
| } | |
| }); | |
| anim.start(); | |
| final Handler handler = new Handler(); | |
| handler.postDelayed(new Runnable() { | |
| @Override | |
| public void run() { | |
| postscreen.setHint("Start typing"); | |
| } | |
| }, 400); | |
| } | |
| } | |
| } | |
| private void hideRevealView() { | |
| if (mRevealView.getVisibility() == View.VISIBLE) { | |
| mRevealView.setVisibility(View.GONE); | |
| hidden = true; | |
| } | |
| } | |
| private void create_post_options() { | |
| if (!communityId.equals(auth.getUid())) { //for non admin members | |
| ask_a_question.setOnClickListener(new View.OnClickListener() { | |
| @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | |
| @Override | |
| public void onClick(View v) { | |
| postscreen.setFocusableInTouchMode(true); | |
| postscreen.setEnabled(true); | |
| postscreen.setFocusable(true); | |
| postscreen.setHint("Ask your question"); | |
| postscreen.setCursorVisible(true); | |
| postscreen.setShowSoftInputOnFocus(true); | |
| postscreen.requestFocus(); | |
| postscreen.setSelection(0); | |
| type = "Question"; | |
| InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); | |
| imm.showSoftInput(postscreen, InputMethodManager.SHOW_IMPLICIT); | |
| hideRevealView(); | |
| /* Intent i = new Intent(Home.this,Create_post.class); | |
| i.putExtra("type",3); | |
| startActivity(i);*/ | |
| } | |
| }); | |
| offering.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| postscreen.setFocusableInTouchMode(true); | |
| postscreen.setEnabled(true); | |
| postscreen.setFocusable(true); | |
| postscreen.setHint("Enter your offering"); | |
| postscreen.setCursorVisible(true); | |
| postscreen.requestFocus(); | |
| postscreen.setSelection(0); | |
| type = "Offerings"; | |
| InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); | |
| imm.showSoftInput(postscreen, InputMethodManager.SHOW_IMPLICIT); | |
| hideRevealView(); | |
| /* Intent i = new Intent(Home.this,Create_post.class); | |
| i.putExtra("type",2); | |
| startActivity(i);*/ | |
| } | |
| }); | |
| requirement.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| postscreen.setFocusableInTouchMode(true); | |
| postscreen.setEnabled(true); | |
| postscreen.setFocusable(true); | |
| postscreen.setHint("Enter your requirement"); | |
| postscreen.setCursorVisible(true); | |
| postscreen.requestFocus(); | |
| postscreen.setSelection(0); | |
| type = "Requirement"; | |
| InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); | |
| imm.showSoftInput(postscreen, InputMethodManager.SHOW_IMPLICIT); | |
| hideRevealView(); | |
| /* Intent i = new Intent(Home.this,Create_post.class); | |
| i.putExtra("type",1); | |
| startActivity(i);*/ | |
| } | |
| }); | |
| announcement.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| postscreen.setFocusableInTouchMode(true); | |
| postscreen.setEnabled(true); | |
| postscreen.setFocusable(true); | |
| postscreen.setHint("Enter your announcement"); | |
| postscreen.setCursorVisible(true); | |
| postscreen.requestFocus(); | |
| postscreen.setSelection(0); | |
| type = "Announcement"; | |
| InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); | |
| imm.showSoftInput(postscreen, InputMethodManager.SHOW_IMPLICIT); | |
| hideRevealView(); | |
| /* Intent i = new Intent(Home.this,Create_post.class); | |
| i.putExtra("type",5); | |
| startActivity(i);*/ | |
| } | |
| }); | |
| } | |
| } | |
| public void setListener(update_post listener) { // Listner for update_post Interface | |
| this.listener = listener ; | |
| } | |
| public interface update_post { | |
| void update_it(); //the function which connects with the fragment | |
| } | |
| private void permissionCheck() { | |
| DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("communities").child(communityId).child("postPermission"); | |
| reference.addListenerForSingleValueEvent(new ValueEventListener() { | |
| @Override | |
| public void onDataChange(DataSnapshot dataSnapshot) { | |
| if (dataSnapshot.getValue() != null) { | |
| Boolean check = (Boolean) dataSnapshot.getValue(); | |
| postpermission = check; | |
| } | |
| } | |
| @Override | |
| public void onCancelled(DatabaseError databaseError) { | |
| } | |
| }); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package ctize.connectplus.com.communitize; | |
| import android.os.Bundle; | |
| import android.support.v4.app.Fragment; | |
| import android.support.v4.widget.SwipeRefreshLayout; | |
| import android.support.v7.widget.LinearLayoutManager; | |
| import android.support.v7.widget.RecyclerView; | |
| import android.view.LayoutInflater; | |
| import android.view.View; | |
| import android.view.ViewGroup; | |
| import android.widget.LinearLayout; | |
| import android.widget.Toast; | |
| import com.firebase.ui.database.FirebaseRecyclerAdapter; | |
| import com.google.firebase.auth.FirebaseAuth; | |
| import com.google.firebase.database.DatabaseReference; | |
| import com.google.firebase.database.FirebaseDatabase; | |
| import java.util.Calendar; | |
| import ctize.connectplus.com.communitize.model.model.Post; | |
| /** | |
| * A simple {@link Fragment} subclass. | |
| */ | |
| public class UpdatesFragment extends Fragment implements Home.update_post { | |
| FirebaseRecyclerAdapter<Post, PostAdapterViewHolder> adapter; | |
| SwipeRefreshLayout mSwipeRefreshLayout; | |
| RecyclerView recyclerView; | |
| LinearLayoutManager layoutManager; | |
| LinearLayout mRevealView; | |
| DatabaseReference databaseReference; | |
| View view; | |
| FirebaseAuth auth = FirebaseAuth.getInstance(); | |
| String admin,CommunityId; | |
| public UpdatesFragment() { | |
| // Required empty public constructor | |
| } | |
| @Override | |
| public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
| Bundle savedInstanceState) { | |
| // Inflate the layout for this fragment | |
| view = inflater.inflate(R.layout.fragment_updates, container, false); | |
| layoutManager = new LinearLayoutManager(view.getContext()); | |
| layoutManager.setReverseLayout(false); | |
| layoutManager.setStackFromEnd(true); | |
| recyclerView = view.findViewById(R.id.rv_post_list); | |
| SharedPreferencesUtils sharedPreferencesUtils = new SharedPreferencesUtils(); | |
| CommunityId = SharedPreferencesUtils.getCommunityId(getContext()); | |
| admin = SharedPreferencesUtils.getCurrentAdmin(getContext()); | |
| databaseReference = FirebaseDatabase.getInstance().getReference().child(CommunityId).child("connectplus_posts"); | |
| mSwipeRefreshLayout = view.findViewById(R.id.swip); | |
| loaddata(); | |
| mSwipeRefreshLayout.setOnRefreshListener( | |
| new SwipeRefreshLayout.OnRefreshListener() { | |
| @Override | |
| public void onRefresh() { | |
| mSwipeRefreshLayout.setRefreshing(false); | |
| adapter.cleanup(); | |
| adapter.notifyDataSetChanged(); | |
| recyclerView.removeAllViews(); | |
| loaddata(); | |
| } | |
| } | |
| ); | |
| return view; | |
| } | |
| public void print(String s) { | |
| Toast.makeText(getActivity(),s,Toast.LENGTH_SHORT).show(); | |
| } | |
| private void loaddata() { | |
| recyclerView.setHasFixedSize(true); | |
| recyclerView.setLayoutManager(layoutManager); | |
| Calendar calendar = Calendar.getInstance(); | |
| calendar.add(Calendar.DATE, -30); | |
| adapter = new FirebaseRecyclerAdapter<Post, PostAdapterViewHolder>(Post.class, R.layout.post_list_item, PostAdapterViewHolder.class, databaseReference.orderByChild("timestamp").startAt(calendar.getTimeInMillis()).endAt(System.currentTimeMillis())) { | |
| public void populateViewHolder(final PostAdapterViewHolder postAdapterViewHolder, final Post post, final int position) { | |
| final String key = this.getRef(position).getKey(); | |
| postAdapterViewHolder.setKey(key); | |
| postAdapterViewHolder.setContext(getActivity().getApplicationContext()); | |
| postAdapterViewHolder.setCommunityId(CommunityId); | |
| postAdapterViewHolder.setDescription(post.getText()); | |
| postAdapterViewHolder.setUser(post.getCreator()); | |
| postAdapterViewHolder.setTime(post.getTimestamp()); | |
| postAdapterViewHolder.setImage(post.getImageUrl()); | |
| postAdapterViewHolder.setType(post.getType()); | |
| postAdapterViewHolder.postdata(key,CommunityId); | |
| postAdapterViewHolder.setLike(post.getLikesCount()); | |
| postAdapterViewHolder.setBookmark(); | |
| postAdapterViewHolder.time.setVisibility(View.INVISIBLE); | |
| postAdapterViewHolder.activitybar.setVisibility(View.GONE); | |
| } | |
| }; | |
| recyclerView.setAdapter(adapter); | |
| } | |
| @Override | |
| public void update_it() { | |
| adapter.notifyDataSetChanged(); //Here the adapter gets updated. | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment