Android Open Source - TuentiTV Enter Password Activity






From Project

Back to project page TuentiTV.

License

The source code is released under:

Apache License

If you think the Android project TuentiTV listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 Pedro Vicente Gmez Snchez.
 *//from w w w .  j  a  v a2  s .  c o m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.pedrovgs.tuentitv.ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import com.github.pedrovgs.tuentitv.R;
import com.github.pedrovgs.tuentitv.presenter.EnterPasswordPresenter;
import java.util.LinkedList;
import java.util.List;
import javax.inject.Inject;

/**
 * Activity used to show enter password user interface and handle all the presentation logic
 * related to the enter password process.
 *
 * @author Pedro Vicente Gmez Snchez.
 */
public class EnterPasswordActivity extends BaseActivity implements EnterPasswordPresenter.View {

  public static final String RESULT_KEY = "result";
  public static final int CHANGE_PASSWORD_TIME_IN_MILLIS = 700;
  private static final long CLOSE_DELAY = 1000;

  @Inject EnterPasswordPresenter presenter;
  private boolean isLastPasswordElement;
  private final Handler handler = new Handler();

  @Override public void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.enter_password_activity);
    super.onCreate(savedInstanceState);
    presenter.setView(this);
  }

  @Override public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
      case KeyEvent.KEYCODE_DPAD_DOWN:
        presenter.onDpadDownPressed();
        return true;
      case KeyEvent.KEYCODE_DPAD_LEFT:
        presenter.onDpadLeftPressed();
        return true;
      case KeyEvent.KEYCODE_DPAD_RIGHT:
        presenter.onDpadRightPressed();
        return true;
      case KeyEvent.KEYCODE_DPAD_UP:
        presenter.onDpadUpPressed();
        return true;
      default:
        return super.onKeyDown(keyCode, event);
    }
  }

  @Override public void showTopArrowOnCurrentPasswordField() {
    int passwordElementResource = R.drawable.icn_arrow_top;
    showPasswordElement(passwordElementResource);
  }

  @Override public void showRightArrowOnCurrentPasswordField() {
    int passwordElementResource = R.drawable.icn_arrow_right;
    showPasswordElement(passwordElementResource);
  }

  @Override public void showLeftArrowOnCurrentPasswordField() {
    int passwordElementResource = R.drawable.icn_arrow_left;
    showPasswordElement(passwordElementResource);
  }

  @Override public void showDownArrowOnCurrentPasswordField() {
    int passwordElementResource = R.drawable.icn_arrow_down;
    showPasswordElement(passwordElementResource);
  }

  @Override public void hidePreviousPasswordElements() {
    View currentViewWithFocus = getCurrentFocus();
    ViewGroup parent = (ViewGroup) currentViewWithFocus.getParent();
    for (int i = 0; i < parent.getChildCount(); i++) {
      View ib_element_item = parent.getChildAt(i);
      if (currentViewWithFocus.equals(ib_element_item)) {
        ImageButton previousFocusedElement = (ImageButton) parent.getChildAt(i - 1);
        updatePasswordElementWithAsterisk(previousFocusedElement, 0);
      }
    }
  }

  @Override public void moveFocusToNextElement() {
    View focusedElement = getCurrentFocus();
    ViewGroup parent = (ViewGroup) focusedElement.getParent();
    for (int i = 0; i < parent.getChildCount(); i++) {
      View ib_element_item = parent.getChildAt(i);
      if (focusedElement.equals(ib_element_item)) {
        View nextFocusedElement = parent.getChildAt(i + 1);
        nextFocusedElement.requestFocus();
        this.isLastPasswordElement = parent.getChildAt(i + 2) == null;
      }
    }
  }

  @Override public boolean isLastElementFocused() {
    return isLastPasswordElement;
  }

  @Override public void closeViewWithSuccessPassword() {
    new Handler().postDelayed(new Runnable() {
      @Override public void run() {
        finishWithResult();
      }
    }, CLOSE_DELAY);
  }

  private void finishWithResult() {
    Intent returnIntent = new Intent();
    returnIntent.putExtra(RESULT_KEY, true);
    setResult(RESULT_OK, returnIntent);
    finish();
  }

  private void showPasswordElement(int passwordElementResource) {
    ImageButton ib_password_element = (ImageButton) getCurrentFocus();
    ib_password_element.setImageResource(passwordElementResource);
    ib_password_element.setBackgroundResource(R.color.transparent);
    LinearLayout.LayoutParams lp =
        (LinearLayout.LayoutParams) ib_password_element.getLayoutParams();
    lp.height = LinearLayout.LayoutParams.WRAP_CONTENT;
    ib_password_element.setLayoutParams(lp);
    updatePasswordElementWithAsterisk(ib_password_element, CHANGE_PASSWORD_TIME_IN_MILLIS);
  }

  private void updatePasswordElementWithAsterisk(final ImageButton ib_password_element,
      long delay) {
    if (ib_password_element == null) {
      return;
    }
    handler.postDelayed(new Runnable() {
      @Override public void run() {
        ib_password_element.setImageResource(R.drawable.icn_pass_ok_blue);
      }
    }, delay);
  }

  @Override protected List getModules() {
    return new LinkedList();
  }
}




Java Source Code List

com.github.pedrovgs.tuentitv.TuentiTvApplication.java
com.github.pedrovgs.tuentitv.di.ActivityContext.java
com.github.pedrovgs.tuentitv.di.ActivityModule.java
com.github.pedrovgs.tuentitv.di.ApplicationContext.java
com.github.pedrovgs.tuentitv.di.RootModule.java
com.github.pedrovgs.tuentitv.di.TuentiTvApplicationModule.java
com.github.pedrovgs.tuentitv.model.Account.java
com.github.pedrovgs.tuentitv.model.Accounts.java
com.github.pedrovgs.tuentitv.model.Agenda.java
com.github.pedrovgs.tuentitv.model.Chat.java
com.github.pedrovgs.tuentitv.model.Contact.java
com.github.pedrovgs.tuentitv.model.ConversationSummary.java
com.github.pedrovgs.tuentitv.model.MediaElement.java
com.github.pedrovgs.tuentitv.model.MediaGallery.java
com.github.pedrovgs.tuentitv.presenter.DetailPresenter.java
com.github.pedrovgs.tuentitv.presenter.EnterPasswordPresenter.java
com.github.pedrovgs.tuentitv.presenter.LoginPresenter.java
com.github.pedrovgs.tuentitv.presenter.MainPresenter.java
com.github.pedrovgs.tuentitv.presenter.SearchPresenter.java
com.github.pedrovgs.tuentitv.recommendation.builder.RecommendationBuilder.java
com.github.pedrovgs.tuentitv.recommendation.service.BaseIntentService.java
com.github.pedrovgs.tuentitv.recommendation.service.RecommendationService.java
com.github.pedrovgs.tuentitv.ui.activity.BaseActivity.java
com.github.pedrovgs.tuentitv.ui.activity.DetailActivity.java
com.github.pedrovgs.tuentitv.ui.activity.EnterPasswordActivity.java
com.github.pedrovgs.tuentitv.ui.activity.LoadingActivity.java
com.github.pedrovgs.tuentitv.ui.activity.LoginActivity.java
com.github.pedrovgs.tuentitv.ui.activity.MainActivity.java
com.github.pedrovgs.tuentitv.ui.activity.SearchActivity.java
com.github.pedrovgs.tuentitv.ui.activity.ShowImageActivity.java
com.github.pedrovgs.tuentitv.ui.data.CardInfo.java
com.github.pedrovgs.tuentitv.ui.data.IconInfo.java
com.github.pedrovgs.tuentitv.ui.data.ImageInfo.java
com.github.pedrovgs.tuentitv.ui.fragment.BrowseBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.DetailBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.DetailFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.MainFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.SearchBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.SearchFragment.java
com.github.pedrovgs.tuentitv.ui.navigator.Navigator.java
com.github.pedrovgs.tuentitv.ui.picasso.PicassoBackgroundManagerTarget.java
com.github.pedrovgs.tuentitv.ui.picasso.PicassoImageCardViewTarget.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.BlurTransformation.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.CircleTransform.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.GrayScaleTransformation.java
com.github.pedrovgs.tuentitv.ui.util.Util.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.CardPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.DetailsDescriptionPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.IconPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.ImagePresenter.java