Android Open Source - caddisfly-app-camera Form Fragment






From Project

Back to project page caddisfly-app-camera.

License

The source code is released under:

GNU General Public License

If you think the Android project caddisfly-app-camera 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) TernUp Research Labs/*from  w  w w. j  a va  2 s  . c  om*/
 *
 * This file is part of Caddisfly
 *
 * Caddisfly is free software: you can redistribute it and modify it under the terms of
 * the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
 * either version 3 of the License or any later version.
 *
 * Caddisfly is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License included below for more details.
 *
 * The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
 */

package com.ternup.caddisfly.fragment;

import com.ternup.caddisfly.R;
import com.ternup.caddisfly.app.MainApp;
import com.ternup.caddisfly.widget.FormEditText;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.location.Address;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.support.v4.content.LocalBroadcastManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.Locale;

public class FormFragment extends BaseFragment implements TextView.OnEditorActionListener {

    FormEditText mPlaceEditText;

    FormEditText mThoroughfareEditText;

    FormEditText mSubLocalityEditText;

    FormEditText mLocalityEditText;

    FormEditText mStateEditText;

    FormEditText mCountryEditText;

    TextWatcher textWatcher;

    // Handle to SharedPreferences for this app
    SharedPreferences mPrefs;

    private Address mAddress;

    private final BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {

            mPlaceEditText.getEditText().removeTextChangedListener(textWatcher);

            MainApp mainApp = (MainApp) getActivity().getApplicationContext();
            mAddress = mainApp.address;

            mPlaceEditText.getEditText().setText(mAddress.getFeatureName());

            mThoroughfareEditText.getEditText().setText(mAddress.getThoroughfare());

            mSubLocalityEditText.getEditText().setText(mAddress.getSubLocality());

            mLocalityEditText.getEditText().setText(mAddress.getLocality());

            mStateEditText.getEditText().setText(mAddress.getAdminArea());

            mCountryEditText.getEditText().setText(mAddress.getCountryName());

            mPlaceEditText.getEditText().addTextChangedListener(textWatcher);

        }
    };

    public FormFragment() {
    }

    /**
     * Returns a new instance of this fragment for the given section
     * number.
     */
    public static FormFragment newInstance() {
        return new FormFragment();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Register to receive messages.
        // We are registering an observer (mMessageReceiver) to receive Intents
        // with actions named "custom-event-name".
        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver,
                new IntentFilter("locationUpdated"));

        MainApp mainApp = (MainApp) getActivity().getApplicationContext();
        mAddress = mainApp.address;

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_form, container, false);
/*
        TextView textView = (TextView) rootView.findViewById(R.id.section_label);
        textView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)));
*/
        LinearLayout linearLayout = (LinearLayout) rootView.findViewById(R.id.rootLayout);

        //mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());

        textWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                if (mAddress == null) {
                    MainApp mainApp = (MainApp) getActivity().getApplicationContext();
                    mainApp.address = new Address(Locale.getDefault());
                    mAddress = mainApp.address;

                }
                mAddress.setFeatureName(mPlaceEditText.getEditText().getText().toString());

            }
        };

        mPlaceEditText = new FormEditText(getActivity(), getString(R.string.place));
        mPlaceEditText.getEditText().requestFocus();
        linearLayout.addView(mPlaceEditText.getView());
        mPlaceEditText.getEditText().addTextChangedListener(textWatcher);

        mThoroughfareEditText = new FormEditText(getActivity(), getString(R.string.street));
        linearLayout.addView(mThoroughfareEditText.getView());

        mSubLocalityEditText = new FormEditText(getActivity(), getString(R.string.town));
        linearLayout.addView(mSubLocalityEditText.getView());

        mLocalityEditText = new FormEditText(getActivity(), getString(R.string.city));
        linearLayout.addView(mLocalityEditText.getView());

        mStateEditText = new FormEditText(getActivity(), getString(R.string.state));
        linearLayout.addView(mStateEditText.getView());

        mCountryEditText = new FormEditText(getActivity(), getString(R.string.country));
        mCountryEditText.getEditText()
                .setImeActionLabel(getString(R.string.done), EditorInfo.IME_ACTION_DONE);
        linearLayout.addView(mCountryEditText.getView());
        mCountryEditText.getEditText().setOnEditorActionListener(this);

        return rootView;
    }

    public void showKeyboard() {

        if (mPlaceEditText.getEditText().getText().toString().isEmpty()) {

            (new Handler()).postDelayed(new Runnable() {

                public void run() {
                    mPlaceEditText.getEditText().dispatchTouchEvent(MotionEvent
                            .obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                                    MotionEvent.ACTION_DOWN, 0, 0, 0));
                    mPlaceEditText.getEditText().dispatchTouchEvent(
                            MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock
                                    .uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0)
                    );

                }
            }, 300);
        }

/*
        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
                Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(mPlaceEditText.getInputControl(), InputMethodManager.SHOW_FORCED);
*/
    }


    @Override
    public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
        if (EditorInfo.IME_ACTION_DONE == EditorInfo.IME_ACTION_DONE) {
            // Return input text to activity

            String resultPlace = mPlaceEditText.getEditText().getText().toString().trim();
            //String address = mAddressEdit.getText().toString().trim();
            //int resultSource = mSourceSpinner.getSelectedItemPosition();

            if (resultPlace.isEmpty()) {
                mPlaceEditText.getEditText().setError("Please enter a Place name");
                mPlaceEditText.getEditText().post(new Runnable() {
                    public void run() {
                        mPlaceEditText.getEditText().requestFocusFromTouch();
                        InputMethodManager lManager = (InputMethodManager) getActivity()
                                .getSystemService(Context.INPUT_METHOD_SERVICE);
                        lManager.showSoftInput(mPlaceEditText.getEditText(), 0);
                    }
                });
            } else {
                listener.onPageComplete();
            }

            /*else if (address.isEmpty()) {
                mAddressEdit.setError("Please enter an Address");
                mAddressEdit.post(new Runnable() {
                    public void run() {
                        mAddressEdit.requestFocusFromTouch();
                        InputMethodManager lManager = (InputMethodManager) getActivity()
                                .getSystemService(Context.INPUT_METHOD_SERVICE);
                        lManager.showSoftInput(mAddressEdit, 0);
                    }
                });
            } else if (resultSource == 0) {
                mPlaceEdit.setError(null);
                Toast toast = Toast
                        .makeText(getActivity(), "Please select a Source type", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.TOP, 0, 40);
                toast.show();
            } else {

                ContentValues values = new ContentValues();
                //values.put(TestTable.COLUMN_ADDRESS, placeEdit.getText().toString().trim());
                //values.put(TestTable.COLUMN_SOURCE, resultSource - 1);

                //Uri uri = ContentUris.withAppendedId(LocationContentProvider.CONTENT_URI, mId);
                //mContext.getContentResolver().update(uri, values, null, null);

                long locationId = saveResult();

                AddressDialogListener activity = (AddressDialogListener) getTargetFragment();
                activity.onFinishEditDialog(locationId);
                dialog.dismiss();

                return true;

            }*/
        }
        return false;
    }

    @Override
    public void onDestroy() {
        // Unregister since the activity is about to be closed.
        LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mMessageReceiver);
        super.onDestroy();
    }
}




Java Source Code List

com.ternup.caddisfly.activity.MainActivityBase.java
com.ternup.caddisfly.activity.MainActivity.java
com.ternup.caddisfly.activity.PhotoIntentActivity.java
com.ternup.caddisfly.activity.ProgressActivityBase.java
com.ternup.caddisfly.activity.ProgressActivity.java
com.ternup.caddisfly.activity.ProgressActivity.java
com.ternup.caddisfly.activity.SurveyActivity.java
com.ternup.caddisfly.activity.VideoActivity.java
com.ternup.caddisfly.adapter.CalibrateListAdapter.java
com.ternup.caddisfly.adapter.CheckboxSimpleCursorAdapter.java
com.ternup.caddisfly.adapter.GalleryListAdapter.java
com.ternup.caddisfly.adapter.NavDrawerListAdapter.java
com.ternup.caddisfly.adapter.SwatchesAdapter.java
com.ternup.caddisfly.app.GlobalsBase.java
com.ternup.caddisfly.app.Globals.java
com.ternup.caddisfly.app.Globals.java
com.ternup.caddisfly.app.MainApp.java
com.ternup.caddisfly.component.CameraZoomPreference.java
com.ternup.caddisfly.component.ConfirmCheckBoxPreference.java
com.ternup.caddisfly.component.ConfirmPreference.java
com.ternup.caddisfly.component.NothingSelectedSpinnerAdapter.java
com.ternup.caddisfly.component.NumberPickerPreference.java
com.ternup.caddisfly.database.DataStorage.java
com.ternup.caddisfly.database.DataStorage.java
com.ternup.caddisfly.database.LocationTable.java
com.ternup.caddisfly.database.TestDatabaseHelper.java
com.ternup.caddisfly.database.TestTable.java
com.ternup.caddisfly.fragment.AboutFragment.java
com.ternup.caddisfly.fragment.AboutItFragment.java
com.ternup.caddisfly.fragment.BaseFragment.java
com.ternup.caddisfly.fragment.CalibrateFragmentBase.java
com.ternup.caddisfly.fragment.CalibrateFragment.java
com.ternup.caddisfly.fragment.CalibrateItemFragmentBase.java
com.ternup.caddisfly.fragment.CalibrateItemFragment.java
com.ternup.caddisfly.fragment.CameraFragment.java
com.ternup.caddisfly.fragment.DetailsFragment.java
com.ternup.caddisfly.fragment.FormFragment.java
com.ternup.caddisfly.fragment.HelpFragment.java
com.ternup.caddisfly.fragment.HomeFragment.java
com.ternup.caddisfly.fragment.LocationDetailsFragment.java
com.ternup.caddisfly.fragment.LocationFragment.java
com.ternup.caddisfly.fragment.LocationListFragment.java
com.ternup.caddisfly.fragment.NavigationDrawerFragment.java
com.ternup.caddisfly.fragment.NotesFragment.java
com.ternup.caddisfly.fragment.PhotoFragment.java
com.ternup.caddisfly.fragment.ResultFragment.java
com.ternup.caddisfly.fragment.ResultListFragment.java
com.ternup.caddisfly.fragment.SettingsFragment.java
com.ternup.caddisfly.fragment.SwatchFragment.java
com.ternup.caddisfly.model.ColorInfo.java
com.ternup.caddisfly.model.Dynamics.java
com.ternup.caddisfly.model.NavigationDrawerItem.java
com.ternup.caddisfly.provider.LocationContentProvider.java
com.ternup.caddisfly.provider.TestContentProvider.java
com.ternup.caddisfly.service.CameraServiceReceiver.java
com.ternup.caddisfly.service.CameraService.java
com.ternup.caddisfly.util.AlertUtils.java
com.ternup.caddisfly.util.AudioUtils.java
com.ternup.caddisfly.util.ColorUtils.java
com.ternup.caddisfly.util.DataHelper.java
com.ternup.caddisfly.util.DateUtils.java
com.ternup.caddisfly.util.DownloadManager.java
com.ternup.caddisfly.util.FileUtils.java
com.ternup.caddisfly.util.ImageUtils.java
com.ternup.caddisfly.util.LocationUtils.java
com.ternup.caddisfly.util.NetworkUtils.java
com.ternup.caddisfly.util.PhotoHandler.java
com.ternup.caddisfly.util.PreferencesHelper.java
com.ternup.caddisfly.util.PreferencesUtils.java
com.ternup.caddisfly.util.ShakeDetector.java
com.ternup.caddisfly.util.ShowCamera.java
com.ternup.caddisfly.util.TextJustifyUtils.java
com.ternup.caddisfly.util.TimeUtils.java
com.ternup.caddisfly.util.UpdateCheckTask.java
com.ternup.caddisfly.util.UpdateChecker.java
com.ternup.caddisfly.util.UpgradeCheckTask.java
com.ternup.caddisfly.util.WebClient.java
com.ternup.caddisfly.view.LineChartView.java
com.ternup.caddisfly.view.SlidingTabLayout.java
com.ternup.caddisfly.view.SlidingTabStrip.java
com.ternup.caddisfly.widget.FormEditText.java
com.ternup.caddisfly.widget.FormSpinner.java
com.ternup.caddisfly.widget.FormWidget.java
com.ternup.caddisfly.widget.MultiLineEditText.java
com.ternup.caddisfly.widget.TextViewEx.java
org.akvo.mobile.caddisfly.activity.MainActivity.java
org.akvo.mobile.caddisfly.component.CalibratePreference.java
org.akvo.mobile.caddisfly.fragment.CalibrateFragment.java
org.akvo.mobile.caddisfly.fragment.CalibrateItemFragment.java
org.akvo.mobile.caddisfly.fragment.CalibrateMessageFragment.java
org.akvo.mobile.caddisfly.fragment.HelpFragment.java
org.akvo.mobile.caddisfly.fragment.ItemFragment.java
org.akvo.mobile.caddisfly.fragment.ResultFragment.java
org.akvo.mobile.caddisfly.fragment.StartFragment.java
org.akvo.mobile.caddisfly.fragment.dummy.DummyContent.java