mirror of
https://github.com/freeedcom/ai-codereviewer.git
synced 2025-07-01 05:14:17 +00:00
add project adins
This commit is contained in:
parent
ad06ac5505
commit
f8f85d679d
5299 changed files with 625430 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/text_spin"
|
||||
android:singleLine="false"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="10dp"
|
||||
android:gravity="center_vertical|left"
|
||||
android:ellipsize="marquee"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="@color/fontColor" />
|
|
@ -0,0 +1,381 @@
|
|||
/*
|
||||
* Copyright (C) 2007 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.soundcloud.android.crop;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.Region;
|
||||
import android.os.Build;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
|
||||
import com.adins.mss.base.R;
|
||||
|
||||
/*
|
||||
* Modified from version in AOSP.
|
||||
*
|
||||
* This class is used to display a highlighted cropping rectangle
|
||||
* overlayed on the image. There are two coordinate spaces in use. One is
|
||||
* image, another is screen. computeLayout() uses matrix to map from image
|
||||
* space to screen space.
|
||||
*/
|
||||
class HighlightView {
|
||||
|
||||
public static final int GROW_NONE = (1 << 0);
|
||||
public static final int GROW_LEFT_EDGE = (1 << 1);
|
||||
public static final int GROW_RIGHT_EDGE = (1 << 2);
|
||||
public static final int GROW_TOP_EDGE = (1 << 3);
|
||||
public static final int GROW_BOTTOM_EDGE = (1 << 4);
|
||||
public static final int MOVE = (1 << 5);
|
||||
|
||||
private static final int DEFAULT_HIGHLIGHT_COLOR = 0xFF33B5E5;
|
||||
private static final float HANDLE_RADIUS_DP = 12f;
|
||||
private static final float OUTLINE_DP = 2f;
|
||||
private final Paint outsidePaint = new Paint();
|
||||
private final Paint outlinePaint = new Paint();
|
||||
private final Paint handlePaint = new Paint();
|
||||
RectF cropRect; // Image space
|
||||
Rect drawRect; // Screen space
|
||||
Matrix matrix;
|
||||
private RectF imageRect; // Image space
|
||||
private View viewContext; // View displaying image
|
||||
private boolean showThirds;
|
||||
private int highlightColor;
|
||||
private ModifyMode modifyMode = ModifyMode.None;
|
||||
private HandleMode handleMode = HandleMode.Changing;
|
||||
private boolean maintainAspectRatio;
|
||||
private float initialAspectRatio;
|
||||
private float handleRadius;
|
||||
private float outlineWidth;
|
||||
private boolean isFocused;
|
||||
public HighlightView(View context) {
|
||||
viewContext = context;
|
||||
initStyles(context.getContext());
|
||||
}
|
||||
|
||||
private void initStyles(Context context) {
|
||||
TypedValue outValue = new TypedValue();
|
||||
context.getTheme().resolveAttribute(R.attr.cropImageStyle, outValue, true);
|
||||
TypedArray attributes = context.obtainStyledAttributes(outValue.resourceId, R.styleable.CropImageView);
|
||||
try {
|
||||
showThirds = attributes.getBoolean(R.styleable.CropImageView_showThirds, false);
|
||||
highlightColor = attributes.getColor(R.styleable.CropImageView_highlightColor,
|
||||
DEFAULT_HIGHLIGHT_COLOR);
|
||||
handleMode = HandleMode.values()[attributes.getInt(R.styleable.CropImageView_showHandles, 0)];
|
||||
} finally {
|
||||
attributes.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
public void setup(Matrix m, Rect imageRect, RectF cropRect, boolean maintainAspectRatio) {
|
||||
matrix = new Matrix(m);
|
||||
|
||||
this.cropRect = cropRect;
|
||||
this.imageRect = new RectF(imageRect);
|
||||
this.maintainAspectRatio = maintainAspectRatio;
|
||||
|
||||
initialAspectRatio = this.cropRect.width() / this.cropRect.height();
|
||||
drawRect = computeLayout();
|
||||
|
||||
outsidePaint.setARGB(125, 50, 50, 50);
|
||||
outlinePaint.setStyle(Paint.Style.STROKE);
|
||||
outlinePaint.setAntiAlias(true);
|
||||
outlineWidth = dpToPx(OUTLINE_DP);
|
||||
|
||||
handlePaint.setColor(highlightColor);
|
||||
handlePaint.setStyle(Paint.Style.FILL);
|
||||
handlePaint.setAntiAlias(true);
|
||||
handleRadius = dpToPx(HANDLE_RADIUS_DP);
|
||||
|
||||
modifyMode = ModifyMode.None;
|
||||
}
|
||||
|
||||
private float dpToPx(float dp) {
|
||||
return dp * viewContext.getResources().getDisplayMetrics().density;
|
||||
}
|
||||
|
||||
protected void draw(Canvas canvas) {
|
||||
canvas.save();
|
||||
Path path = new Path();
|
||||
outlinePaint.setStrokeWidth(outlineWidth);
|
||||
if (!hasFocus()) {
|
||||
outlinePaint.setColor(Color.BLACK);
|
||||
canvas.drawRect(drawRect, outlinePaint);
|
||||
} else {
|
||||
Rect viewDrawingRect = new Rect();
|
||||
viewContext.getDrawingRect(viewDrawingRect);
|
||||
|
||||
path.addRect(new RectF(drawRect), Path.Direction.CW);
|
||||
outlinePaint.setColor(highlightColor);
|
||||
|
||||
if (isClipPathSupported(canvas)) {
|
||||
canvas.clipPath(path, Region.Op.DIFFERENCE);
|
||||
canvas.drawRect(viewDrawingRect, outsidePaint);
|
||||
} else {
|
||||
drawOutsideFallback(canvas);
|
||||
}
|
||||
|
||||
canvas.restore();
|
||||
canvas.drawPath(path, outlinePaint);
|
||||
|
||||
if (showThirds) {
|
||||
drawThirds(canvas);
|
||||
}
|
||||
|
||||
if (handleMode == HandleMode.Always ||
|
||||
(handleMode == HandleMode.Changing && modifyMode == ModifyMode.Grow)) {
|
||||
drawHandles(canvas);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Fall back to naive method for darkening outside crop area
|
||||
*/
|
||||
private void drawOutsideFallback(Canvas canvas) {
|
||||
canvas.drawRect(0, 0, canvas.getWidth(), drawRect.top, outsidePaint);
|
||||
canvas.drawRect(0, drawRect.bottom, canvas.getWidth(), canvas.getHeight(), outsidePaint);
|
||||
canvas.drawRect(0, drawRect.top, drawRect.left, drawRect.bottom, outsidePaint);
|
||||
canvas.drawRect(drawRect.right, drawRect.top, canvas.getWidth(), drawRect.bottom, outsidePaint);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clip path is broken, unreliable or not supported on:
|
||||
* - JellyBean MR1
|
||||
* - ICS & ICS MR1 with hardware acceleration turned on
|
||||
*/
|
||||
// @SuppressLint("NewApi")
|
||||
private boolean isClipPathSupported(Canvas canvas) {
|
||||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
return false;
|
||||
} else if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
|
||||
|| Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
return true;
|
||||
} else {
|
||||
return !canvas.isHardwareAccelerated();
|
||||
}
|
||||
}
|
||||
|
||||
private void drawHandles(Canvas canvas) {
|
||||
int xMiddle = drawRect.left + ((drawRect.right - drawRect.left) / 2);
|
||||
int yMiddle = drawRect.top + ((drawRect.bottom - drawRect.top) / 2);
|
||||
|
||||
canvas.drawCircle(drawRect.left, yMiddle, handleRadius, handlePaint);
|
||||
canvas.drawCircle(xMiddle, drawRect.top, handleRadius, handlePaint);
|
||||
canvas.drawCircle(drawRect.right, yMiddle, handleRadius, handlePaint);
|
||||
canvas.drawCircle(xMiddle, drawRect.bottom, handleRadius, handlePaint);
|
||||
}
|
||||
|
||||
private void drawThirds(Canvas canvas) {
|
||||
outlinePaint.setStrokeWidth(1);
|
||||
float xThird = (drawRect.right - drawRect.left) / 3;
|
||||
float yThird = (drawRect.bottom - drawRect.top) / 3;
|
||||
|
||||
canvas.drawLine(drawRect.left + xThird, drawRect.top,
|
||||
drawRect.left + xThird, drawRect.bottom, outlinePaint);
|
||||
canvas.drawLine(drawRect.left + xThird * 2, drawRect.top,
|
||||
drawRect.left + xThird * 2, drawRect.bottom, outlinePaint);
|
||||
canvas.drawLine(drawRect.left, drawRect.top + yThird,
|
||||
drawRect.right, drawRect.top + yThird, outlinePaint);
|
||||
canvas.drawLine(drawRect.left, drawRect.top + yThird * 2,
|
||||
drawRect.right, drawRect.top + yThird * 2, outlinePaint);
|
||||
}
|
||||
|
||||
public void setMode(ModifyMode mode) {
|
||||
if (mode != modifyMode) {
|
||||
modifyMode = mode;
|
||||
viewContext.invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
// Determines which edges are hit by touching at (x, y)
|
||||
public int getHit(float x, float y) {
|
||||
Rect r = computeLayout();
|
||||
final float hysteresis = 20F;
|
||||
int retval = GROW_NONE;
|
||||
|
||||
// verticalCheck makes sure the position is between the top and
|
||||
// the bottom edge (with some tolerance). Similar for horizCheck.
|
||||
boolean verticalCheck = (y >= r.top - hysteresis)
|
||||
&& (y < r.bottom + hysteresis);
|
||||
boolean horizCheck = (x >= r.left - hysteresis)
|
||||
&& (x < r.right + hysteresis);
|
||||
|
||||
// Check whether the position is near some edge(s)
|
||||
if ((Math.abs(r.left - x) < hysteresis) && verticalCheck) {
|
||||
retval |= GROW_LEFT_EDGE;
|
||||
}
|
||||
if ((Math.abs(r.right - x) < hysteresis) && verticalCheck) {
|
||||
retval |= GROW_RIGHT_EDGE;
|
||||
}
|
||||
if ((Math.abs(r.top - y) < hysteresis) && horizCheck) {
|
||||
retval |= GROW_TOP_EDGE;
|
||||
}
|
||||
if ((Math.abs(r.bottom - y) < hysteresis) && horizCheck) {
|
||||
retval |= GROW_BOTTOM_EDGE;
|
||||
}
|
||||
|
||||
// Not near any edge but inside the rectangle: move
|
||||
if (retval == GROW_NONE && r.contains((int) x, (int) y)) {
|
||||
retval = MOVE;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
// Handles motion (dx, dy) in screen space.
|
||||
// The "edge" parameter specifies which edges the user is dragging.
|
||||
void handleMotion(int edge, float dx, float dy) {
|
||||
Rect r = computeLayout();
|
||||
if (edge == MOVE) {
|
||||
// Convert to image space before sending to moveBy()
|
||||
moveBy(dx * (cropRect.width() / r.width()),
|
||||
dy * (cropRect.height() / r.height()));
|
||||
} else {
|
||||
if (((GROW_LEFT_EDGE | GROW_RIGHT_EDGE) & edge) == 0) {
|
||||
dx = 0;
|
||||
}
|
||||
|
||||
if (((GROW_TOP_EDGE | GROW_BOTTOM_EDGE) & edge) == 0) {
|
||||
dy = 0;
|
||||
}
|
||||
|
||||
// Convert to image space before sending to growBy()
|
||||
float xDelta = dx * (cropRect.width() / r.width());
|
||||
float yDelta = dy * (cropRect.height() / r.height());
|
||||
growBy((((edge & GROW_LEFT_EDGE) != 0) ? -1 : 1) * xDelta,
|
||||
(((edge & GROW_TOP_EDGE) != 0) ? -1 : 1) * yDelta);
|
||||
}
|
||||
}
|
||||
|
||||
// Grows the cropping rectangle by (dx, dy) in image space
|
||||
void moveBy(float dx, float dy) {
|
||||
Rect invalRect = new Rect(drawRect);
|
||||
|
||||
cropRect.offset(dx, dy);
|
||||
|
||||
// Put the cropping rectangle inside image rectangle
|
||||
cropRect.offset(
|
||||
Math.max(0, imageRect.left - cropRect.left),
|
||||
Math.max(0, imageRect.top - cropRect.top));
|
||||
|
||||
cropRect.offset(
|
||||
Math.min(0, imageRect.right - cropRect.right),
|
||||
Math.min(0, imageRect.bottom - cropRect.bottom));
|
||||
|
||||
drawRect = computeLayout();
|
||||
invalRect.union(drawRect);
|
||||
invalRect.inset(-(int) handleRadius, -(int) handleRadius);
|
||||
viewContext.invalidate(invalRect);
|
||||
}
|
||||
|
||||
// Grows the cropping rectangle by (dx, dy) in image space.
|
||||
void growBy(float dx, float dy) {
|
||||
if (maintainAspectRatio) {
|
||||
if (dx != 0) {
|
||||
dy = dx / initialAspectRatio;
|
||||
} else if (dy != 0) {
|
||||
dx = dy * initialAspectRatio;
|
||||
}
|
||||
}
|
||||
|
||||
// Don't let the cropping rectangle grow too fast.
|
||||
// Grow at most half of the difference between the image rectangle and
|
||||
// the cropping rectangle.
|
||||
RectF r = new RectF(cropRect);
|
||||
if (dx > 0F && r.width() + 2 * dx > imageRect.width()) {
|
||||
dx = (imageRect.width() - r.width()) / 2F;
|
||||
if (maintainAspectRatio) {
|
||||
dy = dx / initialAspectRatio;
|
||||
}
|
||||
}
|
||||
if (dy > 0F && r.height() + 2 * dy > imageRect.height()) {
|
||||
dy = (imageRect.height() - r.height()) / 2F;
|
||||
if (maintainAspectRatio) {
|
||||
dx = dy * initialAspectRatio;
|
||||
}
|
||||
}
|
||||
|
||||
r.inset(-dx, -dy);
|
||||
|
||||
// Don't let the cropping rectangle shrink too fast
|
||||
final float widthCap = 25F;
|
||||
if (r.width() < widthCap) {
|
||||
r.inset(-(widthCap - r.width()) / 2F, 0F);
|
||||
}
|
||||
float heightCap = maintainAspectRatio
|
||||
? (widthCap / initialAspectRatio)
|
||||
: widthCap;
|
||||
if (r.height() < heightCap) {
|
||||
r.inset(0F, -(heightCap - r.height()) / 2F);
|
||||
}
|
||||
|
||||
// Put the cropping rectangle inside the image rectangle
|
||||
if (r.left < imageRect.left) {
|
||||
r.offset(imageRect.left - r.left, 0F);
|
||||
} else if (r.right > imageRect.right) {
|
||||
r.offset(-(r.right - imageRect.right), 0F);
|
||||
}
|
||||
if (r.top < imageRect.top) {
|
||||
r.offset(0F, imageRect.top - r.top);
|
||||
} else if (r.bottom > imageRect.bottom) {
|
||||
r.offset(0F, -(r.bottom - imageRect.bottom));
|
||||
}
|
||||
|
||||
cropRect.set(r);
|
||||
drawRect = computeLayout();
|
||||
viewContext.invalidate();
|
||||
}
|
||||
|
||||
// Returns the cropping rectangle in image space with specified scale
|
||||
public Rect getScaledCropRect(float scale) {
|
||||
return new Rect((int) (cropRect.left * scale), (int) (cropRect.top * scale),
|
||||
(int) (cropRect.right * scale), (int) (cropRect.bottom * scale));
|
||||
}
|
||||
|
||||
// Maps the cropping rectangle from image space to screen space
|
||||
private Rect computeLayout() {
|
||||
RectF r = new RectF(cropRect.left, cropRect.top,
|
||||
cropRect.right, cropRect.bottom);
|
||||
matrix.mapRect(r);
|
||||
return new Rect(Math.round(r.left), Math.round(r.top),
|
||||
Math.round(r.right), Math.round(r.bottom));
|
||||
}
|
||||
|
||||
public void invalidate() {
|
||||
drawRect = computeLayout();
|
||||
}
|
||||
|
||||
public boolean hasFocus() {
|
||||
return isFocused;
|
||||
}
|
||||
|
||||
public void setFocus(boolean isFocused) {
|
||||
this.isFocused = isFocused;
|
||||
}
|
||||
|
||||
enum ModifyMode {None, Move, Grow}
|
||||
|
||||
enum HandleMode {Changing, Always, Never}
|
||||
|
||||
}
|
|
@ -0,0 +1,112 @@
|
|||
package com.adins.mss.base.crashlytics;
|
||||
|
||||
import android.text.format.DateFormat;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.logger.Logger;
|
||||
import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
/**
|
||||
* Created by ahmadkamilalmasyhur on 19/02/2018.
|
||||
*/
|
||||
|
||||
public class FireCrash {
|
||||
|
||||
private static FirebaseCrashlytics instance;
|
||||
|
||||
public static void setInstance(FirebaseCrashlytics instance) {
|
||||
FireCrash.instance = instance;
|
||||
}
|
||||
|
||||
//info dont use final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); to get method name or classname or others
|
||||
//https://stackoverflow.com/questions/421280/how-do-i-find-the-caller-of-a-method-using-stacktrace-or-reflection
|
||||
|
||||
//Format Catch Error sebisa mungkin disamakan catch(exception e) lalu jika ada kemungkinan sama maka catch(exception e2) dst
|
||||
public static void log(Throwable e) {
|
||||
if(instance == null)
|
||||
return;
|
||||
|
||||
String date = DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString();
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
if (null != user) {
|
||||
instance.log(date +
|
||||
":: loginId : " + user.getLogin_id() +
|
||||
":: fullName : " + user.getFullname() +
|
||||
":: branchId : " + user.getBranch_id() +
|
||||
":: branchName : " + user.getBranch_name() +
|
||||
":: branchAddress : " + user.getBranch_address() +
|
||||
":: flagJob : " + user.getFlag_job() +
|
||||
":: jobDescr : " + user.getJob_description() +
|
||||
":: dealerName : " + user.getDealer_name() +
|
||||
":: uuidUser : " + user.getUuid_user()
|
||||
);
|
||||
instance.setCustomKey("loginId", user.getLogin_id());
|
||||
instance.setCustomKey("fullName", user.getFullname());
|
||||
instance.setCustomKey("branchId", user.getBranch_id());
|
||||
instance.setCustomKey("branchName", user.getBranch_name());
|
||||
instance.setCustomKey("branchAddress", user.getBranch_address());
|
||||
instance.setCustomKey("flagJob", user.getFlag_job());
|
||||
instance.setCustomKey("jobDescr", user.getJob_description());
|
||||
instance.setCustomKey("dealerName", user.getDealer_name());
|
||||
instance.setCustomKey("uuidUser", user.getUuid_user());
|
||||
instance.setCustomKey("uuidBranch", user.getBranch_id());
|
||||
} else {
|
||||
instance.log("User : Not Found");
|
||||
instance.setCustomKey("loginId", "Tidak Ada Data");
|
||||
instance.setCustomKey("fullName", "Tidak Ada Data");
|
||||
}
|
||||
instance.recordException(e);
|
||||
}
|
||||
|
||||
public static void log(Exception e) {
|
||||
if(instance == null)
|
||||
return;
|
||||
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
if (null != user) {
|
||||
instance.setCustomKey("loginId", user.getLogin_id());
|
||||
instance.setCustomKey("fullName", user.getFullname());
|
||||
instance.setCustomKey("branchId", user.getBranch_id());
|
||||
instance.setCustomKey("branchName", user.getBranch_name());
|
||||
instance.setCustomKey("branchAddress", user.getBranch_address());
|
||||
instance.setCustomKey("flagJob", user.getFlag_job());
|
||||
instance.setCustomKey("jobDescr", user.getJob_description());
|
||||
instance.setCustomKey("dealerName", user.getDealer_name());
|
||||
instance.setCustomKey("uuidUser", user.getUuid_user());
|
||||
} else {
|
||||
instance.log("User : Not Found");
|
||||
instance.setCustomKey("loginId", "-");
|
||||
instance.setCustomKey("fullName", "-");
|
||||
}
|
||||
instance.recordException(e);
|
||||
}
|
||||
|
||||
public static void log(Exception e, String message) {
|
||||
if(instance == null)
|
||||
return;
|
||||
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
if (null != user) {
|
||||
instance.setCustomKey("loginId", user.getLogin_id());
|
||||
instance.setCustomKey("fullName", user.getFullname());
|
||||
instance.setCustomKey("branchId", user.getBranch_id());
|
||||
instance.setCustomKey("branchName", user.getBranch_name());
|
||||
instance.setCustomKey("branchAddress", user.getBranch_address());
|
||||
instance.setCustomKey("flagJob", user.getFlag_job());
|
||||
instance.setCustomKey("jobDescr", user.getJob_description());
|
||||
instance.setCustomKey("dealerName", user.getDealer_name());
|
||||
instance.setCustomKey("uuidUser", user.getUuid_user());
|
||||
instance.setCustomKey("message", message);
|
||||
} else {
|
||||
instance.log("User : Not Found");
|
||||
instance.setCustomKey("loginId", "-");
|
||||
instance.setCustomKey("fullName", "-");
|
||||
}
|
||||
instance.recordException(e);
|
||||
Logger.printStackTrace(e);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
package com.services.models;
|
||||
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.foundation.http.KeyValue;
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class JsonResponseServer extends MssResponseType {
|
||||
@SerializedName("listResponseServer")
|
||||
List<ResponseServer> listResponseServer;
|
||||
|
||||
public List<ResponseServer> getListResponseServer() {
|
||||
return listResponseServer;
|
||||
}
|
||||
|
||||
public void setListResponseServer(List<ResponseServer> listResponseServer) {
|
||||
this.listResponseServer = listResponseServer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return GsonHelper.toJson(this);
|
||||
}
|
||||
|
||||
public class ResponseServer extends KeyValue {
|
||||
@SerializedName("flag")
|
||||
String flag;
|
||||
@SerializedName("subListResponseServer")
|
||||
List<ResponseServer> subListResponseServer;
|
||||
@SerializedName("formName")
|
||||
String formName;
|
||||
|
||||
public ResponseServer(String key, String value) {
|
||||
super(key, value);
|
||||
}
|
||||
|
||||
public String getFormName() {
|
||||
return this.formName;
|
||||
}
|
||||
|
||||
public void setFormName(String value) {
|
||||
this.formName = value;
|
||||
}
|
||||
|
||||
public String getFlag() {
|
||||
return flag;
|
||||
}
|
||||
|
||||
public void setFlag(String flag) {
|
||||
this.flag = flag;
|
||||
}
|
||||
|
||||
public List<ResponseServer> getSubListResponseServer() {
|
||||
return subListResponseServer;
|
||||
}
|
||||
|
||||
public void setSubListResponseServer(List<ResponseServer> subListResponseServer) {
|
||||
this.subListResponseServer = subListResponseServer;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_focused="true" >
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="#ffffff"
|
||||
android:endColor="#f0f0f0"
|
||||
android:angle="90" />
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="@color/tv_normal" />
|
||||
<corners
|
||||
android:radius="4dp" />
|
||||
<padding
|
||||
android:left="10dp"
|
||||
android:top="10dp"
|
||||
android:right="10dp"
|
||||
android:bottom="10dp" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="#ffffff"
|
||||
android:endColor="#f0f0f0"
|
||||
android:angle="90" />
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="#7d7d7d"/>
|
||||
<corners
|
||||
android:radius="4dp" />
|
||||
<padding
|
||||
android:left="10dp"
|
||||
android:top="10dp"
|
||||
android:right="10dp"
|
||||
android:bottom="10dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
|
@ -0,0 +1,72 @@
|
|||
package com.adins.mss.foundation.formatter;
|
||||
|
||||
import com.adins.mss.constant.Global;
|
||||
|
||||
|
||||
public class PagingHelper {
|
||||
private int page = 1;
|
||||
private int totalPage;
|
||||
private int pageSize;
|
||||
private int start;
|
||||
private int end;
|
||||
private int totalRecord;
|
||||
|
||||
public PagingHelper() {
|
||||
this.pageSize = Global.ROW_PER_PAGE;
|
||||
}
|
||||
|
||||
public PagingHelper(int rowPerPage) {
|
||||
this.pageSize = rowPerPage;
|
||||
}
|
||||
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public int getTotalPage() {
|
||||
return totalPage;
|
||||
}
|
||||
|
||||
public void setTotalPage(int totalPage) {
|
||||
this.totalPage = totalPage;
|
||||
}
|
||||
|
||||
public int getPageSize() {
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(int pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
|
||||
public int getStart() {
|
||||
this.start = (page - 1) * pageSize + 1;
|
||||
return start;
|
||||
}
|
||||
|
||||
public int getEnd() {
|
||||
this.end = this.start + pageSize - 1;
|
||||
this.end = (this.end > totalRecord) ? totalRecord : this.end;
|
||||
return end;
|
||||
}
|
||||
|
||||
public void setTotalRecord(int totalRecord) {
|
||||
this.totalRecord = totalRecord;
|
||||
this.totalPage = (int) Math.ceil((double) totalRecord / this.pageSize);
|
||||
}
|
||||
|
||||
/* NAVIGATE */
|
||||
public void next() {
|
||||
page++;
|
||||
page = (page > totalPage) ? totalPage : page;
|
||||
}
|
||||
|
||||
public void previous() {
|
||||
page--;
|
||||
page = (page < 1) ? 1 : page;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/cardRank"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="10dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/rankLayout"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/blazingRed"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/levelRank"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="National"
|
||||
android:textColor="@color/tv_white"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/rankNumber"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:text="1"
|
||||
android:textColor="@color/tv_white"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/cardRank"
|
||||
android:layout_centerHorizontal="true">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/arrowstatus"
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:padding="3dp"
|
||||
android:src="@drawable/arrowdownred" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/angkastatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="17dp"
|
||||
android:text="9999"
|
||||
android:textSize="14dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Copyright 2014 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.
|
||||
-->
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#000"
|
||||
tools:context="com.adins.mss.foundation.camera2.Camera2BasicActivity" />
|
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
After Width: | Height: | Size: 691 B |
|
@ -0,0 +1,37 @@
|
|||
package com.adins.mss.odr.news;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.adins.mss.dao.MobileContentH;
|
||||
|
||||
public class ContentHeaderBean extends MobileContentH implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 7312670270610210391L;
|
||||
public ContentHeaderBean(){
|
||||
}
|
||||
MobileContentH contentH;
|
||||
public ContentHeaderBean(MobileContentH contentH){
|
||||
setContent_description(contentH.getContent_description());
|
||||
setContent_name(contentH.getContent_name());
|
||||
setDtm_crt(contentH.getDtm_crt());
|
||||
setDtm_upd(contentH.getDtm_upd());
|
||||
setStart_date(contentH.getStart_date());
|
||||
setEnd_date(contentH.getEnd_date());
|
||||
setLast_update(contentH.getLast_update());
|
||||
setUsr_crt(contentH.getUsr_crt());
|
||||
setUsr_upd(contentH.getUsr_upd());
|
||||
setUuid_mobile_content_h(contentH.getUuid_mobile_content_h());
|
||||
setUuid_parent_content(contentH.getUuid_parent_content());
|
||||
setUuid_user(contentH.getUuid_user());
|
||||
setUser(contentH.getUser());
|
||||
}
|
||||
public MobileContentH getMobileContentH(){
|
||||
return this;
|
||||
}
|
||||
public void setMobileContentH(MobileContentH contentH){
|
||||
this.contentH = contentH;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.adins.mss.base.util;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Created by gigin.ginanjar on 10/06/2016.
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.FIELD})
|
||||
public @interface ExcludeFromGson {
|
||||
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 7 KiB |
|
@ -0,0 +1,190 @@
|
|||
<?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="vertical"
|
||||
android:background="#dfdfdf"
|
||||
android:padding="5dp"
|
||||
android:layout_margin="4dp"
|
||||
android:id="@+id/layoutTask">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
<ImageView
|
||||
android:id="@+id/dragableIcon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingRight="15dp"
|
||||
android:src="@drawable/ic_drag_black_48dp"/>
|
||||
|
||||
<TableLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/tableRow1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Priority"
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:text=":"
|
||||
android:textColor="@android:color/black"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtPriority"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="-" />
|
||||
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/tableRow2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView4"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="@string/custName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:text=":" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtCustName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
android:text="-" />
|
||||
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/tableRow3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="Customer Address" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView8"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:textColor="@android:color/black"
|
||||
android:text=":" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtCustAddress"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="5"
|
||||
android:text="jalan haji suaib no 34 jakarta barat kebon jeruk" />
|
||||
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/tableRow4"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView6"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="Customer Phone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView9"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:textColor="@android:color/black"
|
||||
android:text=":" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtCustPhone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
android:text="-" />
|
||||
|
||||
</TableRow>
|
||||
|
||||
<TableRow
|
||||
android:id="@+id/tableRow5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView7"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:text="Notes" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView10"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:textColor="@android:color/black"
|
||||
android:text=":" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtNotes"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
android:text="-" />
|
||||
|
||||
</TableRow>
|
||||
|
||||
</TableLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
Loading…
Add table
Add a link
Reference in a new issue