All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.jobs.ui.dialog.SubscribeDialog Maven / Gradle / Ivy

package com.github.jobs.ui.dialog;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.util.Patterns;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ViewSwitcher;
import com.codeslap.groundy.Groundy;
import com.codeslap.groundy.ReceiverFragment;
import com.github.jobs.R;
import com.github.jobs.resolver.EmailSubscriberResolver;
import com.github.jobs.ui.fragment.EmailSubscriberReceiver;

import java.util.regex.Matcher;

import static com.github.jobs.utils.AnalyticsHelper.NAME_SUBSCRIBE_DIALOG;
import static com.github.jobs.utils.AnalyticsHelper.getTracker;

/**
 * @author cristian
 */
public class SubscribeDialog extends TrackFragmentDialog implements View.OnClickListener {

    private EditText mEmail;

    private EmailSubscriberReceiver mEmailSubscriberReceiver;
    private ViewSwitcher mContentSwitcher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getTracker(this).trackPageView(NAME_SUBSCRIBE_DIALOG);
        setContentView(R.layout.subscribe_dialog);

        mContentSwitcher = (ViewSwitcher) findViewById(R.id.switcher_email_subscription);
        mEmail = (EditText) findViewById(R.id.edit_email);
        findViewById(R.id.btn_subscribe).setOnClickListener(this);

        FragmentManager fm = getSupportFragmentManager();
        mEmailSubscriberReceiver = (EmailSubscriberReceiver) fm.findFragmentByTag(ReceiverFragment.TAG);
        if (mEmailSubscriberReceiver == null) {
            mEmailSubscriberReceiver = new EmailSubscriberReceiver();
            fm.beginTransaction().add(mEmailSubscriberReceiver, ReceiverFragment.TAG).commit();
            progress(false);
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_subscribe:
                String emailAddress = mEmail.getText().toString().trim();
                Matcher matcher = Patterns.EMAIL_ADDRESS.matcher(emailAddress);
                if (!matcher.find()) {
                    mEmail.setError(getString(R.string.invalid_email_address));
                    mEmail.requestFocus();
                    return;
                }

                Bundle extras = new Bundle();
                if (getIntent().getExtras() != null) {
                    extras.putAll(getIntent().getExtras());
                }
                extras.putString(EmailSubscriberResolver.EXTRA_EMAIL, emailAddress);
                Groundy.queue(this, EmailSubscriberResolver.class, mEmailSubscriberReceiver.getReceiver(), extras);
                break;
        }
    }

    public void progress(boolean running) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (running) {
            imm.hideSoftInputFromWindow(mEmail.getWindowToken(), 0);
            mContentSwitcher.showNext();
        } else {
            mEmail.requestFocus();
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
            mContentSwitcher.showPrevious();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy