Przeglądaj źródła

1.优化打卡功能

wsad5123 5 lat temu
rodzic
commit
b4136078ee
35 zmienionych plików z 277 dodań i 78 usunięć
  1. 2 2
      app/build.gradle
  2. 10 10
      app/proguard-rules.pro
  3. 49 19
      app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/CMainActivity.java
  4. 8 1
      app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockMonthStatisticsActivity.java
  5. 1 1
      app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockResultActivity.java
  6. 6 10
      app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockRulesActivity.java
  7. 16 0
      app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockUserStatisticsActivity.java
  8. 25 4
      app/src/main/java/com/tongyu/luck/happywork/ui/fragment/cclient/ClockFragment.java
  9. 3 2
      app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/contacts/ClockFragmentContacts.java
  10. 25 15
      app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/presenter/ClockFragmentPresenter.java
  11. 106 0
      app/src/main/java/com/tongyu/luck/happywork/utils/JumpUtils.java
  12. 4 2
      app/src/main/res/layout/activity_clock_month_statistics.xml
  13. 16 12
      app/src/main/res/layout/activity_clock_user_statistics.xml
  14. BIN
      app/src/main/res/mipmap-hdpi/ic_clock_in_video.png
  15. BIN
      app/src/main/res/mipmap-hdpi/ic_clock_left_n.png
  16. BIN
      app/src/main/res/mipmap-hdpi/ic_clock_left_p.png
  17. BIN
      app/src/main/res/mipmap-hdpi/ic_clock_right_n.png
  18. BIN
      app/src/main/res/mipmap-hdpi/ic_clock_right_p.png
  19. BIN
      app/src/main/res/mipmap-xhdpi/ic_clock_in_video.png
  20. BIN
      app/src/main/res/mipmap-xhdpi/ic_clock_left_n.png
  21. BIN
      app/src/main/res/mipmap-xhdpi/ic_clock_left_p.png
  22. BIN
      app/src/main/res/mipmap-xhdpi/ic_clock_right_n.png
  23. BIN
      app/src/main/res/mipmap-xhdpi/ic_clock_right_p.png
  24. BIN
      app/src/main/res/mipmap-xxhdpi/ic_clock_in_video.png
  25. BIN
      app/src/main/res/mipmap-xxhdpi/ic_clock_left_n.png
  26. BIN
      app/src/main/res/mipmap-xxhdpi/ic_clock_left_p.png
  27. BIN
      app/src/main/res/mipmap-xxhdpi/ic_clock_right_n.png
  28. BIN
      app/src/main/res/mipmap-xxhdpi/ic_clock_right_p.png
  29. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_clock_in_video.png
  30. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_clock_left_n.png
  31. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_clock_left_p.png
  32. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_clock_right_n.png
  33. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_clock_right_p.png
  34. 1 0
      app/src/main/res/values/strings.xml
  35. 5 0
      baselibrary/src/main/java/com/tongyu/luck/happywork/baselibrary/utils/AppUtils.java

+ 2 - 2
app/build.gradle

