package com.rubika.aotalk;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.serialization.PropertyInfo;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.AdapterView.OnItemLongClickListener;
import com.actionbarsherlock.app.SherlockFragment;
import com.rubika.aotalk.adapter.RKNMessageAdapter;
import com.rubika.aotalk.item.RKNMessage;
import com.rubika.aotalk.rkn.CallSoap;
import com.rubika.aotalk.util.Logging;
public class FragmentRKN extends SherlockFragment {
private static final String APP_TAG = "--> The Leet :: FragmentRKN";
private AccountManager accountManager;
private Account[] accounts;
private RelativeLayout Overlay;
private ListView messageList;
public static RKNMessageAdapter messageAdapter;
private static SharedPreferences settings;
private List<RKNMessage> messages;
public static FragmentRKN newInstance() {
FragmentRKN f = new FragmentRKN();
return f;
}
public FragmentRKN() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void onResume() {
super.onResume();
CheckRKNAccount();
}
private void CheckRKNAccount() {
accountManager = AccountManager.get(AOTalk.getContext());
accounts = accountManager.getAccountsByType(AOTalk.getContext().getString(R.string.account_type));
if (accounts.length <= 0) {
Overlay.setVisibility(View.VISIBLE);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
settings = PreferenceManager.getDefaultSharedPreferences(AOTalk.getContext());
messages = new ArrayList<RKNMessage>();
View fragmentRKN = inflater.inflate(R.layout.fragment_rkn, container, false);
Overlay = (RelativeLayout) fragmentRKN.findViewById(R.id.overlay);
Button RKNLogin = (Button) fragmentRKN.findViewById(R.id.rknlogin);
RKNLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (android.os.Build.VERSION.SDK_INT > 7) {
accountManager.addAccount(AOTalk.getContext().getString(R.string.account_type), null, null, null, getActivity(), null, null);
} else {
Logging.toast(AOTalk.getContext(), getString(R.string.unsupported_version));
}
}
});
CheckRKNAccount();
messageAdapter = new RKNMessageAdapter(AOTalk.getContext(), android.R.layout.simple_dropdown_item_1line, messages, settings.getBoolean("enableAnimations", true));
messageList = (ListView) fragmentRKN.findViewById(R.id.postlist);
messageList.setAdapter(messageAdapter);
messageList.setDividerHeight(0);
messageList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//final RKNMessage message = messageAdapter.getItem(arg2);
return true;
}
});
messageList.setPersistentDrawingCache(ListView.PERSISTENT_ALL_CACHES);
return fragmentRKN;
}
public class GetRKNetFeed extends AsyncTask<Void, Void, String> {
//private List<RKNMessage> tempMessages = new ArrayList<RKNMessage>();
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected String doInBackground(Void... params) {
String Username = accounts[0].name;
String Password = accountManager.getPassword(accounts[0]);
CallSoap soap = new CallSoap("GetFeedForUser");
List<PropertyInfo> properties = new ArrayList<PropertyInfo>();
PropertyInfo pi = new PropertyInfo();
pi.setName("Username");
pi.setValue(Username);
pi.setType(String.class);
properties.add(pi);
pi = new PropertyInfo();
pi.setName("Password");
pi.setValue(Password);
pi.setType(String.class);
properties.add(pi);
Logging.log(APP_TAG, soap.Call(properties).toString());
return null;
}
}
}