From 2837b21a8654bd95183754ac9663d1ca32caef2c Mon Sep 17 00:00:00 2001 From: jendib Date: Wed, 26 Nov 2014 23:30:25 +0100 Subject: [PATCH] Android: init document edit activity --- docs-android/app/app.iml | 3 +- docs-android/app/build.gradle | 4 +- .../app/libs/tokenautocomplete-1.2.1.jar | Bin 0 -> 36714 bytes docs-android/app/src/main/AndroidManifest.xml | 5 + .../com/sismics/docs/MainApplication.java | 2 + .../docs/activity/DocumentEditActivity.java | 56 ++++ .../docs/fragment/DocListFragment.java | 12 + .../sismics/docs/ui/view/DatePickerView.java | 46 +++ .../docs/ui/view/FloatingActionButton.java | 268 ------------------ .../src/main/res/layout/doc_list_fragment.xml | 2 +- .../res/layout/document_edit_activity.xml | 63 ++++ .../app/src/main/res/values/strings.xml | 1 + .../gradle/wrapper/gradle-wrapper.properties | 4 +- 13 files changed, 192 insertions(+), 274 deletions(-) create mode 100644 docs-android/app/libs/tokenautocomplete-1.2.1.jar create mode 100644 docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java create mode 100644 docs-android/app/src/main/java/com/sismics/docs/ui/view/DatePickerView.java delete mode 100644 docs-android/app/src/main/java/com/sismics/docs/ui/view/FloatingActionButton.java create mode 100644 docs-android/app/src/main/res/layout/document_edit_activity.xml diff --git a/docs-android/app/app.iml b/docs-android/app/app.iml index 55cf428a..46bcd543 100644 --- a/docs-android/app/app.iml +++ b/docs-android/app/app.iml @@ -98,13 +98,14 @@ - + + diff --git a/docs-android/app/build.gradle b/docs-android/app/build.gradle index 710b9bf4..31b88246 100644 --- a/docs-android/app/build.gradle +++ b/docs-android/app/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.14.4' + classpath 'com.android.tools.build:gradle:1.0.0-rc1' } } apply plugin: 'com.android.application' @@ -36,5 +36,5 @@ dependencies { compile 'com.loopj.android:android-async-http:1.4.6' compile 'it.sephiroth.android.library.imagezoom:imagezoom:1.0.5' compile 'de.greenrobot:eventbus:2.4.0' - compile 'com.shamanland:fab:0.0.5' + compile 'com.shamanland:fab:0.0.6' } diff --git a/docs-android/app/libs/tokenautocomplete-1.2.1.jar b/docs-android/app/libs/tokenautocomplete-1.2.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..61424706c1065dae835c42a230a6a6973b859f5c GIT binary patch literal 36714 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 literal 0 HcmV?d00001 diff --git a/docs-android/app/src/main/AndroidManifest.xml b/docs-android/app/src/main/AndroidManifest.xml index 6719ebd1..7f75291e 100644 --- a/docs-android/app/src/main/AndroidManifest.xml +++ b/docs-android/app/src/main/AndroidManifest.xml @@ -37,6 +37,11 @@ android:label="" android:logo="@drawable/ic_launcher"> + + diff --git a/docs-android/app/src/main/java/com/sismics/docs/MainApplication.java b/docs-android/app/src/main/java/com/sismics/docs/MainApplication.java index 14af4c09..d6bda7e1 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/MainApplication.java +++ b/docs-android/app/src/main/java/com/sismics/docs/MainApplication.java @@ -23,6 +23,8 @@ public class MainApplication extends Application { // TODO Fullscreen preview // TODO Caching preferences // TODO Edit sharing + // TODO Documents adding/editing + // TODO Files adding/deleting super.onCreate(); } diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java new file mode 100644 index 00000000..24661bb2 --- /dev/null +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java @@ -0,0 +1,56 @@ +package com.sismics.docs.activity; + +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; +import android.view.MenuItem; +import android.widget.ArrayAdapter; +import android.widget.MultiAutoCompleteTextView; +import android.widget.Spinner; + +import com.sismics.docs.R; + +/** + * Document edition activity. + * + * @author bgamard. + */ +public class DocumentEditActivity extends ActionBarActivity { + @Override + protected void onCreate(Bundle args) { + super.onCreate(args); + + // Handle activity context + if (getIntent() == null) { + finish(); + return; + } + + // Setup the activity + setContentView(R.layout.document_edit_activity); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); + } + + Spinner languageSpinner = (Spinner) findViewById(R.id.languageSpinner); + languageSpinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, + new String[] { "French", "English", "Japanese" })); + + MultiAutoCompleteTextView tagsEditText = (MultiAutoCompleteTextView) findViewById(R.id.tagsEditText); + tagsEditText.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, + new String[] { "Caluire", "Appartement", "Banque", "Assurance" })); + tagsEditText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + + default: + return super.onOptionsItemSelected(item); + } + } +} diff --git a/docs-android/app/src/main/java/com/sismics/docs/fragment/DocListFragment.java b/docs-android/app/src/main/java/com/sismics/docs/fragment/DocListFragment.java index b43256c8..a862e9d6 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/fragment/DocListFragment.java +++ b/docs-android/app/src/main/java/com/sismics/docs/fragment/DocListFragment.java @@ -9,11 +9,13 @@ import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; import com.sismics.docs.R; import com.sismics.docs.activity.DocumentActivity; +import com.sismics.docs.activity.DocumentEditActivity; import com.sismics.docs.adapter.DocListAdapter; import com.sismics.docs.event.SearchEvent; import com.sismics.docs.listener.JsonHttpResponseHandler; @@ -114,6 +116,16 @@ public class DocListFragment extends Fragment { } }); + // Add document button + ImageButton addDocumentButton = (ImageButton) view.findViewById(R.id.addDocumentButton); + addDocumentButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), DocumentEditActivity.class); + startActivityForResult(intent, 1); + } + }); + // Grab the documents loadDocuments(view, true); diff --git a/docs-android/app/src/main/java/com/sismics/docs/ui/view/DatePickerView.java b/docs-android/app/src/main/java/com/sismics/docs/ui/view/DatePickerView.java new file mode 100644 index 00000000..974aa9e0 --- /dev/null +++ b/docs-android/app/src/main/java/com/sismics/docs/ui/view/DatePickerView.java @@ -0,0 +1,46 @@ +package com.sismics.docs.ui.view; + +import android.app.DatePickerDialog; +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.DatePicker; +import android.widget.TextView; + +import java.util.Calendar; + +public class DatePickerView extends TextView implements DatePickerDialog.OnDateSetListener{ + + public DatePickerView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + public DatePickerView(Context context, AttributeSet attrs) { + super(context, attrs); + setAttributes(); + } + + public DatePickerView(Context context) { + super(context); + setAttributes(); + } + + private void setAttributes() { + setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + final Calendar calendar = Calendar.getInstance(); + new DatePickerDialog( + DatePickerView.this.getContext(), DatePickerView.this, + calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH)).show(); + } + }); + } + + @Override + public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { + setText(String.format("%s/%s/%s", monthOfYear, dayOfMonth, year)); + } +} \ No newline at end of file diff --git a/docs-android/app/src/main/java/com/sismics/docs/ui/view/FloatingActionButton.java b/docs-android/app/src/main/java/com/sismics/docs/ui/view/FloatingActionButton.java deleted file mode 100644 index 0fde5338..00000000 --- a/docs-android/app/src/main/java/com/sismics/docs/ui/view/FloatingActionButton.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.sismics.docs.ui.view; - -import android.content.Context; -import android.content.res.ColorStateList; -import android.content.res.Resources; -import android.content.res.TypedArray; -import android.graphics.Color; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.GradientDrawable; -import android.graphics.drawable.LayerDrawable; -import android.os.Build; -import android.util.AttributeSet; -import android.widget.ImageButton; -import android.widget.ImageView; - -/** - * A circular button made of paper that lifts and emits ink reactions on press. - *

