From b80fab06adbb5461d36da26ac2aedb3dd7425e9b Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 2 Jan 2020 16:23:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E6=97=B6=E9=95=BF=E5=8A=9F=E8=83=BD=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98=20https://gitlab.ghzs.com/?= =?UTF-8?q?pm/halo-app-issues/issues/722?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/MainActivity.java | 15 +++++++++++++-- .../gh/gamecenter/mygame/MyPlayedGameAdapter.kt | 5 ++++- .../gamecenter/retrofit/service/ApiService.java | 4 ++-- .../assistant/fragment/SettingsFragment.java | 16 +++++++++++----- app/src/main/res/layout/dialog_usage_stats.xml | 2 +- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 0bdffab541..a61e815121 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -108,6 +108,7 @@ import com.tencent.bugly.crashreport.CrashReport; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; @@ -998,6 +999,7 @@ public class MainActivity extends BaseActivity { DataCollectionUtils.uploadInorunstall(this, busFour.getType(), busFour.getPackageName()); } + @SuppressWarnings("ResultOfMethodCallIgnored") @SuppressLint("CheckResult") private void postNewlyInstalledApp(String gameId, String packageName) { @@ -1017,11 +1019,20 @@ public class MainActivity extends BaseActivity { .subscribe(new EmptyResponse<>()); if (!TextUtils.isEmpty(gameId) && UserManager.getInstance().isLoggedIn()) { - RetrofitManager.getInstance(MainActivity.this).getApi() - .postPlayedGame(UserManager.getInstance().getUserId(), gameId) + JSONObject jsonObject = new JSONObject(); + try { + jsonObject.put("game_id", gameId); + jsonObject.put("package", packageName); + RequestBody rBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()); + + RetrofitManager.getInstance(MainActivity.this).getApi() + .postPlayedGame(UserManager.getInstance().getUserId(), rBody) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .subscribe(new EmptyResponse<>()); + } catch (JSONException e) { + e.printStackTrace(); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt index 6ec3d1a674..3937dc1b84 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt @@ -148,7 +148,10 @@ class MyPlayedGameAdapter(context: Context, private val mViewModel: PlayedGameVi } override fun onClick(widget: View) { - UsageStatsHelper.skipToUsageStats(mContext, UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) + DialogUtils.showUsageStatsDialog( + mContext, + { UsageStatsHelper.skipToUsageStats(mContext, UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) }, + null) } }, content.length - 5, content.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index 23af27cb17..115f33cde8 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -2052,8 +2052,8 @@ public interface ApiService { /** * 记录用户成功安装应用(用于玩过的游戏) */ - @POST("users/{user_id}/played_games/{game_id}") - Single postPlayedGame(@Path("user_id") String userId, @Path("game_id") String gameId); + @POST("users/{user_id}/played_games/") + Single postPlayedGame(@Path("user_id") String userId, @Body RequestBody body); /** * 批量新增玩过的游戏 diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java index b19c39cb48..99c31150d3 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java @@ -18,10 +18,6 @@ import android.widget.RadioGroup; import android.widget.RelativeLayout; import android.widget.TextView; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; -import androidx.core.content.ContextCompat; - import com.gh.common.constant.Config; import com.gh.common.history.HistoryHelper; import com.gh.common.util.CheckLoginUtils; @@ -56,6 +52,9 @@ import org.greenrobot.eventbus.EventBus; import java.io.File; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; import butterknife.BindView; import butterknife.OnClick; import io.reactivex.Observable; @@ -197,7 +196,14 @@ public class SettingsFragment extends NormalFragment { () -> mSettingUsageStatsSb.setChecked(false)); } } else { - sp.edit().putBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, false).apply(); + DialogUtils.showAlertDialog(getContext(), + "提示", + "关闭后将无法统计游戏时长,确定要关闭吗?", + "确定关闭", + "暂不关闭", + () -> sp.edit().putBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, false).apply(), + () -> mSettingUsageStatsSb.setChecked(true) + ); } }); } diff --git a/app/src/main/res/layout/dialog_usage_stats.xml b/app/src/main/res/layout/dialog_usage_stats.xml index a22f8c4642..624b0c6906 100644 --- a/app/src/main/res/layout/dialog_usage_stats.xml +++ b/app/src/main/res/layout/dialog_usage_stats.xml @@ -31,7 +31,7 @@ android:layout_marginTop="24dp" android:layout_marginRight="16dp" android:lineSpacingExtra="8dp" - android:text="开启后可以为你记录每款游戏的游戏时长,你只需再系统【有权查看使用情况的应用】设置中开启即可" + android:text="开启后可以为你统计每款游戏的游戏时长,你只需在系统设置【有权查看使用情况的应用】中找到光环助手,并选择开启即可" android:textColor="@color/text_666666" android:textSize="13sp" />