コード例 #1
0
  @Override
  public void act(float delta) {
    super.act(delta);

    lastUpdated += delta;

    if (lastUpdated >= TowerConsts.HUD_UPDATE_FREQUENCY) {
      lastUpdated = 0f;
      Player player = Player.instance();
      starRatingBar.setValue(player.getStarRating());

      if (dubai7StarWonder.isCompleted() && starRatingBar.getMaxValue() == 5) {
        starRatingBar.setMaxValue(7);
      }

      experienceLabel.setText(formatNumber(player.getExperience()));

      moneyLabel.setText(TowerConsts.CURRENCY_SYMBOL + formatNumber(player.getCoins()));
      moneyIncomeLabel.setText(
          TowerConsts.CURRENCY_SYMBOL + formatNumber(player.getCurrentIncome()));
      moneyExpensesLabel.setText(
          TowerConsts.CURRENCY_SYMBOL + formatNumber(player.getCurrentExpenses()));
      populationLabel.setText(
          formatNumber(player.getPopulationResidency())
              + "/"
              + formatNumber(player.getMaxPopulation()));
      employmentLabel.setText(
          formatNumber(player.getJobsFilled()) + "/" + formatNumber(player.getJobsMax()));

      pack();
    }
  }
コード例 #2
0
 private void setTexts() {
   mAnchorLikely.setText(mSettings.getAnchorLikely());
   mAnchorNotLikely.setText(mSettings.getAnchorNotLikely());
   mBtnSubmit.setText(mSettings.getBtnSubmit());
   mBtnDismiss.setText(mSettings.getBtnDismiss());
   mEtFeedback.setHint(mSettings.getFollowupPlaceholder(mRatingBar.getSelectedScore()));
 }
コード例 #3
0
  private void setupThankYouState() {
    setViewsVisibility(mCommonSurveyViews, false);
    setViewsVisibility(mFeedbackViews, false);
    setViewsVisibility(mNpsViews, false);

    mThankYouLayout.setVisibility(VISIBLE);
    mThankYouLayout.initValues(mSettings, mRatingBar.getSelectedScore(), getFeedback());
  }
コード例 #4
0
  private void setupNpsState() {
    setViewsVisibility(mCommonSurveyViews, true);
    setViewsVisibility(mFeedbackViews, false);
    setViewsVisibility(mNpsViews, true);

    mTvSurveyHeader.setText(mSettings.getNpsQuestion());
    mThankYouLayout.setVisibility(GONE);
    setKeyboardVisibility(false);

    final boolean isScoreSelected = mRatingBar.isScoreSelected();
    updateSubmitBtn(isScoreSelected);
  }
コード例 #5
0
  private void submitSurvey() {
    notifyListener();

    Score score = new Score(mRatingBar.getSelectedScore());
    boolean shouldSkipFeedbackScreen =
        score.isPromoter() && mSettings.shouldSkipFollowupScreenForPromoters();

    if (isFeedbackState() || shouldSkipFeedbackScreen) {
      updateState(STATE_THANK_YOU);
    } else if (isNpsState()) {
      updateState(STATE_FEEDBACK);
    }
  }
コード例 #6
0
  private void initNpsViewElements() {
    mLayoutBody = (RelativeLayout) findViewById(R.id.wootric_survey_layout_body);
    mScoreLayout = (LinearLayout) mLayoutBody.findViewById(R.id.wootric_score_layout);
    mAnchorLikely = (TextView) mLayoutBody.findViewById(R.id.wootric_anchor_likely);
    mAnchorNotLikely = (TextView) mLayoutBody.findViewById(R.id.wootric_anchor_not_likely);
    mRatingBar = (RatingBar) mLayoutBody.findViewById(R.id.wootric_rating_bar);

    mNpsViews = new View[] {mRatingBar, mScoreLayout, mAnchorLikely, mAnchorNotLikely};

    initScoreLayout();

    mRatingBar.setOnScoreChangedListener(this);
  }
コード例 #7
0
  private void setupFeedbackState() {
    setViewsVisibility(mCommonSurveyViews, true);
    setViewsVisibility(mFeedbackViews, true);
    setViewsVisibility(mNpsViews, false);

    int currentScore = mRatingBar.getSelectedScore();
    mTvSurveyHeader.setText(mSettings.getFollowupQuestion(currentScore));
    mEtFeedback.setHint(mSettings.getFollowupPlaceholder(currentScore));

    mThankYouLayout.setVisibility(GONE);
    setKeyboardVisibility(true);

    final boolean hasFeedback = !mEtFeedback.getText().toString().isEmpty();
    updateSubmitBtn(hasFeedback);
  }
コード例 #8
0
 public int getSelectedScore() {
   return mRatingBar.getSelectedScore();
 }