- * This widget supports two sizes: {@link #SIZE_NORMAL} and {@link #SIZE_MINI} - * according to Promoted Actions pattern. - *

- * Like an {@link ImageView} this widget require {@code android:src} attribute. - * According to official documentation this drawable should be not more than {@code 24dp}. - *

- * Use theme to customize all floating buttons in your app: - *

- * Declare own style: - *

- * <style name="AppTheme.Fab" parent="FloatingActionButton">
- *   <item name="floatingActionButtonColor">@color/my_fab_color</item>
- * </style>
- * 
- * Link this style in your theme: - *
- * <style name="AppTheme" parent="android:Theme">
- *   <item name="floatingActionButtonStyle">@style/AppTheme.Fab</item>
- * </style>
- * 
- *

- * Customizing in layout.xml: - *

- * <com.shamanland.fab.FloatingActionButton
- *   android:layout_width="wrap_content"
- *   android:layout_height="wrap_content"
- *   android:src="@drawable/ic_action_my"
- *   app:floatingActionButtonColor="@color/my_fab_color"
- *   app:floatingActionButtonSize="mini"
- *   />
- * 
- *

- * Customizing in java-code: - *

- * FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
- * fab.setSize(FloatingActionButton.SIZE_MINI);
- * fab.setColor(Color.RED);
- * // NOTE invoke this method after setting new values!
- * fab.initBackground();
- * // NOTE standard method of ImageView
- * fab.setImageResource(R.drawable.ic_action_my);
- * 
- */ -public class FloatingActionButton extends ImageButton { - /** - * Constant representing normal size {@code 56dp}. Value: 0x0 - */ - public static final int SIZE_NORMAL = 0; - - /** - * Constant representing mini size {@code 40dp}. Value: 0x1 - */ - public static final int SIZE_MINI = 1; - - private int mSize; - private int mColor; - private ColorStateList mColorStateList; - - private GradientDrawable mCircleDrawable; - - /** - * Gets abstract size of this button. - * - * @return {@link #SIZE_NORMAL} or {@link #SIZE_MINI} - */ - public int getSize() { - return mSize; - } - - /** - * Sets abstract size for this button. - *

- * Xml attribute: {@code app:floatingActionButtonSize} - * - * @param size {@link #SIZE_NORMAL} or {@link #SIZE_MINI} - */ - public void setSize(int size) { - mSize = size; - } - - /** - * Gets background color of this button. - * - * @return color - */ - public int getColor() { - return mColor; - } - - /** - * Sets background color for this button. - *

- * Xml attribute: {@code app:floatingActionButtonColor} - * - * @param color color - */ - public void setColor(int color) { - mColor = color; - } - - /** - * Gets color state list used as background for this button. - * - * @return may be null - */ - public ColorStateList getColorStateList() { - return mColorStateList; - } - - /** - * Sets color state list as background for this button. - *

- * Xml attribute: {@code app:floatingActionButtonColor} - * - * @param colorStateList color - */ - public void setColorStateList(ColorStateList colorStateList) { - mColorStateList = colorStateList; - } - - public FloatingActionButton(Context context) { - super(context); - init(context, null, 0); - } - - public FloatingActionButton(Context context, AttributeSet attrs) { - super(context, attrs); - init(context, attrs, com.shamanland.fab.R.attr.floatingActionButtonStyle); - } - - public FloatingActionButton(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - init(context, attrs, defStyle); - } - - private void init(Context context, AttributeSet attrs, int defStyle) { - TypedArray a; - - try { - if (isInEditMode()) { - return; - } - - if (attrs == null) { - return; - } - - Resources.Theme theme = context.getTheme(); - if (theme == null) { - return; - } - - a = theme.obtainStyledAttributes(attrs, com.shamanland.fab.R.styleable.FloatingActionButton, defStyle, com.shamanland.fab.R.style.FloatingActionButton_Dark); - if (a == null) { - return; - } - } finally { - mSize = SIZE_NORMAL; - mColor = Color.GRAY; - mColorStateList = null; - } - - try { - initAttrs(a); - } finally { - a.recycle(); - } - - initBackground(); - } - - private void initAttrs(TypedArray a) { - setSize(a.getInteger(com.shamanland.fab.R.styleable.FloatingActionButton_floatingActionButtonSize, SIZE_NORMAL)); - setColor(a.getColor(com.shamanland.fab.R.styleable.FloatingActionButton_floatingActionButtonColor, Color.GRAY)); - setColorStateList(a.getColorStateList(com.shamanland.fab.R.styleable.FloatingActionButton_floatingActionButtonColor)); - } - - /** - * Inflate and initialize background drawable for this view with arguments - * inflated from xml or specified using {@link #setSize(int)} or {@link #setColor(int)} - *

- * Invoked from constructor, but it's allowed to invoke this method manually from code. - */ - public void initBackground() { - final int backgroundId; - - if (mSize == SIZE_MINI) { - backgroundId = com.shamanland.fab.R.drawable.com_shamanland_fab_circle_mini; - } else { - backgroundId = com.shamanland.fab.R.drawable.com_shamanland_fab_circle_normal; - } - - Drawable background = getResources().getDrawable(backgroundId); - - if (background instanceof LayerDrawable) { - LayerDrawable layers = (LayerDrawable) background; - if (layers.getNumberOfLayers() == 2) { - Drawable shadow = layers.getDrawable(0); - Drawable circle = layers.getDrawable(1); - - if (shadow instanceof GradientDrawable) { - ((GradientDrawable) shadow.mutate()).setGradientRadius(getShadowRadius(shadow, circle)); - } - - if (circle instanceof GradientDrawable) { - mCircleDrawable = (GradientDrawable) circle.mutate(); - mCircleDrawable.setColor(mColor); - } - } - } - - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { - //noinspection deprecation - setBackgroundDrawable(background); - } else { - setBackground(background); - } - } - - @Override - protected void drawableStateChanged() { - super.drawableStateChanged(); - - if (mCircleDrawable != null && mColorStateList != null) { - mCircleDrawable.setColor(mColorStateList.getColorForState(getDrawableState(), mColor)); - - // NOTE maybe this line is required only for Gingerbread - invalidate(); - } - } - - /** - * Calculates required radius of shadow. - * - * @param shadow underlay drawable - * @param circle overlay drawable - * @return calculated radius, always >= 1 - */ - protected static int getShadowRadius(Drawable shadow, Drawable circle) { - int radius = 0; - - if (shadow != null && circle != null) { - Rect rect = new Rect(); - radius = (circle.getIntrinsicWidth() + (shadow.getPadding(rect) ? rect.left + rect.right : 0)) / 2; - } - - return Math.max(1, radius); - } -} \ No newline at end of file diff --git a/docs-android/app/src/main/res/layout/doc_list_fragment.xml b/docs-android/app/src/main/res/layout/doc_list_fragment.xml index 3b9104f2..3d781fde 100644 --- a/docs-android/app/src/main/res/layout/doc_list_fragment.xml +++ b/docs-android/app/src/main/res/layout/doc_list_fragment.xml @@ -37,7 +37,7 @@ android:textSize="16sp" android:layout_centerInParent="true"/> - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs-android/app/src/main/res/values/strings.xml b/docs-android/app/src/main/res/values/strings.xml index 3c9ac83e..45a61499 100644 --- a/docs-android/app/src/main/res/values/strings.xml +++ b/docs-android/app/src/main/res/values/strings.xml @@ -41,5 +41,6 @@ Error loading documents No files Error loading files + New document diff --git a/docs-android/gradle/wrapper/gradle-wrapper.properties b/docs-android/gradle/wrapper/gradle-wrapper.properties index 5369550e..695bbdaa 100644 --- a/docs-android/gradle/wrapper/gradle-wrapper.properties +++ b/docs-android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 18 23:58:08 CET 2014 +#Wed Nov 26 21:58:48 CET 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip