On Sat, Mar 10, 2018 at 10:38 PM, Ayush Basral <[email protected]>
wrote:

> Good evening
> Respected Sir/Mam
> I feel really opportunistic to share with you that in order to participate
> in esteemed competition of Google summer of code (GSOC) , I would like to
> work on the project Taverna Mobile to run workflows using Taverna Server
> REST api.
> I have researched thouroughly and understood the project. I seek your
> supreme guidance for further work.
> Looking forward for working together.
> Best
> Ayush
> Chandigarh College of Engineering and Technology
>
>
gitprojects / incubator-taverna-mobile.git / blob
 ? search: 
 re


8c99a4af3612cd21252c00fd28fe823eafa7975b
[incubator-taverna-mobile.git] / app / src / main / java / org / apache / 
taverna / mobile / ui / anouncements / AnnouncementFragment.java
    /*
     * Licensed to the Apache Software Foundation (ASF) under one
     * or more contributor license agreements.  See the NOTICE file
     * distributed with this work for additional information
     * regarding copyright ownership.  The ASF licenses this file
     * to you under the Apache License, Version 2.0 (the
     * "License"); you may not use this file except in compliance
     * with the License.  You may obtain a copy of the License at
     *
    *   http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing,
    * software distributed under the License is distributed on an
    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    * KIND, either express or implied.  See the License for the
    * specific language governing permissions and limitations
    * under the License.
    */
   package org.apache.taverna.mobile.ui.anouncements;
   
   import org.apache.taverna.mobile.R;
   import org.apache.taverna.mobile.data.DataManager;
   import org.apache.taverna.mobile.data.model.Announcements;
   import org.apache.taverna.mobile.data.model.DetailAnnouncement;
   import org.apache.taverna.mobile.ui.adapter.AnnouncementAdapter;
   import org.apache.taverna.mobile.ui.adapter.EndlessRecyclerOnScrollListener;
   import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner;
   import org.apache.taverna.mobile.utils.ConnectionInfo;
   import org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout;
   
   import android.app.ProgressDialog;
   import android.os.Bundle;
   import android.support.design.widget.Snackbar;
   import android.support.v4.app.Fragment;
   import android.support.v4.widget.SwipeRefreshLayout;
   import android.support.v7.app.AlertDialog;
   import android.support.v7.widget.DefaultItemAnimator;
   import android.support.v7.widget.LinearLayoutManager;
   import android.support.v7.widget.RecyclerView;
   import android.util.Log;
  import android.view.LayoutInflater;
   import android.view.Menu;
   import android.view.MenuItem;
   import android.view.View;
 import android.view.ViewGroup;
 import android.webkit.WebView;
   import android.widget.Button;
   import android.widget.ProgressBar;
   import android.widget.TextView;
   
   import butterknife.BindView;
   import butterknife.ButterKnife;
   
   
   public class AnnouncementFragment extends Fragment implements 
