mirror of
https://github.com/sismics/docs.git
synced 2024-11-22 14:07:55 +01:00
Android: init document edit activity
This commit is contained in:
parent
5666d9b8b5
commit
2837b21a86
@ -98,13 +98,14 @@
|
|||||||
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
|
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" exported="" name="recyclerview-v7-21.0.0" level="project" />
|
<orderEntry type="library" exported="" name="recyclerview-v7-21.0.0" level="project" />
|
||||||
<orderEntry type="library" exported="" name="fab-0.0.5" level="project" />
|
<orderEntry type="library" exported="" name="fab-0.0.6" level="project" />
|
||||||
<orderEntry type="library" exported="" name="android-easing-1.0.3" level="project" />
|
<orderEntry type="library" exported="" name="android-easing-1.0.3" level="project" />
|
||||||
<orderEntry type="library" exported="" name="support-annotations-21.0.2" level="project" />
|
<orderEntry type="library" exported="" name="support-annotations-21.0.2" level="project" />
|
||||||
<orderEntry type="library" exported="" name="imagezoom-1.0.5" level="project" />
|
<orderEntry type="library" exported="" name="imagezoom-1.0.5" level="project" />
|
||||||
<orderEntry type="library" exported="" name="support-v4-21.0.2" level="project" />
|
<orderEntry type="library" exported="" name="support-v4-21.0.2" level="project" />
|
||||||
<orderEntry type="library" exported="" name="eventbus-2.4.0" level="project" />
|
<orderEntry type="library" exported="" name="eventbus-2.4.0" level="project" />
|
||||||
<orderEntry type="library" exported="" name="android-query.0.26.8" level="project" />
|
<orderEntry type="library" exported="" name="android-query.0.26.8" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="tokenautocomplete-1.2.1" level="project" />
|
||||||
<orderEntry type="library" exported="" name="appcompat-v7-21.0.2" level="project" />
|
<orderEntry type="library" exported="" name="appcompat-v7-21.0.2" level="project" />
|
||||||
<orderEntry type="library" exported="" name="android-async-http-1.4.6" level="project" />
|
<orderEntry type="library" exported="" name="android-async-http-1.4.6" level="project" />
|
||||||
</component>
|
</component>
|
||||||
|
@ -3,7 +3,7 @@ buildscript {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
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'
|
apply plugin: 'com.android.application'
|
||||||
@ -36,5 +36,5 @@ dependencies {
|
|||||||
compile 'com.loopj.android:android-async-http:1.4.6'
|
compile 'com.loopj.android:android-async-http:1.4.6'
|
||||||
compile 'it.sephiroth.android.library.imagezoom:imagezoom:1.0.5'
|
compile 'it.sephiroth.android.library.imagezoom:imagezoom:1.0.5'
|
||||||
compile 'de.greenrobot:eventbus:2.4.0'
|
compile 'de.greenrobot:eventbus:2.4.0'
|
||||||
compile 'com.shamanland:fab:0.0.5'
|
compile 'com.shamanland:fab:0.0.6'
|
||||||
}
|
}
|
||||||
|
BIN
docs-android/app/libs/tokenautocomplete-1.2.1.jar
Normal file
BIN
docs-android/app/libs/tokenautocomplete-1.2.1.jar
Normal file
Binary file not shown.
@ -37,6 +37,11 @@
|
|||||||
android:label=""
|
android:label=""
|
||||||
android:logo="@drawable/ic_launcher">
|
android:logo="@drawable/ic_launcher">
|
||||||
</activity>
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name=".activity.DocumentEditActivity"
|
||||||
|
android:label="@string/new_document"
|
||||||
|
android:logo="@drawable/ic_launcher">
|
||||||
|
</activity>
|
||||||
<provider android:name=".provider.RecentSuggestionsProvider"
|
<provider android:name=".provider.RecentSuggestionsProvider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:authorities="com.sismics.docs.provider.RecentSuggestionsProvider" />
|
android:authorities="com.sismics.docs.provider.RecentSuggestionsProvider" />
|
||||||
|
@ -23,6 +23,8 @@ public class MainApplication extends Application {
|
|||||||
// TODO Fullscreen preview
|
// TODO Fullscreen preview
|
||||||
// TODO Caching preferences
|
// TODO Caching preferences
|
||||||
// TODO Edit sharing
|
// TODO Edit sharing
|
||||||
|
// TODO Documents adding/editing
|
||||||
|
// TODO Files adding/deleting
|
||||||
|
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,11 +9,13 @@ import android.support.v7.widget.RecyclerView;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.sismics.docs.R;
|
import com.sismics.docs.R;
|
||||||
import com.sismics.docs.activity.DocumentActivity;
|
import com.sismics.docs.activity.DocumentActivity;
|
||||||
|
import com.sismics.docs.activity.DocumentEditActivity;
|
||||||
import com.sismics.docs.adapter.DocListAdapter;
|
import com.sismics.docs.adapter.DocListAdapter;
|
||||||
import com.sismics.docs.event.SearchEvent;
|
import com.sismics.docs.event.SearchEvent;
|
||||||
import com.sismics.docs.listener.JsonHttpResponseHandler;
|
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
|
// Grab the documents
|
||||||
loadDocuments(view, true);
|
loadDocuments(view, true);
|
||||||
|
|
||||||
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
@ -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.
|
|
||||||
* <p/>
|
|
||||||
* This widget supports two sizes: {@link #SIZE_NORMAL} and {@link #SIZE_MINI}
|
|
||||||
* according to <a href="http://www.google.com/design/spec/patterns/promoted-actions.html">Promoted Actions</a> pattern.
|
|
||||||
* <p/>
|
|
||||||
* Like an {@link ImageView} this widget require {@code android:src} attribute.
|
|
||||||
* According to official documentation this drawable should be not more than {@code 24dp}.
|
|
||||||
* <p/>
|
|
||||||
* Use theme to customize all floating buttons in your app:
|
|
||||||
* <p/>
|
|
||||||
* Declare own style:
|
|
||||||
* <pre>
|
|
||||||
* <style name="AppTheme.Fab" parent="FloatingActionButton">
|
|
||||||
* <item name="floatingActionButtonColor">@color/my_fab_color</item>
|
|
||||||
* </style>
|
|
||||||
* </pre>
|
|
||||||
* Link this style in your theme:
|
|
||||||
* <pre>
|
|
||||||
* <style name="AppTheme" parent="android:Theme">
|
|
||||||
* <item name="floatingActionButtonStyle">@style/AppTheme.Fab</item>
|
|
||||||
* </style>
|
|
||||||
* </pre>
|
|
||||||
* <p/>
|
|
||||||
* Customizing in layout.xml:
|
|
||||||
* <pre>
|
|
||||||
* <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"
|
|
||||||
* />
|
|
||||||
* </pre>
|
|
||||||
* <p/>
|
|
||||||
* Customizing in java-code:
|
|
||||||
* <pre>
|
|
||||||
* 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);
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
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.
|
|
||||||
* <p/>
|
|
||||||
* 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.
|
|
||||||
* <p/>
|
|
||||||
* 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.
|
|
||||||
* <p/>
|
|
||||||
* 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)}
|
|
||||||
* <p/>
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -37,7 +37,7 @@
|
|||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:layout_centerInParent="true"/>
|
android:layout_centerInParent="true"/>
|
||||||
|
|
||||||
<com.sismics.docs.ui.view.FloatingActionButton
|
<com.shamanland.fab.FloatingActionButton
|
||||||
android:id="@+id/addDocumentButton"
|
android:id="@+id/addDocumentButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/titleEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:hint="Title"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/descriptionEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="textMultiLine"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:hint="Description"
|
||||||
|
android:lines="2"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:text="Creation date"
|
||||||
|
android:textColor="#9f9f9f"
|
||||||
|
android:fontFamily="sans-serif"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:padding="16dp"/>
|
||||||
|
|
||||||
|
<com.sismics.docs.ui.view.DatePickerView
|
||||||
|
android:id="@+id/dateEditText"
|
||||||
|
style="@android:style/Widget.DeviceDefault.Light.Spinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:text="15/11/2014"
|
||||||
|
android:padding="16dp"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/languageSpinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:padding="16dp"/>
|
||||||
|
|
||||||
|
<MultiAutoCompleteTextView
|
||||||
|
android:id="@+id/tagsEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"/>
|
||||||
|
</LinearLayout>
|
@ -41,5 +41,6 @@
|
|||||||
<string name="error_loading_documents">Error loading documents</string>
|
<string name="error_loading_documents">Error loading documents</string>
|
||||||
<string name="no_files">No files</string>
|
<string name="no_files">No files</string>
|
||||||
<string name="error_loading_files">Error loading files</string>
|
<string name="error_loading_files">Error loading files</string>
|
||||||
|
<string name="new_document">New document</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#Tue Nov 18 23:58:08 CET 2014
|
#Wed Nov 26 21:58:48 CET 2014
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user