Android Open Source - friendica-for-android Post Detail Fragment






From Project

Back to project page friendica-for-android.

License

The source code is released under:

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

If you think the Android project friendica-for-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.wikilab.android.friendica01.fragment;
//from w w w .  j a  v  a2  s.  c o m
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import com.handmark.pulltorefresh.library.PullToRefreshListView;

import de.wikilab.android.friendica01.Max;
import de.wikilab.android.friendica01.R;
import de.wikilab.android.friendica01.TwAjax;
import de.wikilab.android.friendica01.R.id;
import de.wikilab.android.friendica01.R.layout;
import de.wikilab.android.friendica01.adapter.PostListAdapter;

public class PostDetailFragment extends ContentFragment {
  private static final String TAG="Friendica/PostDetailFragment";
  

  PullToRefreshListView reflvw;
  ListView list;

  String refreshTarget;
  

  String conversationId;

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    myView = inflater.inflate(R.layout.pd_listviewinner, container, false);
    reflvw = (PullToRefreshListView) myView.findViewById(R.id.listview);
    list = reflvw.getRefreshableView();
    
    ((Button) myView.findViewById(R.id.btn_upload)).setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        sendComment();
      }
    });
    
    return myView;
  }
  
  protected void sendComment() {
    SendMessage("Loading Animation", Integer.valueOf(View.VISIBLE), null);
    final TwAjax t = new TwAjax(getActivity(), true, true);
    t.addPostData("status", ((EditText) myView.findViewById(R.id.maintb)).getText().toString());
    t.addPostData("source", "<a href='http://friendica-for-android.wiki-lab.net'>Friendica for Android</a>");
    t.addPostData("in_reply_to_status_id", conversationId);
    ((Button) myView.findViewById(R.id.btn_upload)).setEnabled(false);
    t.postData(Max.getServer(getActivity()) + "/api/statuses/update", new Runnable() {
      @Override
      public void run() {
        ((EditText) myView.findViewById(R.id.maintb)).setText("");
        ((Button) myView.findViewById(R.id.btn_upload)).setEnabled(true);
        loadComments();
      }
    });
  }

  protected void onNavigate(String target) {
    if (myView != null) {
      
    }
    SendMessage("Loading Animation", Integer.valueOf(View.VISIBLE), null);
    if (target != null && target.startsWith("conversation:")) {
      conversationId = target.substring(13);
      
      SendMessage("Set Header Text", "Post Details ("+String.valueOf(conversationId)+")", null);
      loadInitialPost();
    }
  }

  public void hideProgBar() {
    SendMessage("Loading Animation", Integer.valueOf(View.INVISIBLE), null);
  }

  public void loadInitialPost() {
    final TwAjax t = new TwAjax(getActivity(), true, true);
    t.getUrlContent(Max.getServer(getActivity()) + "/api/statuses/show/" + conversationId, new Runnable() {
      @Override
      public void run() {
        try {
          ArrayList<JSONObject> jsonObjectArray = new ArrayList<JSONObject>();
          JSONObject jj = (JSONObject)t.getJsonResult();
          
          jsonObjectArray.add(jj);
          
          //ListView lvw = (ListView) findViewById(R.id.listview);
          
          list.setAdapter(new PostListAdapter(getActivity(), jsonObjectArray));
          
          if (jj.has("statusnet_conversation_id") && jj.getString("statusnet_conversation_id").equals("0") == false) {
            conversationId = jj.getString("statusnet_conversation_id");
          }
          
          loadComments();
          
          
        } catch (Exception e) {
          list.setAdapter(new ArrayAdapter<String>(getActivity(), R.layout.pl_error_listitem, android.R.id.text1, new String[]{"Error: "+ e.getMessage(), Max.Hexdump(t.getResult().getBytes())}));
          e.printStackTrace();
        }
      }
    });

  }


  public void loadComments() {
    final TwAjax t = new TwAjax(getActivity(), true, true);
    t.getUrlContent(Max.getServer(getActivity()) + "/api/statuses/show/" + conversationId + "?conversation=true", new Runnable() {
      @Override
      public void run() {
        try {
          ArrayList<JSONObject> jsonObjectArray = new ArrayList<JSONObject>();
          Object obj = t.getJsonResult();
          if (obj instanceof JSONArray) {
            JSONArray j = (JSONArray)obj;
            
            for(int i = 0; i < j.length(); i++)  jsonObjectArray.add(j.getJSONObject(i));
            
            //ListView lvw = (ListView) findViewById(R.id.listview);
            PostListAdapter pla = new PostListAdapter(getActivity(), jsonObjectArray);
            pla.isPostDetails=true;
            list.setAdapter(pla);
          } else {
            Max.alert(getActivity(), "Sorry, your Friendica server doesn't support conversation view!<br><br>Refer to this page for more information: <a href='http://friendica-for-android.wiki-lab.net/notes#conv-view-note'>http://friendica-for-android.wiki-lab.net/notes#conv-view-note</a>");
          }
          
        } catch (Exception e) {
          e.printStackTrace();
          if (list != null) list.setAdapter(new ArrayAdapter<String>(getActivity(), R.layout.pl_error_listitem, android.R.id.text1, new String[]{"Error: "+ e.getMessage(), Max.Hexdump(t.getResult().getBytes())}));
        }
        hideProgBar();
      }
    });

  }


}




Java Source Code List

com.handmark.pulltorefresh.library.PullToRefreshAdapterViewBase.java
com.handmark.pulltorefresh.library.PullToRefreshBase.java
com.handmark.pulltorefresh.library.PullToRefreshExpandableListView.java
com.handmark.pulltorefresh.library.PullToRefreshGridView.java
com.handmark.pulltorefresh.library.PullToRefreshListView.java
com.handmark.pulltorefresh.library.PullToRefreshWebView.java
com.handmark.pulltorefresh.library.internal.EmptyViewMethodAccessor.java
com.handmark.pulltorefresh.library.internal.IndicatorLayout.java
com.handmark.pulltorefresh.library.internal.LoadingLayout.java
de.wikilab.android.friendica01.FileUploadService.java
de.wikilab.android.friendica01.FragmentParentListener.java
de.wikilab.android.friendica01.GCMIntentService.java
de.wikilab.android.friendica01.HtmlImageHelper.java
de.wikilab.android.friendica01.LoginListener.java
de.wikilab.android.friendica01.Max.java
de.wikilab.android.friendica01.NotificationCheckerService.java
de.wikilab.android.friendica01.Notification.java
de.wikilab.android.friendica01.TwAjax.java
de.wikilab.android.friendica01.ViewServer.java
de.wikilab.android.friendica01.activity.FriendicaImgUploadActivity.java
de.wikilab.android.friendica01.activity.GenericContentActivity.java
de.wikilab.android.friendica01.activity.HomeActivity.java
de.wikilab.android.friendica01.activity.MainScreenActivity.java
de.wikilab.android.friendica01.activity.MessageDetailActivity.java
de.wikilab.android.friendica01.activity.MessagesActivity.java
de.wikilab.android.friendica01.activity.PreferenceContainerActivity.java
de.wikilab.android.friendica01.activity.PreferencesActivity.java
de.wikilab.android.friendica01.activity.UserProfileActivity.java
de.wikilab.android.friendica01.activity.WritePostActivity.java
de.wikilab.android.friendica01.adapter.HtmlStringArrayAdapter.java
de.wikilab.android.friendica01.adapter.MessageContentAdapter.java
de.wikilab.android.friendica01.adapter.MessageListAdapter.java
de.wikilab.android.friendica01.adapter.PhotoGalleryAdapter.java
de.wikilab.android.friendica01.adapter.PostListAdapter.java
de.wikilab.android.friendica01.fragment.ContentFragment.java
de.wikilab.android.friendica01.fragment.FriendListFragment.java
de.wikilab.android.friendica01.fragment.MainMenuFragment.java
de.wikilab.android.friendica01.fragment.MessageViewFragment.java
de.wikilab.android.friendica01.fragment.MessageWriteFragment.java
de.wikilab.android.friendica01.fragment.PhotoGalleryFragment.java
de.wikilab.android.friendica01.fragment.PostDetailFragment.java
de.wikilab.android.friendica01.fragment.PostListFragment.java
de.wikilab.android.friendica01.fragment.WelcomeFragment.java
de.wikilab.android.friendica01.fragment.WritePostFragment.java