package ams.android.linkit.Activity; import android.app.Activity; import android.app.AlertDialog; import android.app.FragmentTransaction; import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.AdapterView; import android.widget.ListView; import java.util.ArrayList; import ams.android.linkit.Adapter.AdapterDrawer; import ams.android.linkit.Fragment.FragmentLinks; import ams.android.linkit.Fragment.FragmentLogin; import ams.android.linkit.Fragment.FragmentWebView; import ams.android.linkit.Model.DrawerMenuItem; import ams.android.linkit.Model.LinkitObject; import ams.android.linkit.R; import ams.android.linkit.Tools.GlobalApplication; import me.leolin.shortcutbadger.ShortcutBadger; public class MainActivity extends Activity { private static String TAG = "linkit"; public static DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; public static String currentFragmentName = ""; private ArrayList<DrawerMenuItem> menus = new ArrayList<>(); private Context mContext; public static void openDrawerMenu() { mDrawerLayout.openDrawer(Gravity.LEFT); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); mContext = this; // clear Badget Counter try { ((GlobalApplication) getApplication()).setBadgetCount(0); ShortcutBadger.setBadge(getApplicationContext(), 0); } catch (Exception e) { } // check if Notification Received if (!getIntent().hasExtra("RunByNoti")) { if (savedInstanceState == null) { checkLogin(); } } else { LinkitObject myObject = new LinkitObject(); myObject.productLink = getIntent().getExtras().getString("productLink"); myObject.imageUrl = getIntent().getExtras().getString("imageUrl"); myObject.productDescription = getIntent().getExtras().getString("text"); myObject.linkSrceenShot = getIntent().getExtras().getString("linkSrceenShot"); FragmentTransaction ft = getFragmentManager().beginTransaction(); FragmentLinks f1 = new FragmentLinks(); Bundle bundle = new Bundle(); bundle.putParcelable("item", myObject); f1.setArguments(bundle); ft.replace(R.id.container, f1, "Links"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack("Links"); ft.commit(); } fillMenu(); _initMenu(); } private void _initMenu() { AdapterDrawer mAdapter = new AdapterDrawer(this); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_launcher, R.string.accept, R.string.decline) { @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); for (DrawerMenuItem myMenuItem : menus) mAdapter.addItem(myMenuItem); mDrawerList = (ListView) findViewById(R.id.left_drawer); if (mDrawerList != null) mDrawerList.setAdapter(mAdapter); mDrawerLayout.setScrimColor(Color.parseColor("#aaffffff")); LayoutInflater inflater = getLayoutInflater(); ViewGroup header = (ViewGroup) inflater.inflate(R.layout.drawer_header, mDrawerList, false); mDrawerList.addHeaderView(header, null, false); mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mDrawerList.setItemChecked(position - 1, true); mDrawerLayout.closeDrawer(mDrawerList); if (position == 1) { FragmentLinks.txtMainTitle.setText(menus.get(position - 1).title); ((FragmentLinks) getFragmentManager().findFragmentByTag("Links")).refreshLikesData(); } else if (position == 2) { FragmentLinks.txtMainTitle.setText(menus.get(position - 1).title); ((FragmentLinks) getFragmentManager().findFragmentByTag("Links")).refreshMyMerchantPostedData(); } else if (position == 3) { FragmentLinks.txtMainTitle.setText(menus.get(position - 1).title); ((FragmentLinks) getFragmentManager().findFragmentByTag("Links")).refreshFeaturedMerchantData(); } else if (position == 4) { AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder .setTitle("Logout") .setMessage("Do you want to logout?") .setIcon(R.drawable.ic_launcher) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { ((FragmentLinks) getFragmentManager().findFragmentByTag("Links")).serverLogout(); } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog alert = builder.create(); alert.show(); } } } ); } private void fillMenu() { DrawerMenuItem myMenu = new DrawerMenuItem("1", "My Likes", "1", R.drawable.likes); menus.add(myMenu); myMenu = new DrawerMenuItem("2", "My Merchants", "2", R.drawable.mymerchant); menus.add(myMenu); myMenu = new DrawerMenuItem("3", "Featured Merchants", "3", R.drawable.featured); menus.add(myMenu); myMenu = new DrawerMenuItem("9", "Sign Out ", "9", R.drawable.logout); menus.add(myMenu); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } @Override public void onBackPressed() { int count = getFragmentManager().getBackStackEntryCount(); Log.i(TAG, "popbackstack count: " + count); if (currentFragmentName.equals("WebView")) { FragmentWebView webFragment = (FragmentWebView) getFragmentManager().findFragmentByTag("WebView"); if (!webFragment.isReadyForExit()) { webFragment.backButtonWasPressed(); } else if (webFragment.canGoBackHistory()) { webFragment.goBack(); } else { currentFragmentName = "Link"; getFragmentManager().popBackStack(); } } else if (currentFragmentName.equals("Intro")) { currentFragmentName = "Login"; getFragmentManager().popBackStack(); } else if (currentFragmentName.equals("Login")) { finish(); } else if (currentFragmentName.equals("Link")) { finish(); } } private void checkLogin() { if (((GlobalApplication) getApplication()).getUserId().isEmpty()) { FragmentLogin f1 = new FragmentLogin(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.container, f1, "Login"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack("Login"); ft.commit(); } else { FragmentLinks f1 = new FragmentLinks(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.container, f1, "Links"); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack("Links"); ft.commit(); } } // @Override // protected void onUserLeaveHint() { // super.onUserLeaveHint(); // finish(); // } }