de.wikilab.android.friendica01.activity.UserProfileActivity.java Source code

Java tutorial

Introduction

Here is the source code for de.wikilab.android.friendica01.activity.UserProfileActivity.java

Source

package de.wikilab.android.friendica01.activity;

/* 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/. */
import java.util.Iterator;

import org.json.JSONException;
import org.json.JSONObject;

import de.wikilab.android.friendica01.FragmentParentListener;
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.fragment.ContentFragment;
import de.wikilab.android.friendica01.fragment.PostListFragment;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.text.Html;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class UserProfileActivity extends FragmentActivity implements FragmentParentListener {
    private static final String TAG = "Friendica/UserProfileActivity";

    String userId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        userId = getIntent().getStringExtra("userId");
        Log.i(TAG, "loading profile for userId=" + userId);

        setContentView(R.layout.userprofile);

        Button btn;
        btn = (Button) findViewById(R.id.btn_nav_1);
        if (btn != null) {
            btn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    findViewById(R.id.content_fragment_1).setVisibility(View.VISIBLE);
                    findViewById(R.id.content_fragment_2).setVisibility(View.GONE);
                }
            });
            btn = (Button) findViewById(R.id.btn_nav_2);
            btn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    findViewById(R.id.content_fragment_1).setVisibility(View.GONE);
                    findViewById(R.id.content_fragment_2).setVisibility(View.VISIBLE);
                }
            });
        }

        final TwAjax t = new TwAjax(this, true, true);
        t.getUrlContent(Max.getServer(this) + "/api/users/show/" + userId, new Runnable() {
            @Override
            public void run() {

                try {
                    JSONObject j = (JSONObject) t.getJsonResult();

                    ((TextView) findViewById(R.id.profile_name)).setText(
                            Html.fromHtml("<b>" + j.getString("name") + "</b><br>" + j.getString("screen_name")));
                    ((TextView) findViewById(R.id.header_text)).setText(j.getString("name") + "'s profile");

                    ((ImageView) findViewById(R.id.profile_image)).setImageURI(
                            Uri.parse("file://" + Max.IMG_CACHE_DIR + "/friend_pi_" + j.getString("id") + "_.jpg"));

                    String key, tx = "";
                    Iterator<String> iter = j.keys();
                    while (iter.hasNext()) {
                        key = iter.next();
                        tx += "<br><b>" + key + ":</b> " + String.valueOf(j.get(key));
                    }

                    ((TextView) findViewById(R.id.profile_content)).setText(Html.fromHtml(tx));

                } catch (Exception e) {

                    ((TextView) findViewById(R.id.profile_content))
                            .setText(Html.fromHtml("<b>Error loading profile data!</b><br><br>" + e.toString()
                                    + "<br><br>" + Max.Hexdump(t.getResult().getBytes())));

                }

            }
        });
    }

    @Override
    public void onAttachFragment(Fragment fragment) {
        super.onAttachFragment(fragment);

        if (fragment instanceof PostListFragment)
            ((ContentFragment) fragment).navigate("userwall:" + userId);

    }

    @Override
    public void OnFragmentMessage(String message, Object arg1, Object arg2) {

        if (message.equals("Navigate Conversation")) {
            Intent in = new Intent(this, GenericContentActivity.class);
            in.putExtra("target", "conversation:" + arg1);
            startActivity(in);
        }
    }

}