RecyclerItemClickListner
           .OnItemClickListener, AnnouncementMvpView {
   
       public final String LOG_TAG = getClass().getSimpleName();
   
       @BindView(R.id.rv_movies)
       RecyclerView mRecyclerView;
   
       @BindView(R.id.swipe_refresh)
       ScrollChildSwipeRefreshLayout mSwipeRefresh;
   
       @BindView(R.id.progress_circular)
       ProgressBar mProgressBar;
   
       private AlertDialog alertDialog;
   
       private ProgressDialog dialog;
   
       private Announcements mAnnouncements;
   
       private DataManager dataManager;
   
       private AnnouncementPresenter mAnnouncementPresenter;
   
       private AnnouncementAdapter mAnnouncementAdapter;
   
       private int mPageNumber = 1;
   
       private DetailAnnouncement mAnnouncementDetail;
   
   
       @Override
       public void onItemClick(View childView, int position) {
           if (mAnnouncements.getAnnouncement().get(position) != null && 
position != -1) {
               showWaitProgress(true);
               
mAnnouncementPresenter.loadAnnouncementDetails(mAnnouncements.getAnnouncement()
                       .get(position).getId());
                     
mAnnouncementPresenter.loadAnnouncementDetails(mAnnouncements.getAnnouncement());
           }
       }
   
       @Override
       public void onItemLongPress(View childView, int position) {
   
       }
   
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          mAnnouncements = new Announcements();
          dataManager = new DataManager();
          mAnnouncementPresenter = new AnnouncementPresenter(dataManager);
          setHasOptionsMenu(true);
      }
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle
              savedInstanceState) {
          View rootView = inflater.inflate(R.layout.fragment_announcement, 
container, false);
          ButterKnife.bind(this, rootView);
          mAnnouncementPresenter.attachView(this);
  
  
          final LinearLayoutManager layoutManager = new 
LinearLayoutManager(getActivity());
          mRecyclerView.setLayoutManager(layoutManager);
          mRecyclerView.addOnItemTouchListener(new 
RecyclerItemClickListner(getActivity(), this));
          mRecyclerView.setItemAnimator(new DefaultItemAnimator());
  
  
          mSwipeRefresh.setColorSchemeResources(R.color.colorAccent, 
R.color.colorAccent, R.color
                  .colorPrimary);
          mSwipeRefresh.setOnRefreshListener(new 
SwipeRefreshLayout.OnRefreshListener() {
              @Override
              public void onRefresh() {
                  if (ConnectionInfo.isConnectingToInternet(getContext())) {
                      if (mSwipeRefresh.isRefreshing()) {
                          mPageNumber = 1;
                          
mAnnouncementPresenter.loadAllAnnouncement(mPageNumber);
                          Log.i(LOG_TAG, "Swipe Refresh");
                      }
                  } else {
                      Log.i(LOG_TAG, "NO Internet Connection");
                      showSnackBar(R.string.no_internet_connection);
                      if (mSwipeRefresh.isRefreshing()) {
                          mSwipeRefresh.setRefreshing(false);
                      }
                  }
  
              }
          });
  
          showProgressbar(true);
          mAnnouncementPresenter.loadAllAnnouncement(mPageNumber);
  
          mRecyclerView.addOnScrollListener(new 
EndlessRecyclerOnScrollListener(layoutManager) {
              @Override
              public void onLoadMore(int current_page) {
  
                  if (ConnectionInfo.isConnectingToInternet(getContext())) {
                      mAnnouncements.getAnnouncement().add(null);
                      
mAnnouncementAdapter.notifyItemInserted(mAnnouncements.getAnnouncement().size
                              ());
                      mPageNumber = ++mPageNumber;
                      mAnnouncementPresenter.loadAllAnnouncement(mPageNumber);
                      Log.i(LOG_TAG, "Loading more");
                  } else {
                      Log.i(LOG_TAG, "Internet not available. Not loading more 
posts.");
                      showSnackBar(R.string.no_internet_connection);
                  }
              }
          });
          return rootView;
      }
  
      @Override
      public void onDestroyView() {
          super.onDestroyView();
          mAnnouncementPresenter.detachView();
      }
 
  
      @Override
      public void showAllAnnouncement(Announcements announcements) {
          if (mPageNumber == 1) {
              mAnnouncements = announcements;
              mAnnouncementAdapter = new 
AnnouncementAdapter(mAnnouncements.getAnnouncement());
              mRecyclerView.setAdapter(mAnnouncementAdapter);
          } else {
              removeLoadMoreProgressBar();
              
mAnnouncements.getAnnouncement().addAll(announcements.getAnnouncement());
        }
  
          mRecyclerView.setVisibility(View.VISIBLE);
          mAnnouncementAdapter.notifyDataSetChanged();
          if (mSwipeRefresh.isRefreshing()) {
              mSwipeRefresh.setRefreshing(false);
          }
      }
  
      @Override
      public void removeLoadMoreProgressBar() {
          
mAnnouncements.getAnnouncement().remove(mAnnouncements.getAnnouncement().size() 
- 1);
          mAnnouncementAdapter.notifyDataSetChanged();
      }
  
      @Override
      public void showProgressbar(boolean status) {
          if (status) {
              mProgressBar.setVisibility(View.VISIBLE);
          } else {
              mProgressBar.setVisibility(View.GONE);
          }
      }
  
      @Override
      public void showAnnouncementDetail(DetailAnnouncement detailAnnouncement) 
{
          mAnnouncementDetail = detailAnnouncement;
         AlertDialog.Builder dialogBuilder = new 
AlertDialog.Builder(getContext());
          LayoutInflater inflater = getActivity().getLayoutInflater();
          View dialogView = 
inflater.inflate(R.layout.detail_annoucement_dialog_layout, null);
          dialogBuilder.setView(dialogView);
          TextView title = dialogView.findViewById(R.id.tvDialogTitle);
          TextView date = dialogView.findViewById(R.id.tvDialogDate);
          TextView author = dialogView.findViewById(R.id.tvDialogAuthor);
          WebView text = dialogView.findViewById(R.id.wvDialogText);
          Button buttonOk = dialogView.findViewById(R.id.bDialogOK);
          buttonOk.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  alertDialog.dismiss();
              }
          });
          text.loadDataWithBaseURL("", mAnnouncementDetail.getText(), 
"text/html", "utf-8", "");
          date.setText(mAnnouncementDetail.getDate());
          title.setText(mAnnouncementDetail.getTitle());
          author.setText(mAnnouncementDetail.getAuthor().getContent());
          alertDialog = dialogBuilder.create();
          alertDialog.show();
      }
  
      @Override
      public void onResume() {
          super.onResume();
      }
  
      @Override
      public void showSnackBar(int message) {
          final Snackbar snackbar = Snackbar.make(mRecyclerView, message, 
Snackbar.LENGTH_LONG);
          snackbar.setAction(getResources().getString(R.string.ok), new 
View.OnClickListener() {
              @Override
              public void onClick(View view) {
                 snackbar.dismiss();
              }
          });
  
          snackbar.show();
      }
  
      @Override
      public void showWaitProgress(boolean b) {
          if (b) {
              dialog = ProgressDialog.show(getContext(), "Loading", "Please 
wait...", true);
          } else {
              dialog.dismiss();
          }
      }
  
    @Override
     public void onPrepareOptionsMenu(Menu menu) {
          super.onPrepareOptionsMenu(menu);
         MenuItem item = menu.findItem(R.id.action_search);
          item.setVisible(false);
      }
  }
Apache Taverna Mobile (Incubating)RSSAtom

Reply via email to