ComposeMessageActivity.java :  » Client » vkontakte-android » org » googlecode » vkontakte_android » Android Open Source

Android Open Source » Client » vkontakte android 
vkontakte android » org » googlecode » vkontakte_android » ComposeMessageActivity.java
package org.googlecode.vkontakte_android;

import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.TextView;
import android.widget.Toast;
import org.googlecode.vkontakte_android.provider.UserapiDatabaseHelper;
import org.googlecode.vkontakte_android.provider.UserapiProvider;
import org.googlecode.vkontakte_android.service.CheckingService;
import org.googlecode.vkontakte_android.utils.AppHelper;
import org.googlecode.vkontakte_android.utils.ServiceHelper;

import static org.googlecode.vkontakte_android.provider.UserapiDatabaseHelper.KEY_MESSAGE_RECEIVERID;
import static org.googlecode.vkontakte_android.provider.UserapiDatabaseHelper.KEY_MESSAGE_SENDERID;

public class ComposeMessageActivity extends ListActivity implements AbsListView.OnScrollListener {

    public static final String TAG = "VK:ComposeMessageActivity";

    private MessagesListAdapter adapter;

    private long userId;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

        userId = getIntent().getExtras().getLong(UserapiDatabaseHelper.KEY_MESSAGE_SENDERID,
                getIntent().getExtras().getLong(UserapiDatabaseHelper.KEY_USER_ID, -1));
        if (userId == -1) {
            userId = Long.parseLong(getIntent().getData().getLastPathSegment()); // toDo new
        }

        setContentView(R.layout.messages_compose);
        adapter = new MessagesListAdapter(this, R.layout.message_thread_row, managedQuery(UserapiProvider.MESSAGES_URI, null, KEY_MESSAGE_SENDERID + "=?" + " OR " + KEY_MESSAGE_RECEIVERID + "=?", new String[]{String.valueOf(userId), String.valueOf(userId)}, UserapiDatabaseHelper.KEY_MESSAGE_DATE + " ASC"));
        setListAdapter(adapter);
        getListView().setStackFromBottom(true);
        getListView().setOnScrollListener(this);

        findViewById(R.id.send_reply).setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                sendMessage();
            }
        });
    }

    private void sendMessage() {
        final TextView textView = (TextView) findViewById(R.id.mess_to_send);
        final String message = textView.getText().toString();

        if (message.trim().length() == 0)
            return;

        new AsyncTask<Object, Object, Object>(){
          @Override
            protected void onPreExecute() {
                super.onPreExecute();
                setProgressBarIndeterminateVisibility(true);
                textView.setText("");
                textView.setEnabled(false);
            }
            @Override
            protected void onPostExecute(Object result) {
                setProgressBarIndeterminateVisibility(false);
                textView.setEnabled(true);
            }
        @Override
        protected Object doInBackground(Object... params) {
                try {
                    ServiceHelper.getService().sendMessage(message, userId);
                } catch (RemoteException e) {
                    Log.w("Error while sending message", e);
                    textView.setText(message);
                }
                return null;
        }
        }.execute();
    }

    public void onScroll(AbsListView v, int i, int j, int k) {
    }

    public void onScrollStateChanged(AbsListView v, int state) {
        if (state == AbsListView.OnScrollListener.SCROLL_STATE_IDLE && getListView().getLastVisiblePosition() == adapter.getCount() - 1) {
//            adapter.prepareData();
        }
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.