示例#1
0
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    fContext = getActivity().getApplicationContext();
    mActivity = (MainActivity) getActivity();
    //        bottomPanel = (LinearLayout) rootView.findViewById(R.id.bottomPanelPhoto);
    progress = (DonutProgress) rootView.findViewById(R.id.donut_progress);
    progress.setVisibility(View.GONE);
    btnSave = (ActionButton) rootView.findViewById(R.id.aBtnSave);

    btnSave.setImageResource(R.drawable.ic_check);
    btnSave.setButtonColor(Color.TRANSPARENT);
    btnSave.setStrokeColor(Color.GREEN);
    btnSave.setStrokeWidth(3.0f);
    btnSave.setButtonColorPressed(Color.LTGRAY);
    btnSave.removeShadow();
    btnSave.setType(ActionButton.Type.BIG);
    btnSave.setShowAnimation(ActionButton.Animations.FADE_IN);
    btnSave.setHideAnimation(ActionButton.Animations.FADE_OUT);
    btnSave.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            new SendFilesTask().execute();
          }
        });
    btnCancel = (ActionButton) rootView.findViewById(R.id.aBtnBack);
    btnCancel.setImageResource(R.drawable.ic_cancel);
    btnCancel.setButtonColor(Color.TRANSPARENT);
    btnCancel.setStrokeColor(Color.RED);
    btnCancel.setStrokeWidth(3.0f);
    btnCancel.setButtonColorPressed(Color.LTGRAY);
    btnCancel.removeShadow();
    btnCancel.setType(ActionButton.Type.BIG);
    btnCancel.setShowAnimation(ActionButton.Animations.FADE_IN);
    btnCancel.setHideAnimation(ActionButton.Animations.FADE_OUT);
    btnCancel.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            btnCancel.playHideAnimation();
            btnSave.playHideAnimation();
            mActivity.onBackPressed();
          }
        });
    imgView = (ImageView) rootView.findViewById(R.id.imgView);
    try {
      ImageLoader.getInstance().displayImage("file:///mnt/" + bmp, imgView);
    } catch (Exception e) {

    }
    mActivity.setIsFAB(false);
    mActivity.updateFAB();
    if (savedInstanceState == null) {
      startAnimation();
    }
  }
示例#2
0
 public void sendDelayedSms() {
   mProgress.setVisibility(VISIBLE);
   updateButtonState(SendButtonState.CANCEL);
   mProgressAnimator.start();
 }
