mirror of
https://github.com/nextcloud/android.git
synced 2024-11-25 22:55:46 +03:00
Merge pull request #3252 from nextcloud/removeActionEditText
remove class ActionEditText
This commit is contained in:
commit
8069f04766
2 changed files with 1 additions and 154 deletions
|
@ -1,144 +0,0 @@
|
|||
/**
|
||||
* ownCloud Android client application
|
||||
*
|
||||
* Copyright (C) 2012 Bartek Przybylski
|
||||
* Copyright (C) 2015 ownCloud Inc.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.owncloud.android.widgets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.support.v7.widget.AppCompatEditText;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.owncloud.android.R;
|
||||
import com.owncloud.android.lib.common.utils.Log_OC;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class ActionEditText extends AppCompatEditText {
|
||||
private String s;
|
||||
private String optionOneString;
|
||||
private int optionOneColor;
|
||||
private String optionTwoString;
|
||||
private int optionTwoColor;
|
||||
private Rect mTextBounds, mButtonRect;
|
||||
|
||||
private String badgeClickCallback;
|
||||
private Rect btn_rect;
|
||||
private static final String TAG = ActionEditText.class.getSimpleName();
|
||||
|
||||
public ActionEditText(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
getAttrs(attrs);
|
||||
s = optionOneString;
|
||||
mTextBounds = new Rect();
|
||||
mButtonRect = new Rect();
|
||||
}
|
||||
|
||||
public ActionEditText(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
getAttrs(attrs);
|
||||
s = optionOneString;
|
||||
mTextBounds = new Rect();
|
||||
mButtonRect = new Rect();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
|
||||
Paint p = getPaint();
|
||||
|
||||
p.getTextBounds(s, 0, s.length(), mTextBounds);
|
||||
|
||||
getDrawingRect(mButtonRect);
|
||||
mButtonRect.top += 10;
|
||||
mButtonRect.bottom -= 10;
|
||||
mButtonRect.left = (int) (getWidth() - mTextBounds.width() - 18);
|
||||
mButtonRect.right = getWidth() - 10;
|
||||
btn_rect = mButtonRect;
|
||||
|
||||
if (s.equals(optionOneString)) {
|
||||
p.setColor(optionOneColor);
|
||||
} else {
|
||||
p.setColor(optionTwoColor);
|
||||
}
|
||||
canvas.drawRect(mButtonRect, p);
|
||||
p.setColor(Color.GRAY);
|
||||
|
||||
canvas.drawText(s, mButtonRect.left + 3, mButtonRect.bottom
|
||||
- (mTextBounds.height() / 2), p);
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
int touchX = (int) event.getX();
|
||||
int touchY = (int) event.getY();
|
||||
boolean r = super.onTouchEvent(event);
|
||||
if (event.getAction() == MotionEvent.ACTION_UP && btn_rect.contains(touchX, touchY)) {
|
||||
if (s.equals(optionTwoString)) {
|
||||
s = optionOneString;
|
||||
} else {
|
||||
s = optionTwoString;
|
||||
}
|
||||
if (badgeClickCallback != null) {
|
||||
@SuppressWarnings("rawtypes")
|
||||
Class[] paramtypes = new Class[2];
|
||||
paramtypes[0] = android.view.View.class;
|
||||
paramtypes[1] = String.class;
|
||||
Method method;
|
||||
try {
|
||||
|
||||
method = getContext().getClass().getMethod(
|
||||
badgeClickCallback, paramtypes);
|
||||
method.invoke(getContext(), this, s);
|
||||
|
||||
} catch (NoSuchMethodException | IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
|
||||
Log_OC.d(TAG, e.getMessage(), e);
|
||||
}
|
||||
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
private void getAttrs(AttributeSet attr) {
|
||||
TypedArray a = getContext().obtainStyledAttributes(attr,
|
||||
R.styleable.ActionEditText);
|
||||
optionOneString = a
|
||||
.getString(R.styleable.ActionEditText_optionOneString);
|
||||
optionTwoString = a
|
||||
.getString(R.styleable.ActionEditText_optionTwoString);
|
||||
optionOneColor = a.getColor(R.styleable.ActionEditText_optionOneColor,
|
||||
0x00ff00);
|
||||
optionTwoColor = a.getColor(R.styleable.ActionEditText_optionTwoColor,
|
||||
0xff0000);
|
||||
badgeClickCallback = a
|
||||
.getString(R.styleable.ActionEditText_onBadgeClick);
|
||||
a.recycle();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<declare-styleable name="ActionEditText">
|
||||
<attr name="optionOneString" format="string" />
|
||||
<attr name="optionOneColor" format="color" />
|
||||
<attr name="optionTwoString" format="string" />
|
||||
<attr name="optionTwoColor" format="color" />
|
||||
<attr name="onBadgeClick" format="string" />
|
||||
</declare-styleable>
|
||||
|
||||
<string-array name="pref_behaviour_entries" translatable="false">
|
||||
<item>@string/pref_behaviour_entries_keep_file</item>
|
||||
<item>@string/pref_behaviour_entries_move</item>
|
||||
|
@ -20,4 +11,4 @@
|
|||
<item>LOCAL_BEHAVIOUR_MOVE</item>
|
||||
<item>LOCAL_BEHAVIOUR_DELETE</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue