mirror of
https://github.com/freeedcom/ai-codereviewer.git
synced 2025-06-30 21:04:16 +00:00
add project adins
This commit is contained in:
parent
ad06ac5505
commit
f8f85d679d
5299 changed files with 625430 additions and 0 deletions
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/parent_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/spinner_background" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtTaskTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@+id/imageLayout"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||
android:text="@string/title"
|
||||
android:paddingLeft="10dp"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
|
||||
</RelativeLayout>
|
|
@ -0,0 +1,31 @@
|
|||
package com.adins.mss.base.dynamicform.form.models;
|
||||
|
||||
import com.adins.mss.dao.QuestionSet;
|
||||
import com.adins.mss.foundation.questiongenerator.QuestionBean;
|
||||
|
||||
/**
|
||||
* Created by gigin.ginanjar on 11/10/2016.
|
||||
*/
|
||||
|
||||
public class LookupAnswerBean extends QuestionBean {
|
||||
public boolean canEdit;
|
||||
|
||||
public LookupAnswerBean(QuestionSet questionSet) {
|
||||
super(questionSet);
|
||||
}
|
||||
|
||||
public LookupAnswerBean(QuestionBean questionBean) {
|
||||
super(questionBean);
|
||||
setOptionAnswers(questionBean.getOptionAnswers());
|
||||
setSelectedOptionAnswers(questionBean.getSelectedOptionAnswers());
|
||||
setAnswer(questionBean.getAnswer());
|
||||
}
|
||||
|
||||
public boolean isCanEdit() {
|
||||
return canEdit;
|
||||
}
|
||||
|
||||
public void setCanEdit(boolean canEdit) {
|
||||
this.canEdit = canEdit;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@drawable/spinner_background">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtNoOrder"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||
android:text="1234567"
|
||||
android:paddingLeft="10dp"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
<TextView
|
||||
android:id="@+id/txtDivider"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||
android:text="-"
|
||||
android:paddingLeft="10dp"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
<TextView
|
||||
android:id="@+id/txtCustomerName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||
android:text="Nama Customer"
|
||||
android:paddingLeft="10dp"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
</LinearLayout>
|
|
@ -0,0 +1,137 @@
|
|||
package com.adins.mss.dao;
|
||||
|
||||
import android.database.Cursor;
|
||||
|
||||
import de.greenrobot.dao.AbstractDao;
|
||||
import de.greenrobot.dao.Property;
|
||||
import de.greenrobot.dao.internal.DaoConfig;
|
||||
import de.greenrobot.dao.database.Database;
|
||||
import de.greenrobot.dao.database.DatabaseStatement;
|
||||
|
||||
import com.adins.mss.dao.TaskSummary;
|
||||
|
||||
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
|
||||
/**
|
||||
* DAO for table "TR_TASK_SUMMARY".
|
||||
*/
|
||||
public class TaskSummaryDao extends AbstractDao<TaskSummary, String> {
|
||||
|
||||
public static final String TABLENAME = "TR_TASK_SUMMARY";
|
||||
|
||||
/**
|
||||
* Properties of entity TaskSummary.<br/>
|
||||
* Can be used for QueryBuilder and for referencing column names.
|
||||
*/
|
||||
public static class Properties {
|
||||
public final static Property Uuid_task_summary = new Property(0, String.class, "uuid_task_summary", true, "UUID_TASK_SUMMARY");
|
||||
public final static Property Uuid_task_h = new Property(1, String.class, "uuid_task_h", false, "UUID_TASK_H");
|
||||
public final static Property Uuid_user = new Property(2, String.class, "uuid_user", false, "UUID_USER");
|
||||
public final static Property Task_status = new Property(3, String.class, "task_status", false, "TASK_STATUS");
|
||||
public final static Property Dtm_crt = new Property(4, java.util.Date.class, "dtm_crt", false, "DTM_CRT");
|
||||
};
|
||||
|
||||
|
||||
public TaskSummaryDao(DaoConfig config) {
|
||||
super(config);
|
||||
}
|
||||
|
||||
public TaskSummaryDao(DaoConfig config, DaoSession daoSession) {
|
||||
super(config, daoSession);
|
||||
}
|
||||
|
||||
/** Creates the underlying database table. */
|
||||
public static void createTable(Database db, boolean ifNotExists) {
|
||||
String constraint = ifNotExists? "IF NOT EXISTS ": "";
|
||||
db.execSQL("CREATE TABLE " + constraint + "\"TR_TASK_SUMMARY\" (" + //
|
||||
"\"UUID_TASK_SUMMARY\" TEXT PRIMARY KEY NOT NULL ," + // 0: uuid_task_summary
|
||||
"\"UUID_TASK_H\" TEXT," + // 1: uuid_task_h
|
||||
"\"UUID_USER\" TEXT," + // 2: uuid_user
|
||||
"\"TASK_STATUS\" TEXT," + // 3: task_status
|
||||
"\"DTM_CRT\" INTEGER);"); // 4: dtm_crt
|
||||
}
|
||||
|
||||
/** Drops the underlying database table. */
|
||||
public static void dropTable(Database db, boolean ifExists) {
|
||||
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"TR_TASK_SUMMARY\"";
|
||||
db.execSQL(sql);
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
protected void bindValues(DatabaseStatement stmt, TaskSummary entity) {
|
||||
stmt.clearBindings();
|
||||
stmt.bindString(1, entity.getUuid_task_summary());
|
||||
|
||||
String uuid_task_h = entity.getUuid_task_h();
|
||||
if (uuid_task_h != null) {
|
||||
stmt.bindString(2, uuid_task_h);
|
||||
}
|
||||
|
||||
String uuid_user = entity.getUuid_user();
|
||||
if (uuid_user != null) {
|
||||
stmt.bindString(3, uuid_user);
|
||||
}
|
||||
|
||||
String task_status = entity.getTask_status();
|
||||
if (task_status != null) {
|
||||
stmt.bindString(4, task_status);
|
||||
}
|
||||
|
||||
java.util.Date dtm_crt = entity.getDtm_crt();
|
||||
if (dtm_crt != null) {
|
||||
stmt.bindLong(5, dtm_crt.getTime());
|
||||
}
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
public String readKey(Cursor cursor, int offset) {
|
||||
return cursor.getString(offset + 0);
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
public TaskSummary readEntity(Cursor cursor, int offset) {
|
||||
TaskSummary entity = new TaskSummary( //
|
||||
cursor.getString(offset + 0), // uuid_task_summary
|
||||
cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // uuid_task_h
|
||||
cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // uuid_user
|
||||
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // task_status
|
||||
cursor.isNull(offset + 4) ? null : new java.util.Date(cursor.getLong(offset + 4)) // dtm_crt
|
||||
);
|
||||
return entity;
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
public void readEntity(Cursor cursor, TaskSummary entity, int offset) {
|
||||
entity.setUuid_task_summary(cursor.getString(offset + 0));
|
||||
entity.setUuid_task_h(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
|
||||
entity.setUuid_user(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
|
||||
entity.setTask_status(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
|
||||
entity.setDtm_crt(cursor.isNull(offset + 4) ? null : new java.util.Date(cursor.getLong(offset + 4)));
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
protected String updateKeyAfterInsert(TaskSummary entity, long rowId) {
|
||||
return entity.getUuid_task_summary();
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
public String getKey(TaskSummary entity) {
|
||||
if(entity != null) {
|
||||
return entity.getUuid_task_summary();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
@Override
|
||||
protected boolean isEntityUpdateable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.adins.mss.foundation.questiongenerator.form.QuestionView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/questionMultipleLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="0. label"
|
||||
android:id="@+id/questionMultipleLabel" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/questionMultipleEmpty"
|
||||
android:layout_width="match_parent"
|
||||
android:text="@string/lookup_not_found"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:id="@+id/multipleQuestionListLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"/>
|
||||
<EditText
|
||||
android:id="@+id/questionMultipleDescription"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content" />
|
||||
</com.adins.mss.foundation.questiongenerator.form.QuestionView>
|
|
@ -0,0 +1,276 @@
|
|||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.adins.libs.nineoldandroids.animation;
|
||||
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* This is the superclass for classes which provide basic support for animations which can be
|
||||
* started, ended, and have <code>AnimatorListeners</code> added to them.
|
||||
*/
|
||||
public abstract class Animator implements Cloneable {
|
||||
|
||||
|
||||
/**
|
||||
* The set of listeners to be sent events through the life of an animation.
|
||||
*/
|
||||
ArrayList<AnimatorListener> mListeners = null;
|
||||
|
||||
/**
|
||||
* Starts this animation. If the animation has a nonzero startDelay, the animation will start
|
||||
* running after that delay elapses. A non-delayed animation will have its initial
|
||||
* value(s) set immediately, followed by calls to
|
||||
* {@link AnimatorListener#onAnimationStart(Animator)} for any listeners of this animator.
|
||||
* <p>
|
||||
* <p>The animation started by calling this method will be run on the thread that called
|
||||
* this method. This thread should have a Looper on it (a runtime exception will be thrown if
|
||||
* this is not the case). Also, if the animation will animate
|
||||
* properties of objects in the view hierarchy, then the calling thread should be the UI
|
||||
* thread for that view hierarchy.</p>
|
||||
*/
|
||||
public void start() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels the animation. Unlike {@link #end()}, <code>cancel()</code> causes the animation to
|
||||
* stop in its tracks, sending an
|
||||
* {@link android.animation.Animator.AnimatorListener#onAnimationCancel(Animator)} to
|
||||
* its listeners, followed by an
|
||||
* {@link android.animation.Animator.AnimatorListener#onAnimationEnd(Animator)} message.
|
||||
* <p>
|
||||
* <p>This method must be called on the thread that is running the animation.</p>
|
||||
*/
|
||||
public void cancel() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Ends the animation. This causes the animation to assign the end value of the property being
|
||||
* animated, then calling the
|
||||
* {@link android.animation.Animator.AnimatorListener#onAnimationEnd(Animator)} method on
|
||||
* its listeners.
|
||||
* <p>
|
||||
* <p>This method must be called on the thread that is running the animation.</p>
|
||||
*/
|
||||
public void end() {
|
||||
}
|
||||
|
||||
/**
|
||||
* The amount of time, in milliseconds, to delay starting the animation after
|
||||
* {@link #start()} is called.
|
||||
*
|
||||
* @return the number of milliseconds to delay running the animation
|
||||
*/
|
||||
public abstract long getStartDelay();
|
||||
|
||||
/**
|
||||
* The amount of time, in milliseconds, to delay starting the animation after
|
||||
* {@link #start()} is called.
|
||||
*
|
||||
* @param startDelay The amount of the delay, in milliseconds
|
||||
*/
|
||||
public abstract void setStartDelay(long startDelay);
|
||||
|
||||
/**
|
||||
* Gets the length of the animation.
|
||||
*
|
||||
* @return The length of the animation, in milliseconds.
|
||||
*/
|
||||
public abstract long getDuration();
|
||||
|
||||
/**
|
||||
* Sets the length of the animation.
|
||||
*
|
||||
* @param duration The length of the animation, in milliseconds.
|
||||
*/
|
||||
public abstract Animator setDuration(long duration);
|
||||
|
||||
/**
|
||||
* The time interpolator used in calculating the elapsed fraction of this animation. The
|
||||
* interpolator determines whether the animation runs with linear or non-linear motion,
|
||||
* such as acceleration and deceleration. The default value is
|
||||
* {@link android.view.animation.AccelerateDecelerateInterpolator}
|
||||
*
|
||||
* @param value the interpolator to be used by this animation
|
||||
*/
|
||||
public abstract void setInterpolator(/*Time*/Interpolator value);
|
||||
|
||||
/**
|
||||
* Returns whether this Animator is currently running (having been started and gone past any
|
||||
* initial startDelay period and not yet ended).
|
||||
*
|
||||
* @return Whether the Animator is running.
|
||||
*/
|
||||
public abstract boolean isRunning();
|
||||
|
||||
/**
|
||||
* Returns whether this Animator has been started and not yet ended. This state is a superset
|
||||
* of the state of {@link #isRunning()}, because an Animator with a nonzero
|
||||
* {@link #getStartDelay() startDelay} will return true for {@link #isStarted()} during the
|
||||
* delay phase, whereas {@link #isRunning()} will return true only after the delay phase
|
||||
* is complete.
|
||||
*
|
||||
* @return Whether the Animator has been started and not yet ended.
|
||||
*/
|
||||
public boolean isStarted() {
|
||||
// Default method returns value for isRunning(). Subclasses should override to return a
|
||||
// real value.
|
||||
return isRunning();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a listener to the set of listeners that are sent events through the life of an
|
||||
* animation, such as start, repeat, and end.
|
||||
*
|
||||
* @param listener the listener to be added to the current set of listeners for this animation.
|
||||
*/
|
||||
public void addListener(AnimatorListener listener) {
|
||||
if (mListeners == null) {
|
||||
mListeners = new ArrayList<AnimatorListener>();
|
||||
}
|
||||
mListeners.add(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a listener from the set listening to this animation.
|
||||
*
|
||||
* @param listener the listener to be removed from the current set of listeners for this
|
||||
* animation.
|
||||
*/
|
||||
public void removeListener(AnimatorListener listener) {
|
||||
if (mListeners == null) {
|
||||
return;
|
||||
}
|
||||
mListeners.remove(listener);
|
||||
if (mListeners.size() == 0) {
|
||||
mListeners = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the set of {@link android.animation.Animator.AnimatorListener} objects that are currently
|
||||
* listening for events on this <code>Animator</code> object.
|
||||
*
|
||||
* @return ArrayList<AnimatorListener> The set of listeners.
|
||||
*/
|
||||
public ArrayList<AnimatorListener> getListeners() {
|
||||
return mListeners;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all listeners from this object. This is equivalent to calling
|
||||
* <code>getListeners()</code> followed by calling <code>clear()</code> on the
|
||||
* returned list of listeners.
|
||||
*/
|
||||
public void removeAllListeners() {
|
||||
if (mListeners != null) {
|
||||
mListeners.clear();
|
||||
mListeners = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Animator clone() {
|
||||
try {
|
||||
final Animator anim = (Animator) super.clone();
|
||||
if (mListeners != null) {
|
||||
ArrayList<AnimatorListener> oldListeners = mListeners;
|
||||
anim.mListeners = new ArrayList<AnimatorListener>();
|
||||
int numListeners = oldListeners.size();
|
||||
for (int i = 0; i < numListeners; ++i) {
|
||||
anim.mListeners.add(oldListeners.get(i));
|
||||
}
|
||||
}
|
||||
return anim;
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method tells the object to use appropriate information to extract
|
||||
* starting values for the animation. For example, a AnimatorSet object will pass
|
||||
* this call to its child objects to tell them to set up the values. A
|
||||
* ObjectAnimator object will use the information it has about its target object
|
||||
* and PropertyValuesHolder objects to get the start values for its properties.
|
||||
* An ValueAnimator object will ignore the request since it does not have enough
|
||||
* information (such as a target object) to gather these values.
|
||||
*/
|
||||
public void setupStartValues() {
|
||||
}
|
||||
|
||||
/**
|
||||
* This method tells the object to use appropriate information to extract
|
||||
* ending values for the animation. For example, a AnimatorSet object will pass
|
||||
* this call to its child objects to tell them to set up the values. A
|
||||
* ObjectAnimator object will use the information it has about its target object
|
||||
* and PropertyValuesHolder objects to get the start values for its properties.
|
||||
* An ValueAnimator object will ignore the request since it does not have enough
|
||||
* information (such as a target object) to gather these values.
|
||||
*/
|
||||
public void setupEndValues() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the target object whose property will be animated by this animation. Not all subclasses
|
||||
* operate on target objects (for example, {@link ValueAnimator}, but this method
|
||||
* is on the superclass for the convenience of dealing generically with those subclasses
|
||||
* that do handle targets.
|
||||
*
|
||||
* @param target The object being animated
|
||||
*/
|
||||
public void setTarget(Object target) {
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>An animation listener receives notifications from an animation.
|
||||
* Notifications indicate animation related events, such as the end or the
|
||||
* repetition of the animation.</p>
|
||||
*/
|
||||
public static interface AnimatorListener {
|
||||
/**
|
||||
* <p>Notifies the start of the animation.</p>
|
||||
*
|
||||
* @param animation The started animation.
|
||||
*/
|
||||
void onAnimationStart(Animator animation);
|
||||
|
||||
/**
|
||||
* <p>Notifies the end of the animation. This callback is not invoked
|
||||
* for animations with repeat count set to INFINITE.</p>
|
||||
*
|
||||
* @param animation The animation which reached its end.
|
||||
*/
|
||||
void onAnimationEnd(Animator animation);
|
||||
|
||||
/**
|
||||
* <p>Notifies the cancellation of the animation. This callback is not invoked
|
||||
* for animations with repeat count set to INFINITE.</p>
|
||||
*
|
||||
* @param animation The animation which was canceled.
|
||||
*/
|
||||
void onAnimationCancel(Animator animation);
|
||||
|
||||
/**
|
||||
* <p>Notifies the repetition of the animation.</p>
|
||||
*
|
||||
* @param animation The animation which was repeated.
|
||||
*/
|
||||
void onAnimationRepeat(Animator animation);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package org.acra;
|
||||
|
||||
/**
|
||||
* The interface can be used with
|
||||
* {@link ErrorReporter#setExceptionHandlerInitializer(ExceptionHandlerInitializer)}
|
||||
* to add an additional initialization of the {@link ErrorReporter} before
|
||||
* exception is handled.
|
||||
*
|
||||
* @see ErrorReporter#setExceptionHandlerInitializer(ExceptionHandlerInitializer)
|
||||
*/
|
||||
public interface ExceptionHandlerInitializer {
|
||||
/**
|
||||
* Called before {@link ErrorReporter} handles the Exception.
|
||||
*
|
||||
* @param reporter The {@link ErrorReporter} that will handle the exception
|
||||
*/
|
||||
void initializeExceptionHandler(ErrorReporter reporter);
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.adins.mss.base.authentication;
|
||||
|
||||
import com.adins.mss.dao.GeneralParameter;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JsonLogin extends MssResponseType {
|
||||
|
||||
@SerializedName("user")
|
||||
private User user;
|
||||
@SerializedName("listGeneralParameter")
|
||||
private List<GeneralParameter> listGeneralParameter;
|
||||
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(User user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public List<GeneralParameter> getListGeneralParameter() {
|
||||
return listGeneralParameter;
|
||||
}
|
||||
|
||||
public void setListGeneralParameter(List<GeneralParameter> listGeneralParameter) {
|
||||
this.listGeneralParameter = listGeneralParameter;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class DashboardCollResultDetail extends Fragment implements CollResultPagerAdapter.PagerDataChangeListener {
|
||||
|
||||
RecyclerView collResultList;
|
||||
private DashCollResultItemAdapter adapter;
|
||||
private TextView resultHeaderTitle;
|
||||
private ConstraintLayout titleHeader;
|
||||
|
||||
public DashboardCollResultDetail() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_dashboard_coll_result_detail, container, false);
|
||||
collResultList = view.findViewById(R.id.dashCollResultList);
|
||||
titleHeader = view.findViewById(R.id.dashCollResultListHeader);
|
||||
titleHeader.setVisibility(View.GONE);
|
||||
resultHeaderTitle = view.findViewById(R.id.dashResultHeader);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
|
||||
collResultList.setLayoutManager(linearLayoutManager);
|
||||
collResultList.setHasFixedSize(true);
|
||||
|
||||
DividerItemDecoration divDecorator = new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL);
|
||||
collResultList.addItemDecoration(divDecorator);
|
||||
adapter = new DashCollResultItemAdapter(getActivity(),new ArrayList<CollResultDetail>());
|
||||
collResultList.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPagerDataChange(int idx, List<CollResultDetail> data) {
|
||||
if(data.size() == 0){
|
||||
titleHeader.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
|
||||
titleHeader.setVisibility(View.VISIBLE);
|
||||
switch (idx){
|
||||
case 0:
|
||||
resultHeaderTitle.setText(getString(R.string.amount_paid));
|
||||
break;
|
||||
case 1:
|
||||
resultHeaderTitle.setText(getString(R.string.ptp_date));
|
||||
break;
|
||||
case 2:
|
||||
resultHeaderTitle.setText(getString(R.string.notes));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
adapter.notifyDataChange(data);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
<?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:background="@color/tv_white"
|
||||
android:layout_height="match_parent">
|
||||
<ScrollView android:layout_width="match_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:padding="8dp">
|
||||
<TextView android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/payment_history_detail"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24sp"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="8dp"
|
||||
android:orientation="horizontal">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/label_transaction_code_2"
|
||||
android:textColor="#666"
|
||||
android:textSize="15sp"/>
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=""
|
||||
android:id="@+id/transactionCode"
|
||||
android:textColor="#666"
|
||||
android:textSize="15sp"/>
|
||||
</LinearLayout>
|
||||
|
||||
<HorizontalScrollView android:id="@+id/horizontalScrollView1"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fillViewport="true">
|
||||
<TableLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:id="@+id/tablePaymentDetails">
|
||||
<TableRow android:layout_width="match_parent" android:layout_height="wrap_content"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@drawable/spinner_background">
|
||||
<TextView android:text="@string/label_no"
|
||||
android:textSize="12sp"
|
||||
android:paddingRight="6dp"
|
||||
android:paddingLeft="6dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/tv_white"
|
||||
android:textStyle="bold"/>
|
||||
<TextView android:text="@string/label_field"
|
||||
android:textSize="12sp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:minWidth="150dp"
|
||||
android:textColor="@color/tv_white"
|
||||
android:textStyle="bold"/>
|
||||
<TextView android:text="@string/label_value"
|
||||
android:textSize="12sp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:textColor="@color/tv_white"
|
||||
android:textStyle="bold"/>
|
||||
</TableRow>
|
||||
</TableLayout>
|
||||
</HorizontalScrollView>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,345 @@
|
|||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.adins.libs.nineoldandroids.animation;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.Resources.NotFoundException;
|
||||
import android.content.res.TypedArray;
|
||||
import android.content.res.XmlResourceParser;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.util.Xml;
|
||||
import android.view.animation.AnimationUtils;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* This class is used to instantiate animator XML files into Animator objects.
|
||||
* <p>
|
||||
* For performance reasons, inflation relies heavily on pre-processing of
|
||||
* XML files that is done at build time. Therefore, it is not currently possible
|
||||
* to use this inflater with an XmlPullParser over a plain XML file at runtime;
|
||||
* it only works with an XmlPullParser returned from a compiled resource (R.
|
||||
* <em>something</em> file.)
|
||||
*/
|
||||
public class AnimatorInflater {
|
||||
private static final int[] AnimatorSet = new int[]{
|
||||
/* 0 */ android.R.attr.ordering,
|
||||
};
|
||||
private static final int AnimatorSet_ordering = 0;
|
||||
|
||||
private static final int[] PropertyAnimator = new int[]{
|
||||
/* 0 */ android.R.attr.propertyName,
|
||||
};
|
||||
private static final int PropertyAnimator_propertyName = 0;
|
||||
|
||||
private static final int[] Animator = new int[]{
|
||||
/* 0 */ android.R.attr.interpolator,
|
||||
/* 1 */ android.R.attr.duration,
|
||||
/* 2 */ android.R.attr.startOffset,
|
||||
/* 3 */ android.R.attr.repeatCount,
|
||||
/* 4 */ android.R.attr.repeatMode,
|
||||
/* 5 */ android.R.attr.valueFrom,
|
||||
/* 6 */ android.R.attr.valueTo,
|
||||
/* 7 */ android.R.attr.valueType,
|
||||
};
|
||||
private static final int Animator_interpolator = 0;
|
||||
private static final int Animator_duration = 1;
|
||||
private static final int Animator_startOffset = 2;
|
||||
private static final int Animator_repeatCount = 3;
|
||||
private static final int Animator_repeatMode = 4;
|
||||
private static final int Animator_valueFrom = 5;
|
||||
private static final int Animator_valueTo = 6;
|
||||
private static final int Animator_valueType = 7;
|
||||
|
||||
/**
|
||||
* These flags are used when parsing AnimatorSet objects
|
||||
*/
|
||||
private static final int TOGETHER = 0;
|
||||
//private static final int SEQUENTIALLY = 1;
|
||||
|
||||
/**
|
||||
* Enum values used in XML attributes to indicate the value for mValueType
|
||||
*/
|
||||
private static final int VALUE_TYPE_FLOAT = 0;
|
||||
//private static final int VALUE_TYPE_INT = 1;
|
||||
//private static final int VALUE_TYPE_COLOR = 4;
|
||||
//private static final int VALUE_TYPE_CUSTOM = 5;
|
||||
|
||||
/**
|
||||
* Loads an {@link Animator} object from a resource
|
||||
*
|
||||
* @param context Application context used to access resources
|
||||
* @param id The resource id of the animation to load
|
||||
* @return The animator object reference by the specified id
|
||||
* @throws android.content.res.Resources.NotFoundException when the animation cannot be loaded
|
||||
*/
|
||||
public static Animator loadAnimator(Context context, int id)
|
||||
throws NotFoundException {
|
||||
|
||||
XmlResourceParser parser = null;
|
||||
try {
|
||||
parser = context.getResources().getAnimation(id);
|
||||
return createAnimatorFromXml(context, parser);
|
||||
} catch (XmlPullParserException ex) {
|
||||
Resources.NotFoundException rnf =
|
||||
new Resources.NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} catch (IOException ex) {
|
||||
Resources.NotFoundException rnf =
|
||||
new Resources.NotFoundException("Can't load animation resource ID #0x" +
|
||||
Integer.toHexString(id));
|
||||
rnf.initCause(ex);
|
||||
throw rnf;
|
||||
} finally {
|
||||
if (parser != null) parser.close();
|
||||
}
|
||||
}
|
||||
|
||||
private static Animator createAnimatorFromXml(Context c, XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException {
|
||||
|
||||
return createAnimatorFromXml(c, parser, Xml.asAttributeSet(parser), null, 0);
|
||||
}
|
||||
|
||||
private static Animator createAnimatorFromXml(Context c, XmlPullParser parser,
|
||||
AttributeSet attrs, AnimatorSet parent, int sequenceOrdering)
|
||||
throws XmlPullParserException, IOException {
|
||||
|
||||
Animator anim = null;
|
||||
ArrayList<Animator> childAnims = null;
|
||||
|
||||
// Make sure we are on a start tag.
|
||||
int type;
|
||||
int depth = parser.getDepth();
|
||||
|
||||
while (((type = parser.next()) != XmlPullParser.END_TAG || parser.getDepth() > depth)
|
||||
&& type != XmlPullParser.END_DOCUMENT) {
|
||||
|
||||
if (type != XmlPullParser.START_TAG) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String name = parser.getName();
|
||||
|
||||
if (name.equals("objectAnimator")) {
|
||||
anim = loadObjectAnimator(c, attrs);
|
||||
} else if (name.equals("animator")) {
|
||||
anim = loadAnimator(c, attrs, null);
|
||||
} else if (name.equals("set")) {
|
||||
anim = new AnimatorSet();
|
||||
TypedArray a = c.obtainStyledAttributes(attrs,
|
||||
/*com.android.internal.R.styleable.*/AnimatorSet);
|
||||
|
||||
TypedValue orderingValue = new TypedValue();
|
||||
a.getValue(/*com.android.internal.R.styleable.*/AnimatorSet_ordering, orderingValue);
|
||||
int ordering = orderingValue.type == TypedValue.TYPE_INT_DEC ? orderingValue.data : TOGETHER;
|
||||
|
||||
createAnimatorFromXml(c, parser, attrs, (AnimatorSet) anim, ordering);
|
||||
a.recycle();
|
||||
} else {
|
||||
throw new RuntimeException("Unknown animator name: " + parser.getName());
|
||||
}
|
||||
|
||||
if (parent != null) {
|
||||
if (childAnims == null) {
|
||||
childAnims = new ArrayList<Animator>();
|
||||
}
|
||||
childAnims.add(anim);
|
||||
}
|
||||
}
|
||||
if (parent != null && childAnims != null) {
|
||||
Animator[] animsArray = new Animator[childAnims.size()];
|
||||
int index = 0;
|
||||
for (Animator a : childAnims) {
|
||||
animsArray[index++] = a;
|
||||
}
|
||||
if (sequenceOrdering == TOGETHER) {
|
||||
parent.playTogether(animsArray);
|
||||
} else {
|
||||
parent.playSequentially(animsArray);
|
||||
}
|
||||
}
|
||||
|
||||
return anim;
|
||||
|
||||
}
|
||||
|
||||
private static ObjectAnimator loadObjectAnimator(Context context, AttributeSet attrs)
|
||||
throws NotFoundException {
|
||||
|
||||
ObjectAnimator anim = new ObjectAnimator();
|
||||
|
||||
loadAnimator(context, attrs, anim);
|
||||
|
||||
TypedArray a =
|
||||
context.obtainStyledAttributes(attrs, /*com.android.internal.R.styleable.*/PropertyAnimator);
|
||||
|
||||
String propertyName = a.getString(/*com.android.internal.R.styleable.*/PropertyAnimator_propertyName);
|
||||
|
||||
anim.setPropertyName(propertyName);
|
||||
|
||||
a.recycle();
|
||||
|
||||
return anim;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new animation whose parameters come from the specified context and
|
||||
* attributes set.
|
||||
*
|
||||
* @param context the application environment
|
||||
* @param attrs the set of attributes holding the animation parameters
|
||||
*/
|
||||
private static ValueAnimator loadAnimator(Context context, AttributeSet attrs, ValueAnimator anim)
|
||||
throws NotFoundException {
|
||||
|
||||
TypedArray a =
|
||||
context.obtainStyledAttributes(attrs, /*com.android.internal.R.styleable.*/Animator);
|
||||
|
||||
long duration = a.getInt(/*com.android.internal.R.styleable.*/Animator_duration, 0);
|
||||
|
||||
long startDelay = a.getInt(/*com.android.internal.R.styleable.*/Animator_startOffset, 0);
|
||||
|
||||
int valueType = a.getInt(/*com.android.internal.R.styleable.*/Animator_valueType,
|
||||
VALUE_TYPE_FLOAT);
|
||||
|
||||
if (anim == null) {
|
||||
anim = new ValueAnimator();
|
||||
}
|
||||
//TypeEvaluator evaluator = null;
|
||||
|
||||
int valueFromIndex = /*com.android.internal.R.styleable.*/Animator_valueFrom;
|
||||
int valueToIndex = /*com.android.internal.R.styleable.*/Animator_valueTo;
|
||||
|
||||
boolean getFloats = (valueType == VALUE_TYPE_FLOAT);
|
||||
|
||||
TypedValue tvFrom = a.peekValue(valueFromIndex);
|
||||
boolean hasFrom = (tvFrom != null);
|
||||
int fromType = hasFrom ? tvFrom.type : 0;
|
||||
TypedValue tvTo = a.peekValue(valueToIndex);
|
||||
boolean hasTo = (tvTo != null);
|
||||
int toType = hasTo ? tvTo.type : 0;
|
||||
|
||||
if ((hasFrom && (fromType >= TypedValue.TYPE_FIRST_COLOR_INT) &&
|
||||
(fromType <= TypedValue.TYPE_LAST_COLOR_INT)) ||
|
||||
(hasTo && (toType >= TypedValue.TYPE_FIRST_COLOR_INT) &&
|
||||
(toType <= TypedValue.TYPE_LAST_COLOR_INT))) {
|
||||
// special case for colors: ignore valueType and get ints
|
||||
getFloats = false;
|
||||
anim.setEvaluator(new ArgbEvaluator());
|
||||
}
|
||||
|
||||
if (getFloats) {
|
||||
float valueFrom;
|
||||
float valueTo;
|
||||
if (hasFrom) {
|
||||
if (fromType == TypedValue.TYPE_DIMENSION) {
|
||||
valueFrom = a.getDimension(valueFromIndex, 0f);
|
||||
} else {
|
||||
valueFrom = a.getFloat(valueFromIndex, 0f);
|
||||
}
|
||||
if (hasTo) {
|
||||
if (toType == TypedValue.TYPE_DIMENSION) {
|
||||
valueTo = a.getDimension(valueToIndex, 0f);
|
||||
} else {
|
||||
valueTo = a.getFloat(valueToIndex, 0f);
|
||||
}
|
||||
anim.setFloatValues(valueFrom, valueTo);
|
||||
} else {
|
||||
anim.setFloatValues(valueFrom);
|
||||
}
|
||||
} else {
|
||||
if (toType == TypedValue.TYPE_DIMENSION) {
|
||||
valueTo = a.getDimension(valueToIndex, 0f);
|
||||
} else {
|
||||
valueTo = a.getFloat(valueToIndex, 0f);
|
||||
}
|
||||
anim.setFloatValues(valueTo);
|
||||
}
|
||||
} else {
|
||||
int valueFrom;
|
||||
int valueTo;
|
||||
if (hasFrom) {
|
||||
if (fromType == TypedValue.TYPE_DIMENSION) {
|
||||
valueFrom = (int) a.getDimension(valueFromIndex, 0f);
|
||||
} else if ((fromType >= TypedValue.TYPE_FIRST_COLOR_INT) &&
|
||||
(fromType <= TypedValue.TYPE_LAST_COLOR_INT)) {
|
||||
valueFrom = a.getColor(valueFromIndex, 0);
|
||||
} else {
|
||||
valueFrom = a.getInt(valueFromIndex, 0);
|
||||
}
|
||||
if (hasTo) {
|
||||
if (toType == TypedValue.TYPE_DIMENSION) {
|
||||
valueTo = (int) a.getDimension(valueToIndex, 0f);
|
||||
} else if ((toType >= TypedValue.TYPE_FIRST_COLOR_INT) &&
|
||||
(toType <= TypedValue.TYPE_LAST_COLOR_INT)) {
|
||||
valueTo = a.getColor(valueToIndex, 0);
|
||||
} else {
|
||||
valueTo = a.getInt(valueToIndex, 0);
|
||||
}
|
||||
anim.setIntValues(valueFrom, valueTo);
|
||||
} else {
|
||||
anim.setIntValues(valueFrom);
|
||||
}
|
||||
} else {
|
||||
if (hasTo) {
|
||||
if (toType == TypedValue.TYPE_DIMENSION) {
|
||||
valueTo = (int) a.getDimension(valueToIndex, 0f);
|
||||
} else if ((toType >= TypedValue.TYPE_FIRST_COLOR_INT) &&
|
||||
(toType <= TypedValue.TYPE_LAST_COLOR_INT)) {
|
||||
valueTo = a.getColor(valueToIndex, 0);
|
||||
} else {
|
||||
valueTo = a.getInt(valueToIndex, 0);
|
||||
}
|
||||
anim.setIntValues(valueTo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
anim.setDuration(duration);
|
||||
anim.setStartDelay(startDelay);
|
||||
|
||||
if (a.hasValue(/*com.android.internal.R.styleable.*/Animator_repeatCount)) {
|
||||
anim.setRepeatCount(
|
||||
a.getInt(/*com.android.internal.R.styleable.*/Animator_repeatCount, 0));
|
||||
}
|
||||
if (a.hasValue(/*com.android.internal.R.styleable.*/Animator_repeatMode)) {
|
||||
anim.setRepeatMode(
|
||||
a.getInt(/*com.android.internal.R.styleable.*/Animator_repeatMode,
|
||||
ValueAnimator.RESTART));
|
||||
}
|
||||
//if (evaluator != null) {
|
||||
// anim.setEvaluator(evaluator);
|
||||
//}
|
||||
|
||||
final int resID =
|
||||
a.getResourceId(/*com.android.internal.R.styleable.*/Animator_interpolator, 0);
|
||||
if (resID > 0) {
|
||||
anim.setInterpolator(AnimationUtils.loadInterpolator(context, resID));
|
||||
}
|
||||
a.recycle();
|
||||
|
||||
return anim;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/previewContainer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical" >
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="?android:attr/actionBarSize"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:button="@drawable/ic_gps_off"
|
||||
android:checked="false"
|
||||
android:clickable="false"
|
||||
android:text="@string/text_gps"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:gravity="center|bottom"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<Button
|
||||
android:id="@+id/btBackCam"
|
||||
android:layout_width="48sp"
|
||||
android:layout_height="43sp"
|
||||
android:layout_gravity="center_horizontal|center"
|
||||
android:background="@drawable/ic_back_1"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="30sp"
|
||||
android:layout_height="50sp"
|
||||
android:layout_gravity="center_horizontal|center"
|
||||
android:textColor="@android:color/transparent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btCaptureCam"
|
||||
android:layout_width="48sp"
|
||||
android:layout_height="47sp"
|
||||
android:layout_gravity="center_horizontal|center"
|
||||
android:background="@drawable/ic_capture_1"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="30sp"
|
||||
android:layout_height="50sp"
|
||||
android:layout_gravity="center_horizontal|center"
|
||||
android:textColor="@android:color/transparent" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/spFlashCam"
|
||||
android:layout_width="48sp"
|
||||
android:layout_height="48sp"
|
||||
android:background="@drawable/ic_flash_auto_white_1" />
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/checkOrderLayout"
|
||||
>
|
||||
|
||||
<ScrollView android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" android:layout_alignParentTop="true">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
>
|
||||
|
||||
<LinearLayout android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="visible"
|
||||
android:gravity="center_horizontal"
|
||||
android:id="@+id/searchBy">
|
||||
|
||||
<TextView
|
||||
android:text="@string/lblSearchBy"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:textColor="#000000"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginTop="37dp"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:ems="10"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/cbSearchBy"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:ems="10"
|
||||
android:entries="@array/cbSearcrBy" />
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/byNoOrder"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible"
|
||||
android:gravity="center_horizontal" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:ems="10"
|
||||
android:text="@string/lblNomorOrder"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textColor="#000000"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
<EditText android:hint="@string/requiredField"
|
||||
android:id="@+id/txtNomorOrder"
|
||||
android:editable="false"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:ems="10" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View android:layout_width="fill_parent"
|
||||
android:layout_height="20dp"
|
||||
android:background="@android:color/transparent"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnSearchOrder"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:ems="10"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/btnSearchOrder"
|
||||
android:textColor="#ffffff"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginBottom="37dp">
|
||||
</Button>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
</RelativeLayout>
|
Loading…
Add table
Add a link
Reference in a new issue