@Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.game);

    mQuestionImage = (ImageSwitcher) findViewById(R.id.ImageSwitcher_QuestionImage);
    mQuestionImage.setFactory(new MyImageSwitcherFactory());

    mQuestionText = (TextSwitcher) findViewById(R.id.TextSwitcher_QuestionText);
    mQuestionText.setFactory(new MyTextSwitcherFactory());

    mQuestions = new Hashtable<Integer, Question>(QUESTION_BATCH_SIZE);

    mGameSettings = getSharedPreferences(GAME_PREFERENCES, Context.MODE_PRIVATE);
    int staringQuestionNumber = mGameSettings.getInt(GAME_PREFERENCES_CURRENT_QUESTION, 0);
    if (staringQuestionNumber == 0) {
      Editor editor = mGameSettings.edit();
      editor.putInt(GAME_PREFERENCES_CURRENT_QUESTION, 1);
      editor.commit();
      staringQuestionNumber = 1;
    }
    downloader = new QuizTask();
    downloader.execute(TRIVIA_SERVER_QUESTIONS, staringQuestionNumber);
  }
  // AnimationSet as;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    words = getResources().getStringArray(R.array.quotes);
    _handler = new Handler();

    _quote = (TextSwitcher) findViewById(R.id.quote_text);

    _quote.setFactory(
        new ViewFactory() {
          public View makeView() {
            TextView quote = new TextView(getApplicationContext());
            quote.setGravity(Gravity.CENTER);
            quote.setTextColor(color.GhostWhite);
            quote.setTextAppearance(getApplicationContext(), android.R.style.TextAppearance_Large);
            quote.setTypeface(null, Typeface.ITALIC);
            return quote;
          }
        });

    in = new AlphaAnimation(0.0f, 1.0f);
    in.setDuration(2000);

    out = new AlphaAnimation(1.0f, 0.0f);
    out.setDuration(2000);

    _quote.setInAnimation(in);
    _quote.setOutAnimation(out);

    _handler.postDelayed(_updateQuoteTask, 0);
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ButterKnife.bind(this);
    mContext = this;
    mUrl = getIntent().getStringExtra(EXTRA_URL);
    mTitle = getIntent().getStringExtra(EXTRA_TITLE);

    WebSettings settings = mWebView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setLoadWithOverviewMode(true);
    settings.setAppCacheEnabled(true);
    settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
    settings.setSupportZoom(true);
    mWebView.setWebChromeClient(new ChromeClient());
    mWebView.setWebViewClient(new LoveClient());

    mWebView.loadUrl(mUrl);

    mTextSwitcher.setFactory(
        () -> {
          TextView textView = new TextView(this);
          textView.setTextAppearance(this, R.style.WebTitle);
          textView.setSingleLine(true);
          textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
          textView.postDelayed(() -> textView.setSelected(true), 1738);
          return textView;
        });
    mTextSwitcher.setInAnimation(this, android.R.anim.fade_in);
    mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out);
    if (mTitle != null) setTitle(mTitle);
  }
  /**
   * onCreate之后调用,可以用来初始化view
   *
   * @param savedInstanceState the saved instance state
   */
  @Override
  public final void onCreateAfter(Bundle savedInstanceState) {
    parseIntent();

    enableJavascript();
    enableCaching();
    enableClient();
    enableAdjust();
    zoomedOut();
    // 网页标题
    mTextSwitcher.setFactory(
        () -> {
          TextView textView = new TextView(this);
          textView.setTextAppearance(this, R.style.WebTitle);
          textView.setSingleLine(true);
          textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
          textView.postDelayed(() -> textView.setSelected(true), 1738);
          return textView;
        });
    mTextSwitcher.setInAnimation(this, android.R.anim.fade_in);
    mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out);
    if (title != null) setTitle(title);

    if (mProgressBar != null)
      mProgressBar.setReachedBarColor(BaseApplication.color(R.color.colorPrimary));

    // 设置滑动监听
    mWebView.setOnScrollChangedCallback(
        (dx, dy, x, y) -> { // 滑动监听
        });

    onCreateAfterLater();
  }
  private void initialiseTextSwitcher() {
    mSwitcher = (TextSwitcher) rootView.findViewById(R.id.textSwitcher);
    mSwitcher.setFactory(
        new ViewFactory() {
          public View makeView() {
            TextView myText = new TextView(getActivity());
            myText.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
            myText.setTextSize(28);
            myText.setTextColor(Color.BLACK);
            return myText;
          }
        });

    // Declare the in and out animations and initialize them
    Animation in = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
    Animation out = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out);
    mSwitcher.setInAnimation(in);
    mSwitcher.setOutAnimation(out);

    mSwitcher.setOnClickListener(myhandler1);

    /** ******************************************************** */

    // Create Inner Thread Class
    background =
        new Thread(
            new Runnable() {

              // After call for background.start this run method call
              public void run() {
                try {
                  while (true) {
                    handler.sendEmptyMessage(0);
                    SystemClock.sleep(2200);
                  }
                } catch (Throwable t) {
                }
              }

              // Define the Handler that receives messages from the thread and update the progress
              @SuppressLint("HandlerLeak")
              private final Handler handler =
                  new Handler() {

                    public void handleMessage(Message msg) {
                      doUpdate();
                    }
                  };
            });
    // Start Thread
    background.start(); // After call start method thread called run Method

    /** ******************************************************************************** */
  }
