package org.awesomeapp.messenger.ui; import android.app.Activity; import android.content.ContentResolver; import android.content.ContentUris; import android.content.Intent; import android.database.Cursor; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import org.awesomeapp.messenger.ImApp; import org.awesomeapp.messenger.provider.Imps; import org.awesomeapp.messenger.service.IChatSession; import org.awesomeapp.messenger.service.IChatSessionManager; import org.awesomeapp.messenger.service.IImConnection; import org.awesomeapp.messenger.tasks.ChatSessionInitTask; import org.awesomeapp.messenger.ui.legacy.DatabaseUtils; import org.awesomeapp.messenger.ui.onboarding.OnboardingManager; import org.awesomeapp.messenger.ui.qr.QrGenAsyncTask; import org.awesomeapp.messenger.ui.qr.QrShareAsyncTask; import org.awesomeapp.messenger.util.LogCleaner; import java.io.IOException; import im.zom.messenger.R; public class GroupDisplayActivity extends BaseActivity { private String mName = null; private String mAddress = null; private long mProviderId = -1; private long mAccountId = -1; private long mLastChatId = -1; private IImConnection mConn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.awesome_activity_group); mName = getIntent().getStringExtra("nickname"); mAddress = getIntent().getStringExtra("address"); mProviderId = getIntent().getLongExtra("provider", -1); mAccountId = getIntent().getLongExtra("account", -1); mLastChatId = getIntent().getLongExtra("chat", -1); mConn = ((ImApp)getApplication()).getConnection(mProviderId,mAccountId); TextView tv = (TextView)findViewById(R.id.tvNickname); tv = (TextView)findViewById(R.id.tvNickname); tv.setText(mName); tv = (TextView)findViewById(R.id.tvUsername); tv.setText(mAddress); tv = (TextView)findViewById(R.id.tvMembers); String[] projection = { Imps.GroupMembers.NICKNAME }; Uri memberUri = ContentUris.withAppendedId(Imps.GroupMembers.CONTENT_URI, mLastChatId); ContentResolver cr = getContentResolver(); Cursor c = cr.query(memberUri, projection, null, null, null); StringBuilder buf = new StringBuilder(); if (c != null) { while(c.moveToNext()) { buf.append(c.getString(0)); if (!c.isLast()) buf.append(", "); } c.close(); if (buf.length() > 0) tv.setText(buf.toString()); } ImageView iv = (ImageView)findViewById(R.id.qrcode); try { IChatSessionManager manager = mConn.getChatSessionManager(); IChatSession session = manager.getChatSession(mAddress); /** try { String inviteLink = OnboardingManager.generateInviteLink(this, mAddress, ""); new QrGenAsyncTask(this, iv, ImApp.DEFAULT_AVATAR_WIDTH).execute(inviteLink); } catch (IOException ioe) { Log.e(ImApp.LOG_TAG, "couldn't generate QR code", ioe); }*/ iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String inviteString; try { inviteString = OnboardingManager.generateInviteLink(GroupDisplayActivity.this, mAddress, "", mName); OnboardingManager.inviteScan(GroupDisplayActivity.this, inviteString); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); ImageView btnQrShare = (ImageView) findViewById(R.id.qrshare); btnQrShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { String inviteLink = OnboardingManager.generateInviteLink(GroupDisplayActivity.this, mAddress, "", mName); new QrShareAsyncTask(GroupDisplayActivity.this).execute(inviteLink, mName); } catch (IOException ioe) { Log.e(ImApp.LOG_TAG, "couldn't generate QR code", ioe); } } }); } catch (Exception e) { } Button btn = (Button)findViewById(R.id.btnStartChat); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startChat(); } }); } public void startChat () { boolean startCrypto = false; new ChatSessionInitTask(((ImApp)getApplication()),mProviderId, mAccountId, Imps.Contacts.TYPE_GROUP, startCrypto) { @Override protected void onPostExecute(Long chatId) { if (chatId != -1) { Intent intent = new Intent(GroupDisplayActivity.this, ConversationDetailActivity.class); intent.putExtra("id", chatId); startActivity(intent); finish(); } super.onPostExecute(chatId); } } .executeOnExecutor(ImApp.sThreadPoolExecutor,mAddress); } }