diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java
index 41e932b1e2..62ddfc2ebc 100644
--- a/app/src/main/java/com/gh/base/BaseActivity.java
+++ b/app/src/main/java/com/gh/base/BaseActivity.java
@@ -15,6 +15,7 @@ import android.os.TransactionTooLargeException;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.Gravity;
+import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -50,6 +51,7 @@ import com.gh.gamecenter.eventbus.EBShowDialog;
import com.lightgame.BaseAppCompatActivity;
import com.lightgame.download.DownloadEntity;
import com.lightgame.download.FileUtils;
+import com.lightgame.utils.Util_System_Keyboard;
import com.lightgame.utils.Utils;
import com.tencent.tauth.Tencent;
@@ -89,6 +91,7 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy
private boolean mHasAddTaskFloat = false;
private View mTaskBackView;
private WindowManager mWM;
+ private WindowManager.LayoutParams mWmParams;
protected final Handler mBaseHandler = new BaseHandler(this);
@@ -314,22 +317,75 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy
private void addTaskBackView() {
mWM = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
- wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION;
- wmParams.format = PixelFormat.RGBA_8888;
- wmParams.gravity = Gravity.LEFT | Gravity.BOTTOM;
- wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
- wmParams.width = DisplayUtils.dip2px(76F);
- wmParams.height = DisplayUtils.dip2px(36F);
- wmParams.y = DisplayUtils.dip2px(114F);
+ mWmParams = new WindowManager.LayoutParams();
+ mWmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION;
+ mWmParams.format = PixelFormat.RGBA_8888;
+ mWmParams.gravity = Gravity.LEFT | Gravity.BOTTOM;
+ mWmParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+ mWmParams.width = DisplayUtils.dip2px(76F);
+ mWmParams.height = DisplayUtils.dip2px(36F);
+ mWmParams.y = SPUtils.getInt(Constants.SP_TASK_FLOAT_LAST_Y, DisplayUtils.dip2px(114F));
mTaskBackView = View.inflate(this, R.layout.layout_task_back, null);
mTaskBackView.setOnClickListener(v -> {
+ // 如果当前是在键盘输入时,点击"返回任务"要先收起键盘
+ Util_System_Keyboard.hideSoftKeyboard(this);
startActivity(EnergyCenterActivity.Companion.getIntent(this));
SPUtils.setBoolean(Constants.SP_SHOW_TASK_FLOAT, false);
mWM.removeView(mTaskBackView);
mHasAddTaskFloat = false;
});
- mWM.addView(mTaskBackView, wmParams);
+ setFloatTouchListener();
+ mWM.addView(mTaskBackView, mWmParams);
+ }
+
+ private void setFloatTouchListener() {
+ int screenHeight = getResources().getDisplayMetrics().heightPixels;
+
+ mTaskBackView.setOnTouchListener(new View.OnTouchListener() {
+
+ private int intervalY;
+ private int startY;
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ final int y = (int) event.getRawY();
+
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ intervalY = y;
+ startY = y;
+ break;
+
+ case MotionEvent.ACTION_MOVE:
+ mWmParams.y -= (y - intervalY);
+ if (mWmParams.y < 0) {
+ mWmParams.y = 0;
+ }
+
+ if (mWmParams.y > screenHeight) {
+ mWmParams.y = screenHeight;
+ }
+
+ if (mWM != null && mTaskBackView != null && mHasAddTaskFloat) {
+ mWM.updateViewLayout(mTaskBackView, mWmParams);
+ }
+
+ intervalY = y;
+ return true;
+
+ case MotionEvent.ACTION_UP:
+ // 滑动距离少于10视为点击,返回false,否则视为拖动,返回true
+ if (Math.abs(y - startY) <= 10) {
+ return false;
+ } else {
+ // 记录位置
+ SPUtils.setInt(Constants.SP_TASK_FLOAT_LAST_Y, mWmParams.y);
+ return true;
+ }
+ }
+ return false;
+ }
+ });
}
diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java
index 72a5ae96d0..4183b9d7cf 100644
--- a/app/src/main/java/com/gh/common/constant/Constants.java
+++ b/app/src/main/java/com/gh/common/constant/Constants.java
@@ -180,8 +180,10 @@ public class Constants {
// 头像挂件ID
public static final String SP_CHOOSE_AVATAR_ID = "choose_avatar_id";
- //是否显示返回任务悬浮图标
+ // 是否显示返回任务悬浮图标
public static final String SP_SHOW_TASK_FLOAT = "show_task_float";
+ // 悬浮图标Y值
+ public static final String SP_TASK_FLOAT_LAST_Y = "task_float_last_y";
//手机号码匹配规则
public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt
index a6d54074b6..1ca5825b43 100644
--- a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt
+++ b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt
@@ -12,7 +12,6 @@ import com.gh.common.util.createRequestBody
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.*
import com.gh.gamecenter.eventbus.EBUserFollow
-import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.retrofit.Response
import com.gh.gamecenter.retrofit.RetrofitManager
diff --git a/app/src/main/res/layout/fragment_energy_center.xml b/app/src/main/res/layout/fragment_energy_center.xml
index 3cd942428e..32c4defde9 100644
--- a/app/src/main/res/layout/fragment_energy_center.xml
+++ b/app/src/main/res/layout/fragment_energy_center.xml
@@ -145,12 +145,15 @@
签到规则
1、每日可领取2个光能、1个成长值,最多领取连续7天签到奖励,中断或签满7天则重新计算
2、连续签满7天可额外奖励1次免费抽奖机会
- 又有光能可以收了
- 收能量兑大奖
+ 【光环助手】又有光能可以收了!收能量兑大奖!
+ 每日10点连续签到领能量,赶紧行动吧!
开启成功
系统日历将准时提醒您签到