Exemple #6
0
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   textSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher);
   textSwitcher.setFactory(
       new ViewSwitcher.ViewFactory() {
         public View makeView() {
           TextView tv = new TextView(MainActivity.this);
           tv.setTextSize(40);
           tv.setTextColor(Color.MAGENTA);
           return tv;
         }
       });
   // 调用next方法显示下一个字符串
   next(null);
 }
  /**
   * Initializes the score TextSwitcher for the specified {@code textSwitcher}. It also sets the
   * {@code listener}.
   *
   * @param listener The listener which will update the text.
   */
  private void initializeTextSwitcher(
      final TextSwitcher textSwitcher, View.OnTouchListener listener) {
    textSwitcher.setFactory(
        new ViewSwitcher.ViewFactory() {
          @Override
          public View makeView() {
            TextView textView = new TextView(textSwitcher.getContext());
            textView.setTextSize(36);
            return textView;
          }
        });

    textSwitcher.setOnTouchListener(listener);
    textSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
    textSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

    textSwitcher.setText(getText(R.string.defaultInitialGameScore));
  }
  private void setupDetails() {
    detailsSwitcher.setInAnimation(getAnimation(R.anim.alpha_in, true));
    detailsSwitcher.setOutAnimation(getAnimation(R.anim.alpha_out, false));

    detailsSwitcher.setFactory(
        new ViewSwitcher.ViewFactory() {

          @Override
          public View makeView() {
            TextView view = (TextView) getLayoutInflater().inflate(R.layout.view_details, null);
            if (view != null && detailsTextColor != -1) {
              view.setTextColor(detailsTextColor);
            }
            return view;
          }
        });

    detailsSwitcher.setText("");
  }
  private void setupError() {
    errorSwitcher.setInAnimation(getAnimation(android.R.anim.slide_in_left, true));
    errorSwitcher.setOutAnimation(getAnimation(android.R.anim.slide_out_right, false));

    errorSwitcher.setFactory(
        new ViewSwitcher.ViewFactory() {

          @Override
          public View makeView() {
            TextView view = (TextView) getLayoutInflater().inflate(R.layout.view_error, null);
            if (view != null && errorTextColor != -1) {
              view.setTextColor(errorTextColor);
            }
            return view;
          }
        });

    errorSwitcher.setText("");
  }
  private void setupTitle() {
    titleSwitcher.setInAnimation(getAnimation(R.anim.slide_in_to_bottom, true));
    titleSwitcher.setOutAnimation(getAnimation(R.anim.slide_out_to_top, false));

    titleSwitcher.setFactory(
        new ViewSwitcher.ViewFactory() {

          @Override
          public View makeView() {
            TextView view = (TextView) getLayoutInflater().inflate(R.layout.view_title, null);
            if (view != null) {
              view.setTextColor(titleTextColor);
            }
            return view;
          }
        });

    titleSwitcher.setText("");
  }
Exemple #11
0
  private void initializeTextViews() {
    textViewQuestion = (TextView) findViewById(R.id.textViewQuestion);

    textViewNumberOfQuestionsLeft = (TextView) findViewById(R.id.textViewNumberOfQuestionsLeft);
    textViewQuestionLevel = (TextView) findViewById(R.id.textViewQuestionLevel);
    textViewLivesLeftValue = (TextView) findViewById(R.id.textViewLivesLeftValue);
    textViewTimesPlayedTitle = (TextView) findViewById(R.id.textViewTimesPlayedTitle);
    textViewGameScoreText = (TextView) findViewById(R.id.textViewGameScoreText);
    textViewHowManyTimesQuestionsBeenAsked =
        (TextView) findViewById(R.id.textViewHowManyTimesQuestionsBeenAsked);

    textSwitcherTime = (TextSwitcher) findViewById(R.id.textViewTime);

    textSwitcherTime.setFactory(this);

    Animation inAnimation = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
    Animation outAnimation = AnimationUtils.loadAnimation(this, android.R.anim.fade_out);

    textSwitcherTime.setInAnimation(inAnimation);
    textSwitcherTime.setOutAnimation(outAnimation);
  }
Exemple #12
0
  private void init(Context context, AttributeSet attrs, int defStyle) {
    mContext = context;

    LayoutInflater.from(context).inflate(R.layout.view_text_number, this, true);
    /*		if(isInEditMode()){
    	return;
    }*/

    mSwitcher = (TextSwitcher) findViewById(R.id.switcher);
    mSwitcher.setFactory(
        new ViewFactory() {

          @Override
          public View makeView() {

            LayoutInflater inflater = LayoutInflater.from(mContext);
            TextPlus textView = (TextPlus) inflater.inflate(R.layout.view_text_plus, null);
            textView.setPrefix(mContext.getString(R.string.rupee), 0);
            return textView;
          }
        });
  }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sharedPrefs =
        getSharedPreferences(
            "com.klinker.android.twitter_world_preferences",
            Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
    context = this;
    settings = AppSettings.getInstance(context);

    // context.sendBroadcast(new Intent("com.klinker.android.twitter.STOP_PUSH"));

    Utils.setUpTheme(context, settings);
    setContentView(R.layout.login_activity);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.setOAuthConsumerKey(settings.TWITTER_CONSUMER_KEY);
    builder.setOAuthConsumerSecret(settings.TWITTER_CONSUMER_SECRET);
    Configuration configuration = builder.build();

    TwitterFactory factory = new TwitterFactory(configuration);
    twitter = factory.getInstance();

    btnLoginTwitter = (Button) findViewById(R.id.btnLoginTwitter);
    noThanks = (Button) findViewById(R.id.dont_follow);
    title = (TextSwitcher) findViewById(R.id.welcome);
    summary = (TextSwitcher) findViewById(R.id.info);
    progDescription = (TextSwitcher) findViewById(R.id.progress_desc);
    progressBar = (ProgressBar) findViewById(R.id.progress_bar);
    main = (LinearLayout) findViewById(R.id.mainLayout);

    Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);
    Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);

    title.setFactory(
        new ViewSwitcher.ViewFactory() {

          public View makeView() {
            TextView myText = new TextView(LoginActivity.this);
            myText.setTextSize(30);
            return myText;
          }
        });

    // set the animation type of textSwitcher
    title.setInAnimation(in);
    title.setOutAnimation(out);

    summary.setFactory(
        new ViewSwitcher.ViewFactory() {

          public View makeView() {
            TextView myText = new TextView(LoginActivity.this);
            myText.setTextSize(17);
            return myText;
          }
        });

    // set the animation type of textSwitcher
    summary.setInAnimation(in);
    summary.setOutAnimation(out);

    progDescription.setFactory(
        new ViewSwitcher.ViewFactory() {

          public View makeView() {
            TextView myText = new TextView(LoginActivity.this);
            myText.setTextSize(17);
            return myText;
          }
        });

    // set the animation type of textSwitcher
    progDescription.setInAnimation(in);
    progDescription.setOutAnimation(out);

    title.setText(getResources().getString(R.string.first_welcome));
    summary.setText(getResources().getString(R.string.first_info));

    progressBar.setProgress(100);

    CookieSyncManager.createInstance(this);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.removeAllCookie();

    mWebView = (WebView) findViewById(R.id.loginWebView);
    try {
      mWebView.getSettings().setJavaScriptEnabled(true);
    } catch (Exception e) {

    }
    mWebView.getSettings().setAppCacheEnabled(false);
    mWebView.getSettings().setSavePassword(false);
    mWebView.getSettings().setSaveFormData(false);
    mWebView.setWebViewClient(
        new WebViewClient() {
          @Override
          public boolean shouldOverrideUrlLoading(WebView webView, String url) {
            Log.v("talon_login", "url: " + url);
            if (url != null && url.startsWith("oauth:///talonforandroid")) {
              handleTwitterCallback(url);
            } else if (url.equals("https://twitter.com/")) {
              webView.loadUrl(requestUrl);
            } else {
              webView.loadUrl(url);
            }
            return true;
          }
        });

    noThanks.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            new FollowMe().execute();

            btnLoginTwitter.setText(getResources().getString(R.string.back_to_timeline));
            noThanks.setVisibility(View.GONE);

            summary.setText(getResources().getString(R.string.third_info));
          }
        });

    btnLoginTwitter.setOnClickListener(
        new View.OnClickListener() {

          @Override
          public void onClick(View arg0) {
            // Call login_activity twitter function
            if (btnLoginTwitter
                .getText()
                .toString()
                .contains(getResources().getString(R.string.login_to_twitter))) {
              if (Utils.hasInternetConnection(context)) {
                btnLoginTwitter.setEnabled(false);

                new AlertDialog.Builder(context)
                    .setMessage(
                        "Twitter may display that Talon cannot authenticate any more users. "
                            + "\n\n"
                            + "If so, and you have logged into Talon in the past, simply hit the 'Sign In' button in the top right and it will allow you to log in as normal. "
                            + "\n\n"
                            + "If you have never logged into Talon, then you will have to wait to login. Twitter seems to allow more users access every few hours.")
                    .setPositiveButton(
                        R.string.ok,
                        new DialogInterface.OnClickListener() {
                          @Override
                          public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                          }
                        })
                    .setNegativeButton(
                        "More Info",
                        new DialogInterface.OnClickListener() {
                          @Override
                          public void onClick(DialogInterface dialog, int which) {
                            startActivity(
                                new Intent(
                                    Intent.ACTION_VIEW,
                                    Uri.parse(
                                        "https://plus.google.com/117432358268488452276/posts/KG4AcH3YA2U")));
                          }
                        })
                    .show();

                new RetreiveFeedTask().execute();
              } else {
                Toast.makeText(
                        context,
                        getResources().getString(R.string.no_network) + "!",
                        Toast.LENGTH_SHORT)
                    .show();
              }
            } else if (btnLoginTwitter
                .getText()
                .toString()
                .contains(getResources().getString(R.string.initial_sync))) {
              new getTimeLine().execute();
            } else if (btnLoginTwitter
                .getText()
                .toString()
                .contains(getResources().getString(R.string.no_thanks))) {
              btnLoginTwitter.setText(getResources().getString(R.string.back_to_timeline));
              noThanks.setVisibility(View.GONE);

              summary.setText(getResources().getString(R.string.third_info));
            } else {

              if (settings.timelineRefresh != 0) { // user only wants manual
                AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

                long now = new Date().getTime();
                long alarm = now + settings.timelineRefresh;

                PendingIntent pendingIntent =
                    PendingIntent.getService(
                        context,
                        HomeFragment.HOME_REFRESH_ID,
                        new Intent(context, TimelineRefreshService.class),
                        0);

                am.setRepeating(
                    AlarmManager.RTC_WAKEUP, alarm, settings.timelineRefresh, pendingIntent);

                now = new Date().getTime();
                alarm = now + settings.mentionsRefresh;

                PendingIntent pendingIntent2 =
                    PendingIntent.getService(
                        context,
                        MentionsFragment.MENTIONS_REFRESH_ID,
                        new Intent(context, MentionsRefreshService.class),
                        0);

                am.setRepeating(
                    AlarmManager.RTC_WAKEUP, alarm, settings.mentionsRefresh, pendingIntent2);

                alarm = now + settings.dmRefresh;

                PendingIntent pendingIntent3 =
                    PendingIntent.getService(
                        context,
                        DMFragment.DM_REFRESH_ID,
                        new Intent(context, DirectMessageRefreshService.class),
                        0);
                am.setRepeating(AlarmManager.RTC_WAKEUP, alarm, settings.dmRefresh, pendingIntent3);
              }

              // set up the autotrim
              AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
              long now = new Date().getTime();
              long alarm = now + AlarmManager.INTERVAL_DAY;
              Log.v("alarm_date", "auto trim " + new Date(alarm).toString());
              PendingIntent pendingIntent =
                  PendingIntent.getService(
                      context, 161, new Intent(context, TrimDataService.class), 0);
              am.set(AlarmManager.RTC_WAKEUP, alarm, pendingIntent);

              finish();

              Intent timeline = new Intent(context, MainActivity.class);
              timeline.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
              timeline.putExtra("tutorial", true);
              sharedPrefs.edit().putBoolean("should_refresh", false).commit();
              sharedPrefs.edit().putBoolean("refresh_me", true).commit();
              sharedPrefs.edit().putBoolean("refresh_me_mentions", true).commit();
              sharedPrefs.edit().putBoolean("refresh_me_dm", true).commit();
              sharedPrefs.edit().putBoolean("need_new_dm", false).commit();
              sharedPrefs.edit().putBoolean("need_clean_databases_version_1_3_0", false).commit();
              sharedPrefs.edit().putBoolean("setup_v_two", true).commit();
              sharedPrefs.edit().putBoolean("version_2_2_7_1", false).commit();
              AppSettings.invalidate();
              startActivity(timeline);
            }
          }
        });
  }
  public void from(LinearLayout layout) {
    mLayout = layout;

    mShowSiteSecurity = false;
    mShowReader = false;
    mReaderPopup = null;

    mAwesomeBar = (Button) mLayout.findViewById(R.id.awesome_bar);
    mAwesomeBar.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            GeckoApp.mAppContext.hideTabs();
            onAwesomeBarSearch();
          }
        });
    mAwesomeBar.setOnCreateContextMenuListener(
        new View.OnCreateContextMenuListener() {
          public void onCreateContextMenu(
              ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            MenuInflater inflater = GeckoApp.mAppContext.getMenuInflater();
            inflater.inflate(R.menu.titlebar_contextmenu, menu);

            String clipboard = GeckoAppShell.getClipboardText();
            if (clipboard == null || TextUtils.isEmpty(clipboard)) {
              menu.findItem(R.id.pasteandgo).setVisible(false);
              menu.findItem(R.id.paste).setVisible(false);
            }

            Tab tab = Tabs.getInstance().getSelectedTab();
            if (tab != null) {
              String url = tab.getURL();
              if (url == null) {
                menu.findItem(R.id.copyurl).setVisible(false);
                menu.findItem(R.id.share).setVisible(false);
                menu.findItem(R.id.add_to_launcher).setVisible(false);
              }
            } else {
              // if there is no tab, remove anything tab dependent
              menu.findItem(R.id.copyurl).setVisible(false);
              menu.findItem(R.id.share).setVisible(false);
              menu.findItem(R.id.add_to_launcher).setVisible(false);
            }
          }
        });

    mPadding =
        new int[] {
          mAwesomeBar.getPaddingLeft(),
          mAwesomeBar.getPaddingTop(),
          mAwesomeBar.getPaddingRight(),
          mAwesomeBar.getPaddingBottom()
        };

    mTabs = (ImageButton) mLayout.findViewById(R.id.tabs);
    mTabs.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            toggleTabs();
          }
        });
    mTabs.setImageLevel(0);

    mTabsCount = (TextSwitcher) mLayout.findViewById(R.id.tabs_count);
    mTabsCount.removeAllViews();
    mTabsCount.setFactory(this);
    mTabsCount.setText("");
    mCount = 0;

    mBack = (ImageButton) mLayout.findViewById(R.id.back);
    mBack.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View view) {
            Tabs.getInstance().getSelectedTab().doBack();
          }
        });

    mForward = (ImageButton) mLayout.findViewById(R.id.forward);
    mForward.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View view) {
            Tabs.getInstance().getSelectedTab().doForward();
          }
        });

    mFavicon = (ImageButton) mLayout.findViewById(R.id.favicon);
    mSiteSecurity = (ImageButton) mLayout.findViewById(R.id.site_security);
    mSiteSecurity.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View view) {
            int[] lockLocation = new int[2];
            view.getLocationOnScreen(lockLocation);
            LayoutParams lockLayoutParams = (LayoutParams) view.getLayoutParams();

            // Calculate the left margin for the arrow based on the position of the lock icon.
            int leftMargin = lockLocation[0] - lockLayoutParams.rightMargin;
            SiteIdentityPopup.getInstance().show(mSiteSecurity, leftMargin);
          }
        });

    mProgressSpinner =
        (AnimationDrawable) mContext.getResources().getDrawable(R.drawable.progress_spinner);

    mStop = (ImageButton) mLayout.findViewById(R.id.stop);
    mStop.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            Tab tab = Tabs.getInstance().getSelectedTab();
            if (tab != null) tab.doStop();
          }
        });

    mReader = (ImageButton) mLayout.findViewById(R.id.reader);
    mReader.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View view) {
            if (mReaderPopup == null) mReaderPopup = new ReaderPopup(GeckoApp.mAppContext);

            mReaderPopup.show();
          }
        });

    mShadow = (ImageView) mLayout.findViewById(R.id.shadow);

    mHandler = new Handler();
    mSlideUpIn = new TranslateAnimation(0, 0, 40, 0);
    mSlideUpOut = new TranslateAnimation(0, 0, 0, -40);
    mSlideDownIn = new TranslateAnimation(0, 0, -40, 0);
    mSlideDownOut = new TranslateAnimation(0, 0, 0, 40);

    mDuration = 750;
    mSlideUpIn.setDuration(mDuration);
    mSlideUpOut.setDuration(mDuration);
    mSlideDownIn.setDuration(mDuration);
    mSlideDownOut.setDuration(mDuration);

    mMenu = (ImageButton) mLayout.findViewById(R.id.menu);
    mActionItemBar = (LinearLayout) mLayout.findViewById(R.id.menu_items);
    mHasSoftMenuButton = false;

    if (Build.VERSION.SDK_INT >= 11) mHasSoftMenuButton = true;

    if (Build.VERSION.SDK_INT >= 14) {
      if (!ViewConfiguration.get(GeckoApp.mAppContext).hasPermanentMenuKey())
        mHasSoftMenuButton = true;
      else mHasSoftMenuButton = false;
    }

    if (mHasSoftMenuButton) {
      mMenu.setVisibility(View.VISIBLE);
      mMenu.setOnClickListener(
          new Button.OnClickListener() {
            public void onClick(View view) {
              GeckoApp.mAppContext.openOptionsMenu();
            }
          });
    }

    if (Build.VERSION.SDK_INT >= 11) {
      View panel = GeckoApp.mAppContext.getMenuPanel();

      // If panel is null, the app is starting up for the first time;
      //    add this to the popup only if we have a soft menu button.
      // else, browser-toolbar is initialized on rotation,
      //    and we need to re-attach action-bar items.

      if (panel == null) {
        GeckoApp.mAppContext.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, null);
        panel = GeckoApp.mAppContext.getMenuPanel();

        if (mHasSoftMenuButton) {
          mMenuPopup = new MenuPopup(mContext);
          mMenuPopup.setPanelView(panel);
        }
      }
    }
  }
  public BrowserToolbar(Context context, AttributeSet attrs) {
    super(context, attrs);

    mContext = context;

    // Get the device's highlight color
    ContextThemeWrapper wrapper = new ContextThemeWrapper(mContext, android.R.style.TextAppearance);
    TypedArray typedArray =
        wrapper.getTheme().obtainStyledAttributes(new int[] {android.R.attr.textColorHighlight});
    mColor = typedArray.getColor(typedArray.getIndex(0), 0);

    // Load layout into the custom view
    LayoutInflater inflater =
        (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    inflater.inflate(R.layout.browser_toolbar, this);

    mAwesomeBar = (Button) findViewById(R.id.awesome_bar);
    mAwesomeBar.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            onAwesomeBarSearch();
          }
        });

    Resources resources = getResources();

    int padding[] = {
      mAwesomeBar.getPaddingLeft(),
      mAwesomeBar.getPaddingTop(),
      mAwesomeBar.getPaddingRight(),
      mAwesomeBar.getPaddingBottom()
    };

    GeckoStateListDrawable states = new GeckoStateListDrawable();
    states.initializeFilter(mColor);
    states.addState(
        new int[] {android.R.attr.state_pressed},
        resources.getDrawable(R.drawable.address_bar_url_pressed));
    states.addState(new int[] {}, resources.getDrawable(R.drawable.address_bar_url_default));
    mAwesomeBar.setBackgroundDrawable(states);

    mAwesomeBar.setPadding(padding[0], padding[1], padding[2], padding[3]);

    mTabs = (ImageButton) findViewById(R.id.tabs);
    mTabs.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            if (Tabs.getInstance().getCount() > 1) showTabs();
            else addTab();
          }
        });
    mTabs.setImageLevel(1);

    mCounterColor = 0x99ffffff;

    mTabsCount = (TextSwitcher) findViewById(R.id.tabs_count);
    mTabsCount.setFactory(
        new ViewFactory() {
          public View makeView() {
            TextView text = new TextView(mContext);
            text.setGravity(Gravity.CENTER);
            text.setTextSize(16);
            text.setTextColor(mCounterColor);
            text.setTypeface(text.getTypeface(), Typeface.BOLD);
            return text;
          }
        });
    mCount = 0;
    mTabsCount.setText("0");

    mFavicon = (ImageButton) findViewById(R.id.favicon);
    mSiteSecurity = (ImageButton) findViewById(R.id.site_security);
    mProgressSpinner = (AnimationDrawable) resources.getDrawable(R.drawable.progress_spinner);

    mStop = (ImageButton) findViewById(R.id.stop);
    mStop.setOnClickListener(
        new Button.OnClickListener() {
          public void onClick(View v) {
            doStop();
          }
        });

    mHandler = new Handler();
    mSlideUpIn = new TranslateAnimation(0, 0, 30, 0);
    mSlideUpOut = new TranslateAnimation(0, 0, 0, -30);
    mSlideDownIn = new TranslateAnimation(0, 0, -30, 0);
    mSlideDownOut = new TranslateAnimation(0, 0, 0, 30);

    mDuration = 750;
    mSlideUpIn.setDuration(mDuration);
    mSlideUpOut.setDuration(mDuration);
    mSlideDownIn.setDuration(mDuration);
    mSlideDownOut.setDuration(mDuration);
  }