/* * Created by Itzik Braun on 12/3/2015. * Copyright (c) 2015 deluge. All rights reserved. * * Last Modification at: 3/12/15 4:27 PM */ package com.braunster.chatsdk.activities; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; import com.braunster.chatsdk.R; import com.braunster.chatsdk.Utils.Debug; import com.braunster.chatsdk.activities.abstracted.ChatSDKAbstractChatActivity; import com.braunster.chatsdk.dao.BThread; import com.braunster.chatsdk.dao.BThreadDao; import com.braunster.chatsdk.dao.core.DaoCore; import org.apache.commons.lang3.StringUtils; import timber.log.Timber; /** * Created by braunster on 24/11/14. */ public class ChatSDKBaseThreadActivity extends ChatSDKBaseActivity { private static final String TAG = ChatSDKBaseThreadActivity.class.getSimpleName(); private static final boolean DEBUG = Debug.ChatSDKBaseThreadActivity; /** The key to get the thread long id.*/ public static final String THREAD_ID = "thread_id"; public static final String THREAD_ENTITY_ID = "Thread_Entity_ID"; public static final String MODE = "mode"; public static final int MODE_NONE = -1991; /** Set true if you want slide down animation for this activity exit. */ protected boolean animateExit = false; /** Default value - MODE_NEW_CONVERSATION*/ protected int mode = MODE_NONE; /** For add to conversation mode.*/ protected long threadID = -1; protected String threadEntityId = ""; protected BThread thread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { getDataFromBundle(savedInstanceState); } else { if (getIntent().getExtras() != null) { getDataFromBundle(getIntent().getExtras()); } else finish(); } } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); getDataFromBundle(intent.getExtras()); } @Override public void onBackPressed() { super.onBackPressed(); if (animateExit) overridePendingTransition(R.anim.dummy, R.anim.slide_top_bottom_out); } private void getDataFromBundle(Bundle bundle){ if (bundle == null) { return; } mode = bundle.getInt(MODE, mode); threadID = bundle.getLong(THREAD_ID, threadID); threadEntityId = bundle.getString(THREAD_ENTITY_ID, threadEntityId); animateExit = bundle.getBoolean(ChatSDKAbstractChatActivity.ANIMATE_EXIT, animateExit); if (threadID != -1) { thread = DaoCore.fetchEntityWithProperty(BThread.class, BThreadDao.Properties.Id, threadID); } else if (StringUtils.isNotBlank(threadEntityId)) { thread = DaoCore.fetchEntityWithProperty(BThread.class, BThreadDao.Properties.EntityID, threadEntityId); } if (thread == null) { if (DEBUG) Timber.e("Thread is null"); finish(); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong(THREAD_ID, threadID); outState.putString(THREAD_ENTITY_ID, threadEntityId); outState.putInt(MODE, mode); outState.putBoolean(ChatSDKAbstractChatActivity.ANIMATE_EXIT, animateExit); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { onBackPressed(); } return true; } }