@Override public void onCreate() { super.onCreate(); LayoutInflater inflater = LayoutInflater.from(this); mShell = (UiShell) inflater.inflate(R.layout.ui_application_container, null); View navMenu = inflater.inflate(R.layout.ui_navigation_menu, null); View actionsMenu = inflater.inflate(R.layout.ui_actions_menu, null); View activityContainer = inflater.inflate(R.layout.ui_activity_container, null); RelativeLayout touchInterceptor = (RelativeLayout) activityContainer.findViewById(R.id.touch_interceptor); RelativeLayout menuButton = (RelativeLayout) activityContainer.findViewById(R.id.menu_button); RelativeLayout actionsButton = (RelativeLayout) activityContainer.findViewById(R.id.action_button); menuButton.setOnClickListener(new UiMenuOnClickListener(mShell, navMenu, touchInterceptor, 0)); actionsButton.setOnClickListener( new UiMenuOnClickListener(mShell, actionsMenu, touchInterceptor, 2)); final View[] children = new View[] {navMenu, activityContainer, actionsMenu}; int scrollToViewIndex = 1; mShell.initViews(children, scrollToViewIndex); mContentContainer = (FrameLayout) mShell.findViewById(R.id.content_container); }
public static void addActionsButton(BaseButton baseButton) { Drawable iconImage = mShell.getResources().getDrawable(baseButton.getButtonIconId()); int ten_dip = (int) (10 * mShell.getResources().getDisplayMetrics().density); ImageView buttonIcon = new ImageView(mShell.getContext()); buttonIcon.setImageDrawable(iconImage); LayoutParams iconParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); iconParams.setMargins(ten_dip, 0, 0, 0); iconParams.gravity = Gravity.CENTER_VERTICAL; TextView buttonText = new TextView(mShell.getContext()); buttonText.setText(baseButton.getButtonText()); buttonText.setTextColor(Color.WHITE); buttonText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20); LayoutParams textParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); buttonText.setPadding(ten_dip, ten_dip, ten_dip, ten_dip); LinearLayout button = new LinearLayout(mShell.getContext()); button.addView(buttonIcon, iconParams); button.addView(buttonText, textParams); baseButton.setActionImageView(buttonIcon); baseButton.setActionTextView(buttonText); button.setOnClickListener(baseButton.getOnClickListener()); ActionButtonRunnable addButtonRunnable = new ActionButtonRunnable(button); mCurrentActivity.runOnUiThread(addButtonRunnable); }
public static void showActionsMenu() { RelativeLayout actionsButton = (RelativeLayout) mShell.findViewById(R.id.action_button); RelativeLayout touchInterceptor = (RelativeLayout) mShell.findViewById(R.id.touch_interceptor); View actionsMenu = mShell.getActionMenuView(); actionsButton.setOnClickListener( new UiMenuOnClickListener(mShell, actionsMenu, touchInterceptor, 2)); actionsButton.setVisibility(View.VISIBLE); }
public static void detachShell() { // Basically, contentView of Activity, we're doing the opposite of setContentView ViewGroup parent = (ViewGroup) mShell.getParent(); parent.removeView(mShell); // Clear out activity specific stuff from shell clearActionsMenu(); unbindDrawables(mShell.findViewById(R.id.content_container)); }
@Override public void run() { LinearLayout actionsButtons = (LinearLayout) mShell.findViewById(R.id.action_buttons_container); ImageView menuSeparator = new ImageView(mShell.getContext()); Drawable menuSeparatorImage = mShell.getResources().getDrawable(R.drawable.ui_menu_separator); menuSeparator.setImageDrawable(menuSeparatorImage); menuSeparator.setScaleType(ScaleType.FIT_XY); LayoutParams separatorParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); actionsButtons.addView(mButton, actionsButtons.getChildCount()); actionsButtons.addView(menuSeparator, separatorParams); }
private static void setActivityContent(int layoutId) { LayoutInflater inflater = LayoutInflater.from(mShell.getContext()); View content = (View) inflater.inflate(layoutId, null); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); setContentContainerSize(); mContentContainer.addView(content, lp); }
@Override public void onClick(View v) { if (mCurrentActivity.getClass().equals(mTargetContext)) { RelativeLayout touchInterceptor = (RelativeLayout) mCurrentActivity.findViewById(R.id.touch_interceptor); touchInterceptor.setVisibility(View.GONE); mParent.scrollToApplicationView(); } else { Intent intent = new Intent(mCurrentActivity, mTargetContext); mCurrentActivity.startActivity(intent); } }
public static void initializeShell(Activity activity, int layoutId) { mCurrentActivity = activity; // First, initialize Navigation menu LinearLayout bookmarksListButton = (LinearLayout) mShell.findViewById(R.id.nav_bookmarks_list_button); bookmarksListButton.setOnClickListener( new UiNavigationItemOnClickListener(mShell, ListBookmarks.class, activity)); LinearLayout historyListButton = (LinearLayout) mShell.findViewById(R.id.nav_recent_history_button); historyListButton.setOnClickListener( new UiNavigationItemOnClickListener(mShell, RecentHistory.class, activity)); LinearLayout accountsButton = (LinearLayout) mShell.findViewById(R.id.nav_account_button); accountsButton.setOnClickListener( new UiNavigationItemOnClickListener(mShell, Account.class, activity)); // Then Actions menu clearActionsMenu(); RelativeLayout infoItButton = (RelativeLayout) mShell.findViewById(R.id.infoit_button); infoItButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { EasyTracker.getTracker() .trackEvent( Constants.SHELL_CATEGORY, Constants.SHELL_INFOIT_BUTTON, getCurrentActivity().getClass().getName(), 0); Intent intent = new Intent(mCurrentActivity, InfoChooser.class); mCurrentActivity.startActivity(intent); } }); setBackgroundColor(R.color.standard_bg); setActivityContent(layoutId); mShell.scrollToApplicationView(); }
public static void setSplashScreen() { LayoutInflater inflater = LayoutInflater.from(mShell.getContext()); View splashScreen = (View) inflater.inflate(R.layout.ui_splash_screen, null); TextView splashText = (TextView) splashScreen.findViewById(R.id.splash_text); splashText.setText("Downloading information..."); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); mContentContainer.addView(splashScreen, 0, lp); mContentContainer.getChildAt(1).setVisibility(View.INVISIBLE); }
private static void clearActionsMenu() { LinearLayout actionsButtons = (LinearLayout) mShell.findViewById(R.id.action_buttons_container); actionsButtons.removeAllViews(); }
public static void setBackgroundColor(int color) { FrameLayout activityContainer = (FrameLayout) mShell.findViewById(R.id.activity_container); activityContainer.setBackgroundResource(color); }
public static void hideActionsMenu() { RelativeLayout actionsButton = (RelativeLayout) mShell.findViewById(R.id.action_button); actionsButton.setOnClickListener(null); actionsButton.setVisibility(View.INVISIBLE); }