示例#3
0
  @Override
  public void onFinishInflate() {
    super.onFinishInflate();

    // Get references to the views
    mReplyText = (QKEditText) findViewById(R.id.compose_reply_text);
    mButton = (FrameLayout) findViewById(R.id.compose_button);
    mProgress = (DonutProgress) findViewById(R.id.progress);
    mButtonBackground = (ImageView) findViewById(R.id.compose_button_background);
    mButtonBar1 = (ImageView) findViewById(R.id.compose_button_bar_1);
    mButtonBar2 = (ImageView) findViewById(R.id.compose_button_bar_2);
    mAttachmentPanel = findViewById(R.id.attachment_panel);
    mAttach = (ImageButton) findViewById(R.id.attach);
    mCamera = (ImageButton) findViewById(R.id.camera);
    mDelay = (ImageButton) findViewById(R.id.delay);
    mLetterCount = (QKTextView) findViewById(R.id.compose_letter_count);
    mAttachmentLayout = (FrameLayout) findViewById(R.id.attachment);
    mAttachment = (AttachmentImageView) findViewById(R.id.compose_attachment);
    mCancel = (ImageButton) findViewById(R.id.cancel);

    mButton.setOnClickListener(this);
    mAttach.setOnClickListener(this);
    mCamera.setOnClickListener(this);
    mCancel.setOnClickListener(this);
    mDelay.setOnClickListener(this);

    LiveViewManager.registerView(
        QKPreference.THEME,
        this,
        key -> {
          mButtonBackground.setColorFilter(ThemeManager.getColor(), PorterDuff.Mode.SRC_ATOP);
          mButtonBar1.setColorFilter(
              ThemeManager.getTextOnColorPrimary(), PorterDuff.Mode.SRC_ATOP);
          mButtonBar2.setColorFilter(
              ThemeManager.getTextOnColorPrimary(), PorterDuff.Mode.SRC_ATOP);
          mAttachmentPanel.setBackgroundColor(ThemeManager.getColor());
          mAttach.setColorFilter(ThemeManager.getTextOnColorPrimary(), PorterDuff.Mode.SRC_ATOP);
          mCamera.setColorFilter(ThemeManager.getTextOnColorPrimary(), PorterDuff.Mode.SRC_ATOP);
          updateDelayButton();
          mProgress.setUnfinishedStrokeColor(ThemeManager.getTextOnColorSecondary());
          mProgress.setFinishedStrokeColor(ThemeManager.getTextOnColorPrimary());
          if (ThemeManager.getSentBubbleRes() != 0)
            mReplyText.setBackgroundResource(ThemeManager.getSentBubbleRes());
        });

    LiveViewManager.registerView(
        QKPreference.BACKGROUND,
        this,
        key -> {
          mReplyText
              .getBackground()
              .setColorFilter(ThemeManager.getNeutralBubbleColor(), PorterDuff.Mode.SRC_ATOP);
          getBackground()
              .setColorFilter(ThemeManager.getBackgroundColor(), PorterDuff.Mode.SRC_ATOP);
        });

    // There is an option for using the return button instead of the emoticon button in the
    // keyboard; set that up here.
    switch (Integer.parseInt(mPrefs.getString(SettingsFragment.ENTER_BUTTON, "0"))) {
      case 0: // emoji
        break;
      case 1: // new line
        mReplyText.setInputType(
            InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
                | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE);
        mReplyText.setSingleLine(false);
        break;
      case 2: // send
        mReplyText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
        mReplyText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
        mReplyText.setSingleLine(false);
        mReplyText.setOnKeyListener(
            new OnKeyListener() { // Workaround because ACTION_SEND does not support multiline mode
              @Override
              public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == 66) {
                  sendSms();
                  return true;
                }
                return false;
              }
            });
        break;
    }

    mReplyText.setTextChangedListener(
        new QKEditText.TextChangedListener() {
          @Override
          public void onTextChanged(CharSequence s) {
            int length = s.length();

            updateButtonState(length);

            // If the reply is within 10 characters of the SMS limit (160), it will start counting
            // down
            // If the reply exceeds the SMS limit, it will count down until an extra message will
            // have to be sent, and shows how many messages will currently be sent
            if (length < 150) {
              mLetterCount.setText("");
            } else if (150 <= length && length <= 160) {
              mLetterCount.setText("" + (160 - length));
            } else if (160 < length) {
              mLetterCount.setText((160 - length % 160) + "/" + (length / 160 + 1));
            }
          }
        });

    mProgressAnimator = new ValueAnimator();
    mProgressAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
    mProgressAnimator.setDuration(mDelayDuration);
    mProgressAnimator.setIntValues(0, 360);
    mProgressAnimator.addUpdateListener(
        new ValueAnimator.AnimatorUpdateListener() {
          @Override
          public void onAnimationUpdate(ValueAnimator animation) {
            mProgress.setProgress((int) animation.getAnimatedValue());
          }
        });
    mProgressAnimator.addListener(
        new AnimatorListenerAdapter() {
          @Override
          public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            mProgress.setVisibility(INVISIBLE);
            mProgress.setProgress(0);

            if (!mSendingCancelled) {
              sendSms();
              // In case they only enabled it for a particular message, let's set it back to the
              // pref value
              mDelayedMessagingEnabled = mPrefs.getBoolean(SettingsFragment.DELAYED, false);
              updateDelayButton();
            } else {
              mSendingCancelled = false;
              updateButtonState();
            }
          }
        });
  }