@@ -24,8 +24,8 @@ android {
         targetSdkVersion rootProject.ext.targetSdkVersion
         multiDexEnabled true
         multiDexKeepProguard file("multidexKeep.pro")//腾讯bugly的类放到主Dex
-        versionCode 339
-        versionName "3.3.9"
+        versionCode 341
+        versionName "3.4.1"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         flavorDimensions "versionCode"
         ndk {

+ 10 - 10
app/proguard-rules.pro

@@ -229,15 +229,15 @@
 -dontwarn com.tencent.bugly.**
 -keep public class com.tencent.bugly.**{*;}
 ##DatePick
--keep class your project path.MonthView {
+-keep class com.tongyu.luck.happywork.ui.widget.calendar.ClockMonthView {
     public <init>(android.content.Context);
 }
--keep class your project path.WeekBar {
-    public <init>(android.content.Context);
-}
--keep class your project path.WeekView {
-    public <init>(android.content.Context);
-}
--keep class your project path.YearView {
-    public <init>(android.content.Context);
-}
+#-keep class your project path.WeekBar {
+#    public <init>(android.content.Context);
+#}
+#-keep class your project path.WeekView {
+#    public <init>(android.content.Context);
+#}
+#-keep class your project path.YearView {
+#    public <init>(android.content.Context);
+#}

+ 49 - 19
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/CMainActivity.java

@@ -2,6 +2,7 @@ package com.tongyu.luck.happywork.ui.activity.cclient;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.v4.app.Fragment;
 import android.view.KeyEvent;
 import android.view.View;
 import android.widget.ImageView;
@@ -19,8 +20,11 @@ import com.tongyu.luck.happywork.event.TagValueEvent;
 import com.tongyu.luck.happywork.ui.activity.LoginActivity;
 import com.tongyu.luck.happywork.ui.adapter.cclient.viewpager.FragmentPageTabAdapter;
 import com.tongyu.luck.happywork.ui.base.BaseActivity;
+import com.tongyu.luck.happywork.ui.fragment.cclient.ClockFragment;
+import com.tongyu.luck.happywork.ui.fragment.cclient.HomeFragment;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.MainContacts;
 import com.tongyu.luck.happywork.ui.mvp.cclient.presenter.MainPresenter;
+import com.tongyu.luck.happywork.utils.ActionBarUtils;
 
 import org.greenrobot.eventbus.Subscribe;
 
@@ -74,33 +78,50 @@ public class CMainActivity extends BaseActivity<MainPresenter> implements MainCo
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.rl_home:
-                vpContent.setCurrentItem(0);
-                initTabCheck(view);
+                if (!rlHome.isSelected()) {
+                    vpContent.setCurrentItem(0);
+                    initTabCheck(view);
+                    ActionBarUtils.setStatusBarDarkTheme(this, true);
+                }
                 break;
             case R.id.rl_clock_in:
-                if (AppCacheManager.getInstance().isLogin()) {
-                    vpContent.setCurrentItem(1);
-                    initTabCheck(view);
-                } else {
-                    startActivity(new Intent(mContext, LoginActivity.class));
-
+                if (!rlClockIn.isSelected()) {
+                    if (AppCacheManager.getInstance().isLogin()) {
+                        vpContent.setCurrentItem(1);
+                        initTabCheck(view);
+                        ActionBarUtils.setStatusBarDarkTheme(this, false);
+                        List<Fragment> fragments = getSupportFragmentManager().getFragments();
+                        for (Fragment item : fragments) {
+                            if (item instanceof ClockFragment) {
+                                item.onResume();
+                                return;
+                            }
+                        }
+                    } else {
+                        startActivity(new Intent(mContext, LoginActivity.class));
+                    }
                 }
                 break;
             case R.id.rl_integral:
-                if (AppCacheManager.getInstance().isLogin()) {
-                    vpContent.setCurrentItem(2);
-                    initTabCheck(view);
-                } else {
-                    startActivity(new Intent(mContext, LoginActivity.class));
-
+                if (!rlIntegral.isSelected()) {
+                    if (AppCacheManager.getInstance().isLogin()) {
+                        vpContent.setCurrentItem(2);
+                        initTabCheck(view);
+                        ActionBarUtils.setStatusBarDarkTheme(this, true);
+                    } else {
+                        startActivity(new Intent(mContext, LoginActivity.class));
+                    }
                 }
                 break;
             case R.id.rl_me:
-                if (AppCacheManager.getInstance().isLogin()) {
-                    vpContent.setCurrentItem(3);
-                    initTabCheck(view);
-                } else {
-                    startActivity(new Intent(mContext, LoginActivity.class));
+                if (!rlMe.isSelected()) {
+                    if (AppCacheManager.getInstance().isLogin()) {
+                        vpContent.setCurrentItem(3);
+                        initTabCheck(view);
+                        ActionBarUtils.setStatusBarDarkTheme(this, true);
+                    } else {
+                        startActivity(new Intent(mContext, LoginActivity.class));
+                    }
                 }
                 break;
         }
@@ -202,4 +223,13 @@ public class CMainActivity extends BaseActivity<MainPresenter> implements MainCo
     protected void onDestroy() {
         super.onDestroy();
     }
+
+    /**
+     * 返回当前选中的第几个fragment
+     *
+     * @return
+     */
+    public int getFragmentCurrentItem() {
+        return vpContent.getCurrentItem();
+    }
 }

+ 8 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockMonthStatisticsActivity.java

@@ -1,6 +1,5 @@
 package com.tongyu.luck.happywork.ui.activity.cclient.clock;
 
-import android.content.Intent;
 import android.graphics.Typeface;
 import android.os.Bundle;
 import android.support.v4.widget.NestedScrollView;
@@ -57,6 +56,10 @@ public class ClockMonthStatisticsActivity extends BaseActivity<ClockMonthStatist
     NestedScrollView nslParent;
     @BindView(R.id.rl_month)
     RelativeLayout rlMonth;
+    @BindView(R.id.v_left)
+    View vLeft;
+    @BindView(R.id.v_right)
+    View vRight;
 
     @Override
     public int getLayoutId() {
@@ -177,9 +180,13 @@ public class ClockMonthStatisticsActivity extends BaseActivity<ClockMonthStatist
         switch (view.getId()) {
             case R.id.rl_left:
                 cvClockDate.scrollToPre(true);
+                vRight.setBackgroundResource(R.mipmap.ic_clock_right_p);
+                vLeft.setBackgroundResource(R.mipmap.ic_clock_left_n);
                 break;
             case R.id.rl_right:
                 cvClockDate.scrollToNext(true);
+                vRight.setBackgroundResource(R.mipmap.ic_clock_right_n);
+                vLeft.setBackgroundResource(R.mipmap.ic_clock_left_p);
                 break;
             case R.id.rl_month:
                 mvpPresenter.goUserStatistics();

+ 1 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockResultActivity.java

@@ -56,7 +56,7 @@ public class ClockResultActivity extends BaseActivity<ClockResultPresenter> impl
 
     @OnClick(R.id.btn_result)
     public void onClick(View view) {
-        startActivity(new Intent(mContext,ClockMonthStatisticsActivity.class));
+        finish();
     }
 
     OnActionBarMenuClickListener onActionBarMenuClickListener = new OnActionBarMenuClickListener() {

+ 6 - 10
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockRulesActivity.java

@@ -1,18 +1,13 @@
 package com.tongyu.luck.happywork.ui.activity.cclient.clock;
 
-import android.content.Intent;
 import android.os.Bundle;
-import android.view.View;
-import android.widget.TextView;
+import android.support.annotation.Nullable;
 
 import com.tongyu.luck.happywork.R;
 import com.tongyu.luck.happywork.ui.base.BaseActivity;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockRulesContacts;
 import com.tongyu.luck.happywork.ui.mvp.cclient.presenter.ClockRulesPresenter;
 
-import butterknife.BindView;
-import butterknife.OnClick;
-
 public class ClockRulesActivity extends BaseActivity<ClockRulesPresenter> implements ClockRulesContacts.IClockRulesView {
 
     @Override
@@ -26,12 +21,13 @@ public class ClockRulesActivity extends BaseActivity<ClockRulesPresenter> implem
     }
 
     @Override
-    public boolean isShowActionBar() {
-        return false;
+    public boolean isImmersion() {
+        return true;
     }
 
     @Override
-    public boolean isShowStatusTitle() {
-        return false;
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setBackColor(R.color.white);
     }
 }

+ 16 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockUserStatisticsActivity.java

@@ -62,6 +62,14 @@ public class ClockUserStatisticsActivity extends BaseActivity<ClockUserStatistic
     TextView tvWorkTimeWeek;
     @BindView(R.id.tv_loss_week)
     TextView tvLossWeek;
+    @BindView(R.id.v_left_month)
+    View vLeftMonth;
+    @BindView(R.id.v_right_month)
+    View vRightMonth;
+    @BindView(R.id.v_left_week)
+    View vLeftWeek;
+    @BindView(R.id.v_right_week)
+    View vRightWeek;
 
     @Override
     public int getLayoutId() {
@@ -156,15 +164,23 @@ public class ClockUserStatisticsActivity extends BaseActivity<ClockUserStatistic
         switch (view.getId()) {
             case R.id.rl_left_month:
                 mvpPresenter.goPreMonth();
+                vRightMonth.setBackgroundResource(R.mipmap.ic_clock_right_p);
+                vLeftMonth.setBackgroundResource(R.mipmap.ic_clock_left_n);
                 break;
             case R.id.rl_right_month:
                 mvpPresenter.goNextMonth();
+                vRightMonth.setBackgroundResource(R.mipmap.ic_clock_right_n);
+                vLeftMonth.setBackgroundResource(R.mipmap.ic_clock_left_p);
                 break;
             case R.id.rl_left_week:
                 mvpPresenter.goPreWeek();
+                vRightWeek.setBackgroundResource(R.mipmap.ic_clock_right_p);
+                vLeftWeek.setBackgroundResource(R.mipmap.ic_clock_left_n);
                 break;
             case R.id.rl_right_week:
                 mvpPresenter.goNextWeek();
+                vRightWeek.setBackgroundResource(R.mipmap.ic_clock_right_n);
+                vLeftWeek.setBackgroundResource(R.mipmap.ic_clock_left_p);
                 break;
         }
     }

+ 25 - 4
app/src/main/java/com/tongyu/luck/happywork/ui/fragment/cclient/ClockFragment.java

@@ -22,22 +22,21 @@ import com.tongyu.luck.happywork.bean.ClockInfoBean;
 import com.tongyu.luck.happywork.event.StringEvent;
 import com.tongyu.luck.happywork.ui.activity.cclient.CMainActivity;
 import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockMonthStatisticsActivity;
-import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockResultActivity;
 import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockRulesActivity;
-import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockTipsActivity;
+import com.tongyu.luck.happywork.ui.base.BaseActivity;
 import com.tongyu.luck.happywork.ui.base.BaseFragment;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockFragmentContacts;
 import com.tongyu.luck.happywork.ui.mvp.cclient.presenter.ClockFragmentPresenter;
 import com.tongyu.luck.happywork.ui.widget.dialog.CallServiceDialog;
+import com.tongyu.luck.happywork.ui.widget.dialog.SureDialog;
+import com.tongyu.luck.happywork.utils.JumpUtils;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
 import butterknife.BindDrawable;
 import butterknife.BindView;
-import butterknife.ButterKnife;
 import butterknife.OnClick;
-import butterknife.Unbinder;
 
 public class ClockFragment extends BaseFragment<ClockFragmentPresenter> implements ClockFragmentContacts.IClockFragmentView {
     @BindView(R.id.tv_work_hour)
@@ -92,6 +91,7 @@ public class ClockFragment extends BaseFragment<ClockFragmentPresenter> implemen
     Drawable dSuccess;
 
     CallServiceDialog mDialog;
+    SureDialog mSureDialog;
 
     @Override
     protected int getLayoutId() {
@@ -254,6 +254,27 @@ public class ClockFragment extends BaseFragment<ClockFragmentPresenter> implemen
         setOnRefreshClickListener(onRefreshClickListener);
     }
 
+    /**
+     * 未开启定位权限
+     */
+    @Override
+    public void onNoPermissions() {
+        if (((CMainActivity) mContext).getFragmentCurrentItem() != 1)
+            return;
+        if (mSureDialog == null) {
+            mSureDialog = new SureDialog(mContext);
+            mSureDialog.initData(R.string.clock_no_permissions_title, R.string.cancel, R.string.sure, new SureDialog.OnClickSureListener() {
+                @Override
+                public void onClick(boolean isSure) {
+                    if (isSure)
+                        JumpUtils.goPermissionSetting((BaseActivity) mContext);
+                }
+            });
+        }
+        if (!mSureDialog.isShowing())
+            mSureDialog.show();
+    }
+
     @Subscribe
     public void onEvent(StringEvent event) {
         if (event.getData().equals(EventConstant.EVENT_USER_CHANGE)) {//当用户认证状态发生改变则重新请求一次

+ 3 - 2
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/contacts/ClockFragmentContacts.java

@@ -14,6 +14,8 @@ public class ClockFragmentContacts {
 
         void onError();
 
+        void onNoPermissions();
+
     }
 
     public interface IClockFragmentPresenter extends IPresenter {
@@ -21,7 +23,7 @@ public class ClockFragmentContacts {
 
         void getClockInfo();
 
-        void locationAddress( boolean isClock, boolean isShowDialog);
+        void locationAddress(boolean isClock, boolean isShowDialog);
 
         void getApproveStatus();
 
@@ -39,6 +41,5 @@ public class ClockFragmentContacts {
         void requestClock(MvpDataCallBack<ClockResultBean> callBack);
 
 
-
     }
 }

+ 25 - 15
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/presenter/ClockFragmentPresenter.java

@@ -1,6 +1,8 @@
 package com.tongyu.luck.happywork.ui.mvp.cclient.presenter;
 
+import android.Manifest;
 import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
 
 import com.amap.api.location.AMapLocation;
 import com.tongyu.luck.happywork.AppCacheManager;
@@ -8,6 +10,7 @@ import com.tongyu.luck.happywork.R;
 import com.tongyu.luck.happywork.baselibrary.AppConstant;
 import com.tongyu.luck.happywork.baselibrary.EventConstant;
 import com.tongyu.luck.happywork.baselibrary.IntentConstant;
+import com.tongyu.luck.happywork.baselibrary.utils.PermissionsUtils;
 import com.tongyu.luck.happywork.baselibrary.utils.ToastUtils;
 import com.tongyu.luck.happywork.bean.ClockInfoBean;
 import com.tongyu.luck.happywork.bean.ClockResultBean;
@@ -25,6 +28,8 @@ import com.tongyu.luck.happywork.ui.widget.dialog.ProgressDialog;
 
 import org.greenrobot.eventbus.EventBus;
 
+import io.reactivex.functions.Consumer;
+
 public class ClockFragmentPresenter extends BasePresenter<ClockFragment> implements ClockFragmentContacts.IClockFragmentPresenter {
     private ClockFragmentModel mModel;
     private ProgressDialog mProgressDialog;
@@ -73,24 +78,29 @@ public class ClockFragmentPresenter extends BasePresenter<ClockFragment> impleme
      * 获取定位信息
      */
     @Override
-    public void locationAddress(final boolean isClock, boolean isShowDialog) {
+    public void locationAddress(final boolean isClock, final boolean isShowDialog) {
         if (isViewAttach()) {
-            if (isShowDialog) {
-                mProgressDialog.show();
-            }
-            mModel.locationAddress(new MvpDataCallBack<AMapLocation>() {
-                @Override
-                public void onData(AMapLocation data) {
-                    if (isViewAttach()) {
-                        mProgressDialog.dismiss();
-                        if (isClock) {
-                            requestClock();
-                        } else {
-                            getClockInfo();
+            if (PermissionsUtils.isHavePermissions((AppCompatActivity) mvpReference.get().getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) && PermissionsUtils.isHavePermissions((AppCompatActivity) mvpReference.get().getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) {
+                if (isShowDialog) {
+                    mProgressDialog.show();
+                }
+                mModel.locationAddress(new MvpDataCallBack<AMapLocation>() {
+                    @Override
+                    public void onData(AMapLocation data) {
+                        if (isViewAttach()) {
+                            mProgressDialog.dismiss();
+                            if (isClock) {
+                                requestClock();
+                            } else {
+                                getClockInfo();
+                            }
                         }
                     }
-                }
-            });
+                });
+            } else {//无定位权限
+                mvpReference.get().onError();
+                mvpReference.get().onNoPermissions();
+            }
         }
     }
 

+ 106 - 0
app/src/main/java/com/tongyu/luck/happywork/utils/JumpUtils.java

@@ -0,0 +1,106 @@
+package com.tongyu.luck.happywork.utils;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Build;
+import android.text.TextUtils;
+
+import com.tongyu.luck.happywork.BuildConfig;
+import com.tongyu.luck.happywork.ui.base.BaseActivity;
+
+public class JumpUtils {
+
+    /**
+     * 前往权限设置
+     */
+    public static void goPermissionSetting(BaseActivity baseActivity) {
+        String sdk = android.os.Build.VERSION.SDK; // SDK号
+        String model = android.os.Build.MODEL; // 手机型号
+        String release = android.os.Build.VERSION.RELEASE; // android系统版本号
+        String brand = Build.BRAND;//手机厂商
+        if (TextUtils.equals(brand.toLowerCase(), "redmi") || TextUtils.equals(brand.toLowerCase(), "xiaomi")) {
+            gotoMiuiPermission(baseActivity);//小米
+        } else if (TextUtils.equals(brand.toLowerCase(), "meizu")) {
+            gotoMeizuPermission(baseActivity);
+        } else if (TextUtils.equals(brand.toLowerCase(), "huawei") || TextUtils.equals(brand.toLowerCase(), "honor")) {
+            gotoHuaweiPermission(baseActivity);
+        } else {
+            baseActivity.startActivity(getAppDetailSettingIntent());
+        }
+    }
+
+    /**
+     * 跳转到miui的权限管理页面
+     */
+    private static void gotoMiuiPermission(Context context) {
+        try { // MIUI 8
+            Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
+            localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
+            localIntent.putExtra("extra_pkgname", context.getPackageName());
+            context.startActivity(localIntent);
+        } catch (Exception e) {
+            try { // MIUI 5/6/7
+                Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
+                localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
+                localIntent.putExtra("extra_pkgname", context.getPackageName());
+                context.startActivity(localIntent);
+            } catch (Exception e1) { // 否则跳转到应用详情
+                context.startActivity(getAppDetailSettingIntent());
+            }
+        }
+    }
+
+    /**
+     * 跳转到魅族的权限管理系统
+     */
+    private static void gotoMeizuPermission(Context context) {
+        try {
+            Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");
+            intent.addCategory(Intent.CATEGORY_DEFAULT);
+            intent.putExtra("packageName", BuildConfig.APPLICATION_ID);
+            context.startActivity(intent);
+        } catch (Exception e) {
+            e.printStackTrace();
+            context.startActivity(getAppDetailSettingIntent());
+        }
+    }
+
+    /**
+     * 华为的权限管理页面
+     */
+    private static void gotoHuaweiPermission(Context context) {
+        try {
+            Intent intent = new Intent();
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//华为权限管理
+            intent.setComponent(comp);
+            context.startActivity(intent);
+        } catch (Exception e) {
+            e.printStackTrace();
+            context.startActivity(getAppDetailSettingIntent());
+        }
+
+    }
+
+    /**
+     * 获取应用详情页面intent(如果找不到要跳转的界面,也可以先把用户引导到系统设置页面)
+     *
+     * @return
+     */
+    private static Intent getAppDetailSettingIntent() {
+        Intent localIntent = new Intent();
+        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        if (Build.VERSION.SDK_INT >= 9) {
+            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
+            localIntent.setData(Uri.fromParts("package", BuildConfig.APPLICATION_ID, null));
+        } else if (Build.VERSION.SDK_INT <= 8) {
+            localIntent.setAction(Intent.ACTION_VIEW);
+            localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
+            localIntent.putExtra("com.android.settings.ApplicationPkgName", BuildConfig.APPLICATION_ID);
+        }
+        return localIntent;
+
+    }
+}

+ 4 - 2
app/src/main/res/layout/activity_clock_month_statistics.xml

@@ -164,10 +164,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_left"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_left" />
+                    android:background="@mipmap/ic_clock_left_p" />
 
             </RelativeLayout>
 
@@ -186,10 +187,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_right"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_right" />
+                    android:background="@mipmap/ic_clock_right_n" />
 
             </RelativeLayout>
         </LinearLayout>

+ 16 - 12
app/src/main/res/layout/activity_clock_user_statistics.xml

@@ -90,10 +90,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_left_month"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_left" />
+                    android:background="@mipmap/ic_clock_left_p" />
 
             </RelativeLayout>
 
@@ -112,10 +113,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_right_month"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_right" />
+                    android:background="@mipmap/ic_clock_right_n" />
 
             </RelativeLayout>
         </LinearLayout>
@@ -223,8 +225,8 @@
             android:layout_height="56dp"
             android:background="@color/white"
             android:paddingLeft="15dp"
-            android:visibility="gone"
-            android:paddingRight="15dp">
+            android:paddingRight="15dp"
+            android:visibility="gone">
 
             <TextView
                 android:layout_width="wrap_content"
@@ -247,9 +249,9 @@
 
         <View
             android:layout_width="match_parent"
-            android:visibility="gone"
             android:layout_height="1dp"
-            android:background="@color/view_line_color_gray" />
+            android:background="@color/view_line_color_gray"
+            android:visibility="gone" />
 
         <RelativeLayout
             android:layout_width="match_parent"
@@ -307,10 +309,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_left_week"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_left" />
+                    android:background="@mipmap/ic_clock_left_p" />
 
             </RelativeLayout>
 
@@ -329,10 +332,11 @@
                 android:layout_height="match_parent">
 
                 <View
+                    android:id="@+id/v_right_week"
                     android:layout_width="9dp"
                     android:layout_height="14dp"
                     android:layout_centerInParent="true"
-                    android:background="@mipmap/ic_clock_gray_right" />
+                    android:background="@mipmap/ic_clock_right_n" />
 
             </RelativeLayout>
         </LinearLayout>
@@ -439,9 +443,9 @@
             android:layout_width="match_parent"
             android:layout_height="56dp"
             android:background="@color/white"
-            android:visibility="gone"
             android:paddingLeft="15dp"
-            android:paddingRight="15dp">
+            android:paddingRight="15dp"
+            android:visibility="gone">
 
             <TextView
                 android:layout_width="wrap_content"
@@ -465,8 +469,8 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="1dp"
-            android:visibility="gone"
-            android:background="@color/view_line_color_gray" />
+            android:background="@color/view_line_color_gray"
+            android:visibility="gone" />
 
         <RelativeLayout
             android:layout_width="match_parent"

BIN
app/src/main/res/mipmap-hdpi/ic_clock_in_video.png


BIN
app/src/main/res/mipmap-hdpi/ic_clock_left_n.png


BIN
app/src/main/res/mipmap-hdpi/ic_clock_left_p.png


BIN
app/src/main/res/mipmap-hdpi/ic_clock_right_n.png


BIN
app/src/main/res/mipmap-hdpi/ic_clock_right_p.png


BIN
app/src/main/res/mipmap-xhdpi/ic_clock_in_video.png


BIN
app/src/main/res/mipmap-xhdpi/ic_clock_left_n.png


BIN
app/src/main/res/mipmap-xhdpi/ic_clock_left_p.png


BIN
app/src/main/res/mipmap-xhdpi/ic_clock_right_n.png


BIN
app/src/main/res/mipmap-xhdpi/ic_clock_right_p.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_clock_in_video.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_clock_left_n.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_clock_left_p.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_clock_right_n.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_clock_right_p.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_clock_in_video.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_clock_left_n.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_clock_left_p.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_clock_right_n.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_clock_right_p.png


+ 1 - 0
app/src/main/res/values/strings.xml

@@ -101,6 +101,7 @@
     <string name="clock_loss2">缺卡</string>
     <string name="clock_call_service">开心工作客服电话</string>
     <string name="clock_service_time">在线时间:每天8:00-21:00</string>
+    <string name="clock_no_permissions_title">请前往设置打开用户定位权限</string>
 
     <string name="go_use">开启开心打卡之旅</string>
     <string name="no_finish">未完成</string>

+ 5 - 0
baselibrary/src/main/java/com/tongyu/luck/happywork/baselibrary/utils/AppUtils.java

@@ -1,10 +1,14 @@
 package com.tongyu.luck.happywork.baselibrary.utils;
 
 import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Build;
 import android.text.TextUtils;
 import android.view.WindowManager;
 
@@ -175,4 +179,5 @@ public class AppUtils {
         }
         return null;
     }
+
 }