package com.pinthecloud.athere.activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ProgressBar; import android.widget.Toast; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.pinthecloud.athere.AhGlobalVariable; import com.pinthecloud.athere.R; import com.pinthecloud.athere.database.MessageDBHelper; import com.pinthecloud.athere.dialog.AhAlertDialog; import com.pinthecloud.athere.fragment.AhFragment; import com.pinthecloud.athere.fragment.ChupaListFragment; import com.pinthecloud.athere.fragment.SquareTabFragment; import com.pinthecloud.athere.helper.MessageHelper; import com.pinthecloud.athere.helper.SquareHelper; import com.pinthecloud.athere.helper.UserHelper; import com.pinthecloud.athere.interfaces.AhDialogCallback; import com.pinthecloud.athere.interfaces.AhEntityCallback; import com.pinthecloud.athere.model.AhMessage; import com.pinthecloud.athere.model.AhUser; import com.pinthecloud.athere.model.Square; public class SquareActivity extends AhActivity { private ProgressBar progressBar; private AhFragment contentFragment; private DrawerLayout mDrawerLayout; private View mFragmentView; private ChupaListFragment chupaListFragment; private SlidingMenu slidingMenu; private MessageHelper messageHelper; private MessageDBHelper messageDBHelper; private UserHelper userHelper; private SquareHelper squareHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_square); setHelper(); findComponent(); Square square = squareHelper.getMySquareInfo(); getSupportActionBar().setTitle(square.getName()); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); setFragment(fragmentTransaction, square); setDrawerFragment(fragmentManager); slidingMenu = app.getSlidingMenu(thisActivity, fragmentTransaction); fragmentTransaction.commit(); setMessageHandler(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.square, menu); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); MenuItem menuItem = menu.findItem(R.id.square_menu_notification); if(messageDBHelper.getAllChupaBadgeNum() > 0){ menuItem.setIcon(R.drawable.actionbar_white_chupalist_highlight_btn); }else{ menuItem.setIcon(R.drawable.actionbar_white_chupalist_btn); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case android.R.id.home: // Handle app drawer if(mDrawerLayout.isDrawerOpen(mFragmentView)){ mDrawerLayout.closeDrawer(mFragmentView); }else{ slidingMenu.toggle(); } break; case R.id.square_menu_notification: // Handle notification drawer if(mDrawerLayout.isDrawerOpen(mFragmentView)){ mDrawerLayout.closeDrawer(mFragmentView); }else{ mDrawerLayout.openDrawer(mFragmentView); } break; case R.id.square_menu_more: // Exit square String message = getResources().getString(R.string.exit_square_consent_message); AhAlertDialog escDialog = new AhAlertDialog(null, message, true, new AhDialogCallback() { @Override public void doPositiveThing(Bundle bundle) { // Close opened drawer if(mDrawerLayout.isDrawerOpen(mFragmentView)){ mDrawerLayout.closeDrawer(mFragmentView); } exitSquare(); } @Override public void doNegativeThing(Bundle bundle) { // Do nothing } }); escDialog.show(getFragmentManager(), AhGlobalVariable.DIALOG_KEY); break; } return true; } @Override public void onBackPressed() { // Close drawer if(mDrawerLayout.isDrawerOpen(mFragmentView)){ mDrawerLayout.closeDrawer(mFragmentView); return; } if(slidingMenu.isMenuShowing()){ slidingMenu.toggle(); return; } // Ask review if(squareHelper.isReview()){ String message = getResources().getString(R.string.review_message); String cancelMessage = getResources().getString(R.string.no_today_message); AhAlertDialog reviewDialog = new AhAlertDialog(null, message, null, cancelMessage, true, new AhDialogCallback() { @Override public void doPositiveThing(Bundle bundle) { squareHelper.setReview(false); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + AhGlobalVariable.GOOGLE_PLAY_APP_ID)); startActivity(intent); } @Override public void doNegativeThing(Bundle bundle) { squareHelper.setReview(false); finish(); } }); reviewDialog.show(getFragmentManager(), AhGlobalVariable.DIALOG_KEY); return; } // Back super.onBackPressed(); } private void findComponent(){ progressBar = (ProgressBar) findViewById(R.id.square_progress_bar); mDrawerLayout = (DrawerLayout) findViewById(R.id.square_drawer_layout); mFragmentView = findViewById(R.id.square_notification_drawer_fragment); } private void setHelper(){ messageHelper = app.getMessageHelper(); messageDBHelper = app.getMessageDBHelper(); userHelper = app.getUserHelper(); squareHelper = app.getSquareHelper(); } private void setFragment(FragmentTransaction fragmentTransaction, Square square){ contentFragment = new SquareTabFragment(square); fragmentTransaction.add(R.id.square_tab_layout, contentFragment); } private void setDrawerFragment(FragmentManager fragmentManager){ chupaListFragment = (ChupaListFragment) fragmentManager.findFragmentById(R.id.square_notification_drawer_fragment); chupaListFragment.setUp(mDrawerLayout); } private void setMessageHandler(){ messageHelper.setMessageHandler(this, new AhEntityCallback<AhMessage>() { @Override public void onCompleted(AhMessage message) { if (message.getType().equals(AhMessage.TYPE.FORCED_LOGOUT.toString())) { final String toastMessage = getResources().getString(R.string.forced_logout_title); thisActivity.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(thisActivity, toastMessage, Toast.LENGTH_LONG) .show(); } }); Intent intent = new Intent(thisActivity, SquareListActivity.class); startActivity(intent); finish(); return; } messageHelper.triggerMessageEvent(contentFragment, message); messageHelper.triggerMessageEvent(chupaListFragment, message); } }); } private void exitSquare() { progressBar.setVisibility(View.VISIBLE); progressBar.bringToFront(); AhUser user = userHelper.getMyUserInfo(); userHelper.exitSquareAsync(contentFragment, user, new AhEntityCallback<Boolean>() { @Override public void onCompleted(Boolean result) { app.removeMySquarePreference(contentFragment); Intent intent = new Intent(thisActivity, SquareListActivity.class); startActivity(intent); finish(); } }); } }