Эх сурвалжийг харах

1.修改Android Apex CRM日期选择Dialog。

Pen Li 7 жил өмнө
parent
commit
4724414c55

+ 4 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/base/BaseDialog.java

@@ -47,6 +47,10 @@ public class BaseDialog extends Dialog {
         }
     }
 
+    public View getRootView() {
+        return mRootView;
+    }
+
     @Override
     public void show() {
 

+ 98 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/dateTimePicker/DateTimePickerDialog.java

@@ -0,0 +1,98 @@
+package com.usai.redant.rautils.dateTimePicker;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.usai.redant.rautils.R;
+import com.usai.redant.rautils.base.BaseDialog;
+import com.usai.redant.rautils.utils.RAUtil;
+
+public class DateTimePickerDialog extends BaseDialog {
+
+    private Context mContext;
+    private DateTimePickerDialog self = this;
+    private boolean initialized = false;
+
+    public DateTimePickerDialog(@NonNull final Context context) {
+        super(context, new BasicDialogSetupCallBack() {
+
+            @Override
+            public View createContentView(BaseDialog dialog) {
+                return setupRootView(context);
+            }
+
+            @Override
+            public int dialogGravity(BaseDialog dialog) {
+                return BasicDialogContentGravityCenter;
+            }
+        });
+
+        mContext = context;
+    }
+
+    private void init() {
+
+        View rootView = getRootView();
+
+        TextView titleTv = rootView.findViewById(R.id.ra_date_time_picker_title_tv);
+        titleTv.setText("请选择日期");
+
+        Button cancelBtn = rootView.findViewById(R.id.ra_date_time_picker_cancel_btn);
+        cancelBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                dismiss();
+            }
+        });
+
+        Button okBtn = rootView.findViewById(R.id.ra_date_time_picker_ok_btn);
+        okBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                dismiss();
+            }
+        });
+
+        initialized = true;
+    }
+
+    @Override
+    public void show() {
+
+        if (!initialized) {
+            init();
+        }
+
+        super.show();
+    }
+
+    private static View setupRootView(Context context) {
+
+        if (context == null) {
+            return null;
+        }
+
+        RelativeLayout root = new RelativeLayout(context);
+
+        int margin = RAUtil.dp2px(context, 20);
+        int widthPixels = RAUtil.getScreenWidthPixels(context);
+        widthPixels = widthPixels - 2 * margin;
+        int heightPixels = widthPixels + RAUtil.dp2px(context, 25);
+
+        View contentView = (View)LayoutInflater.from(context).inflate(R.layout.ra_date_time_picker_dialog_content_view,null);
+        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(widthPixels, heightPixels);
+        layoutParams.setMargins(margin, 0 , margin, 0);
+
+        root.addView(contentView, layoutParams);
+
+        return root;
+    }
+
+
+}

+ 23 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/RAUtil.java

@@ -7,6 +7,7 @@ import android.content.DialogInterface;
 import android.content.SharedPreferences;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -14,6 +15,7 @@ import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.PermissionChecker;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
+import android.util.DisplayMetrics;
 import android.util.Log;
 
 import com.usai.redant.rautils.R;
@@ -357,6 +359,27 @@ public class RAUtil {
         return (int) (spValue * fontScale + 0.5f);
     }
 
+    public static int getScreenWidthPixels(Context context) {
+
+        Resources resources = context.getResources();
+        DisplayMetrics dm = resources.getDisplayMetrics();
+//        float density = dm.density;
+        int width = dm.widthPixels;
+//        int height = dm.heightPixels;
+        return width;
+    }
+
+    public static int getScreenHeightPixels(Context context) {
+
+        Resources resources = context.getResources();
+        DisplayMetrics dm = resources.getDisplayMetrics();
+//        float density = dm.density;
+//        int width = dm.widthPixels;
+        int height = dm.heightPixels;
+
+        return height;
+    }
+
 
     public static String getDeviceId(Context context) {
         return getAndroidId(context);

+ 32 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/drawable/ra_button_background.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true">
+
+        <shape>
+
+            <solid android:color="#eeeeee">
+
+            </solid>
+
+            <corners android:radius="10dp"></corners>
+
+        </shape>
+
+    </item>
+
+    <item android:state_pressed="false">
+
+        <shape>
+
+            <solid android:color="#00000000">
+
+            </solid>
+
+            <corners android:radius="10dp"></corners>
+
+        </shape>
+
+    </item>
+
+</selector>

+ 8 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/drawable/ra_clear_background.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <solid android:color="#00000000">
+
+    </solid>
+
+</shape>

+ 12 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/drawable/ra_round_corner_10.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="10dp">
+
+    </corners>
+
+    <solid android:color="#ffffff">
+
+    </solid>
+
+</shape>

+ 60 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/layout/ra_date_time_picker_dialog_content_view.xml

@@ -0,0 +1,60 @@
+<?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:background="@drawable/ra_round_corner_10"
+    >
+
+    <TextView
+        android:id="@+id/ra_date_time_picker_title_tv"
+        android:layout_width="match_parent"
+        android:layout_height="25dp"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="10dp"
+        android:textSize="20sp"
+        android:textColor="#000000"
+        android:text="Title"
+        android:gravity="center"
+        />
+
+    <LinearLayout
+        android:id="@+id/ra_date_time_picker_confirm_panel"
+        android:layout_width="match_parent"
+        android:layout_height="60dp"
+        android:orientation="horizontal"
+        android:layout_alignParentBottom="true"
+        >
+
+        <Button
+            android:id="@+id/ra_date_time_picker_cancel_btn"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/ra_button_background"
+            android:textColor="#ff2200"
+            android:textSize="17sp"
+            android:textAllCaps="false"
+            android:text="Cancel"
+            />
+
+        <View
+            android:layout_width="0.5dp"
+            android:layout_height="match_parent"
+            android:background="#eeeeee"
+            />
+
+        <Button
+            android:id="@+id/ra_date_time_picker_ok_btn"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/ra_button_background"
+            android:textColor="#2476FF"
+            android:textSize="17sp"
+            android:textAllCaps="false"
+            android:text="Ok"
+            />
+
+    </LinearLayout>
+
+</RelativeLayout>

+ 43 - 2
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/MainActivity.java

@@ -2,6 +2,7 @@ package com.usai.apex.apexcrm;
 
 import android.Manifest;
 import android.app.Activity;
+import android.app.DatePickerDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -13,15 +14,20 @@ import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AppCompatActivity;
 
 import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.webkit.ValueCallback;
+import android.widget.DatePicker;
 import android.widget.Toast;
 
 import com.usai.apex.apexcrm.dataProvider.DataProvider;
 import com.usai.redant.rautils.InfinitePhoto.InfinitePhotoActivity;
 import com.usai.redant.rautils.actionSheet.ActionSheet;
+import com.usai.redant.rautils.base.BaseDialog;
+import com.usai.redant.rautils.calendar_event.CalendarEventManager;
 import com.usai.redant.rautils.camera.CameraHelper;
+import com.usai.redant.rautils.dateTimePicker.DateTimePickerDialog;
 import com.usai.redant.rautils.email.EmailHelper;
 import com.usai.redant.rautils.fileViewer.FileViewerActivity;
 import com.usai.redant.rautils.map.MapHelper;
@@ -39,11 +45,13 @@ import org.json.JSONObject;
 import java.io.File;
 import java.net.URL;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 
 
 import static com.usai.apex.apexcrm.RAWebView.RALocalFileScheme;
 import static com.usai.redant.rautils.InfinitePhoto.InfinitePhotoItem.PlaceHolderResIdNone;
+import static com.usai.redant.rautils.base.BaseDialog.BasicDialogContentGravityCenter;
 import static com.usai.redant.rautils.utils.Network.RESULT_TRUE;
 
 
@@ -681,13 +689,46 @@ public class MainActivity extends AppCompatActivity {
         }
 
         @Override
-        public void Location(String msg) {
+        public void DatetimePicker(String msg) {
+
+//            if (msg != null) {
+//
+//                try {
+//                    JSONObject json = new JSONObject(msg);
+//
+//                    Calendar c = Calendar.getInstance();
+//                    new DatePickerDialog(mCtx,
+//                            new DatePickerDialog.OnDateSetListener()
+//                            {
+//
+//                                @Override
+//                                public void onDateSet(DatePicker view,
+//                                                      int year, int monthOfYear,
+//                                                      int dayOfMonth)
+//                                {
+//                                    String date = ++monthOfYear + "/" + dayOfMonth + "/" + year;
+//
+//
+//                                }
+//
+//                            }, c.get(Calendar.YEAR), c.get(Calendar.MONTH),
+//                            c.get(Calendar.DAY_OF_MONTH)).show();
+//
+//                } catch (JSONException e) {
+//                    e.printStackTrace();
+//                }
+//
+//            }
 
+
+            DateTimePickerDialog dialog = new DateTimePickerDialog(self);
+            dialog.show();
         }
 
         @Override
-        public void DatetimePicker(String msg) {
+        public void Location(String msg) {
 
         }
+
     };
 }

+ 1 - 1
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/RAJSInterface.java

@@ -119,7 +119,7 @@ public class RAJSInterface extends Object {
 
         System.out.println("android DatetimePicker click");
         if (delegate != null) {
-            delegate.Signature(msg);
+            delegate.DatetimePicker(msg);
         }
     }