コード例 #9
0
  private void notifyListener() {
    if (mSurveyLayoutListener == null) return;

    String text = mEtFeedback.getText().toString();
    mSurveyLayoutListener.onSurveySubmit(mRatingBar.getSelectedScore(), text);
  }
コード例 #10
0
  public StatusBarPanel() {
    setTouchable(Touchable.childrenOnly);

    moneyLabel = makeValueLabel("0");
    moneyIncomeLabel = makeValueLabel("0");
    moneyExpensesLabel = makeValueLabel("0");
    experienceLabel = makeValueLabel("0");
    populationLabel = makeValueLabel("0");
    employmentLabel = makeValueLabel("0");
    gameSpeedLabel = makeValueLabel(SceneManager.activeScene().getTimeMultiplier() + "x");
    starRatingBar = new RatingBar(0, 5);

    whiteSwatch = TowerAssetManager.texture(TowerAssetManager.WHITE_SWATCH);
    backgroundTexture = TowerAssetManager.texture("hud/window-bg.png");
    backgroundTexture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);

    defaults();
    center();

    // TODO these need to be moved to the resources file
    row().pad(devicePixel(2)).padBottom(0);
    add(makeHeader("MONEY", Color.LIGHT_GRAY)).center();
    add(makeHeader("INCOME", Color.LIGHT_GRAY)).center();
    add(makeHeader("EXPENSES", Color.LIGHT_GRAY)).center();
    add(makeHeader("POPULATION", Color.LIGHT_GRAY)).center();
    add(makeHeader("EMPLOYMENT", Color.LIGHT_GRAY)).center();
    Label gameSpeedHeader = makeHeader("GAME SPEED", Color.LIGHT_GRAY);
    add(gameSpeedHeader).center();
    Label starRatingHeader = makeHeader("STAR RATING", Color.LIGHT_GRAY);
    add(starRatingHeader).center();

    row().pad(devicePixel(2)).padTop(0);
    add(moneyLabel);
    add(moneyIncomeLabel);
    add(moneyExpensesLabel);
    add(populationLabel);
    add(employmentLabel);
    add(gameSpeedLabel);
    add(starRatingBar);

    if (TowerConsts.ENABLE_NEWS_TICKER) {
      row().pad(devicePixel(2)).padLeft(devicePixel(-4)).padRight(devicePixel(-4));
      add(new HorizontalRule(Colors.ICS_BLUE_SEMI_TRANSPARENT, 1)).fillX().colspan(7);

      row().pad(0);
      add(new NewsTickerPanel()).colspan(7).left();
    }

    dubai7StarWonder = AchievementEngine.instance().findById("dubai-7-star-wonder");

    gameSpeedOverlay = new PopOver();
    gameSpeedOverlay.alignArrow(Align.left);
    gameSpeedOverlay
        .add(new Image(TowerAssetManager.textureFromAtlas("snail", "hud/buttons.txt")))
        .center();
    gameSpeedSlider =
        new Slider(
            TowerConsts.GAME_SPEED_MIN,
            TowerConsts.GAME_SPEED_MAX,
            0.5f,
            false,
            TowerAssetManager.getCustomSkin());
    gameSpeedOverlay.add(gameSpeedSlider).width(devicePixel(150));
    gameSpeedOverlay
        .add(new Image(TowerAssetManager.textureFromAtlas("rabbit", "hud/buttons.txt")))
        .center();
    gameSpeedOverlay.pack();
    gameSpeedOverlay.setVisible(false);

    gameSpeedSlider.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            float remainder = gameSpeedSlider.getValue() * 2f / 2f;
            SceneManager.activeScene().setTimeMultiplier(remainder);
          }
        });

    SceneManager.activeScene().events().register(this);

    starRatingPopOver = new TowerRatingPopOver();
    starRatingPopOver.setVisible(false);

    pack();

    VibrateClickListener gameSpeedToggleListener =
        new VibrateClickListener() {
          @Override
          public void onClick(InputEvent event, float x, float y) {
            gameSpeedOverlay.toggle(StatusBarPanel.this, gameSpeedLabel);
          }
        };
    gameSpeedHeader.addListener(gameSpeedToggleListener);
    gameSpeedLabel.addListener(gameSpeedToggleListener);

    VibrateClickListener starRatingListener =
        new VibrateClickListener() {
          @Override
          public void onClick(InputEvent event, float x, float y) {
            starRatingPopOver.toggle(StatusBarPanel.this, starRatingBar);
          }
        };
    starRatingHeader.addListener(starRatingListener);
    starRatingBar.addListener(starRatingListener);

    setTouchable(Touchable.enabled);
    addListener(
        new ClickListener() {
          @Override
          public void clicked(InputEvent event, float x, float y) {}
        });
  }