diff --git a/app/src/main/java/com/gh/base/ToolBarActivity.java b/app/src/main/java/com/gh/base/ToolBarActivity.java
index 62a57a0179..b1fc079ab4 100644
--- a/app/src/main/java/com/gh/base/ToolBarActivity.java
+++ b/app/src/main/java/com/gh/base/ToolBarActivity.java
@@ -5,6 +5,7 @@ import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -197,6 +198,16 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon
if (count != null) {
mDownloadCountHint.setVisibility(View.VISIBLE);
mDownloadCountHint.setText(count);
+
+ ViewGroup.LayoutParams params = mDownloadCountHint.getLayoutParams();
+ if (TextUtils.isEmpty(count)) {
+ params.width = DisplayUtils.dip2px(6);
+ params.height = DisplayUtils.dip2px(6);
+ } else {
+ params.width = DisplayUtils.dip2px(12);
+ params.height = DisplayUtils.dip2px(12);
+ }
+ mDownloadCountHint.setLayoutParams(params);
} else {
mDownloadCountHint.setVisibility(View.GONE);
}
diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java
index 5540aa00c4..8c27a9edfa 100644
--- a/app/src/main/java/com/gh/common/util/DialogUtils.java
+++ b/app/src/main/java/com/gh/common/util/DialogUtils.java
@@ -5,8 +5,10 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
+import android.preference.PreferenceManager;
import android.text.Html;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
@@ -32,6 +34,8 @@ import com.gh.common.view.DrawableView;
import com.gh.gamecenter.AboutActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.WebActivity;
+import com.halo.assistant.HaloApp;
+import com.halo.assistant.fragment.SettingsFragment;
import com.lightgame.utils.AppManager;
import com.lightgame.utils.Utils;
@@ -152,22 +156,19 @@ public class DialogUtils {
}
public static void checkDownload(Context context, String size, CheckDownloadCallBack callBack) {
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
if (!NetworkUtils.isNetworkConnected(context)) {
showNoConnectionDownloadDialog(context, null,
() -> callBack.onResponse(true));
- } else if (NetworkUtils.isWifiConnected(context) || filter4GorSize(context, size)) {
+ } else if (NetworkUtils.isWifiConnected(context)
+ || filter4GorSize(context, size)
+ || !preferences.getBoolean(SettingsFragment.getTrafficDownloadHintKey(), true)) {
callBack.onResponse(false);
} else {
MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(context), "出现弹窗提示");
showDownloadDialog(context,
- () -> {
- callBack.onResponse(false);
- MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(context), "立即下载");
- },
- () -> {
- callBack.onResponse(true);
- MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(context), "连上WiFi后自动下载");
- });
+ () -> callBack.onResponse(false),
+ () -> callBack.onResponse(true));
}
}
@@ -207,7 +208,43 @@ public class DialogUtils {
}
public static void showDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) {
- showWarningDialog(context, "下载提示", "当前正在使用移动网络,立即下载会消耗手机流量", "连上WiFi后自动下载", "立即下载", listener, cancelListener);
+ context = checkDialogContext(context);
+
+ final Dialog dialog = new Dialog(context, R.style.GhAlertDialog);
+
+ View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_download_traffic, null);
+ View allowOnce = contentView.findViewById(R.id.allow_once);
+ View allowAlways = contentView.findViewById(R.id.allow_always);
+ View wifiAuto = contentView.findViewById(R.id.wifi_auto);
+
+ Context finalContext = context;
+ allowOnce.setOnClickListener(v -> {
+ Utils.toast(finalContext, "已使用移动网络下载,请注意流量消耗!");
+ listener.onConfirm();
+ dialog.dismiss();
+ MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(finalContext), "本次允许");
+ });
+ wifiAuto.setOnClickListener(v -> {
+ cancelListener.onCancel();
+ dialog.dismiss();
+ MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(finalContext), "连上WiFi后自动下载");
+ });
+ allowAlways.setOnClickListener(v -> {
+ Utils.toast(finalContext, "已使用移动网络下载,请注意流量消耗!");
+ PreferenceManager
+ .getDefaultSharedPreferences(finalContext)
+ .edit()
+ .putBoolean(SettingsFragment.getTrafficDownloadHintKey(), false)
+ .apply();
+ listener.onConfirm();
+ dialog.dismiss();
+ MtaHelper.onEvent("移动网络下载", NetworkUtils.getMobileNetworkType(finalContext), "总是允许");
+ });
+
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.setContentView(contentView);
+ dialog.show();
+
}
public static void showResumeDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) {
@@ -225,10 +262,30 @@ public class DialogUtils {
}
public static void showPluginDialog(Context context, final ConfirmListener listener) {
- Spanned spanned = Html.fromHtml("您将进行插件化安装以实现插件功能,此过程将"
- + "卸载" + "当前使用的版本并"
- + "安装插件版本");
- showWarningDialog(context, "插件化安装", spanned, listener);
+ context = checkDialogContext(context);
+
+ MtaHelper.onEvent("插件化", "插件化安装弹窗", "出现弹窗提示");
+
+ final Dialog dialog = new Dialog(context, R.style.GhAlertDialog);
+
+ View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_plugin, null);
+ TextView negativeTv = contentView.findViewById(R.id.dialog_negative);
+ TextView positiveTv = contentView.findViewById(R.id.dialog_positive);
+ negativeTv.setOnClickListener(v -> {
+ dialog.dismiss();
+ MtaHelper.onEvent("插件化", "插件化安装弹窗", "取消");
+ });
+ positiveTv.setOnClickListener(view -> {
+ if (listener != null) {
+ listener.onConfirm();
+ }
+ dialog.dismiss();
+ MtaHelper.onEvent("插件化", "插件化安装弹窗", "确认并开始");
+ });
+
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.setContentView(contentView);
+ dialog.show();
}
/**
diff --git a/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt b/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt
index c244f38722..967034839f 100644
--- a/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt
@@ -1,12 +1,16 @@
package com.gh.gamecenter.download
+import android.graphics.Color
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.gh.base.fragment.BaseFragment_TabLayout
import com.gh.common.util.MtaHelper
+import com.gh.common.util.dip2px
import com.gh.download.DownloadManager
import com.gh.gamecenter.DownloadManagerActivity
import com.gh.gamecenter.R
@@ -122,9 +126,21 @@ class DownloadFragment : BaseFragment_TabLayout() {
}
}
- mDownloadNumber.text = if (downloadingCount > 0) {
- downloadingCount.toString()
- } else ""
+ val layoutParams = mDownloadNumber.layoutParams as LinearLayout.LayoutParams
+ if (downloadingCount > 0) {
+ layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT
+ layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
+ layoutParams.setMargins(4F.dip2px(), 0, 0, 0F.dip2px())
+ mDownloadNumber.setBackgroundColor(Color.TRANSPARENT)
+ mDownloadNumber.text = downloadingCount.toString()
+ } else {
+ layoutParams.width = 6F.dip2px()
+ layoutParams.height = 6F.dip2px()
+ layoutParams.setMargins(2F.dip2px(), 0, 0, 3F.dip2px())
+ mDownloadNumber.setBackgroundResource(R.drawable.oval_hint_red_bg)
+ mDownloadNumber.text = ""
+ }
+ mDownloadNumber.layoutParams = layoutParams
}
private fun setUpdateHint() {
diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java
index 03daba87fb..12a235d352 100644
--- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java
@@ -2,10 +2,12 @@ package com.gh.gamecenter.fragment;
import android.content.Intent;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.ScaleAnimation;
@@ -21,6 +23,7 @@ import com.gh.common.databind.BindingAdapters;
import com.gh.common.util.CheckLoginUtils;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
+import com.gh.common.util.DisplayUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.common.util.MtaHelper;
import com.gh.download.DownloadManager;
@@ -281,6 +284,16 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL
if (count != null) {
mDownloadHintTv.setVisibility(View.VISIBLE);
mDownloadHintTv.setText(count);
+
+ ViewGroup.LayoutParams params = mDownloadHintTv.getLayoutParams();
+ if (TextUtils.isEmpty(count)) {
+ params.width = DisplayUtils.dip2px(6);
+ params.height = DisplayUtils.dip2px(6);
+ } else {
+ params.width = DisplayUtils.dip2px(12);
+ params.height = DisplayUtils.dip2px(12);
+ }
+ mDownloadHintTv.setLayoutParams(params);
} else {
mDownloadHintTv.setVisibility(View.GONE);
}
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
index 3b7a3b06e1..d065becea2 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
@@ -860,6 +860,15 @@ class GameDetailFragment : NormalFragment() {
private fun updateDownloadCountHint(updateList: List?) {
val count = DownloadManager.getInstance(requireContext()).getDownloadOrUpdateCount(updateList)
+ val params = mDownloadCountHint?.layoutParams
+ if (TextUtils.isEmpty(count)) {
+ params?.width = DisplayUtils.dip2px(6f)
+ params?.height = DisplayUtils.dip2px(6f)
+ } else {
+ params?.width = DisplayUtils.dip2px(12f)
+ params?.height = DisplayUtils.dip2px(12f)
+ }
+ mDownloadCountHint?.layoutParams = params
mDownloadCountHint?.goneIf(count == null)
mDownloadCountHint?.text = count.toString()
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 b727fa3695..b19c39cb48 100644
--- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java
+++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java
@@ -96,7 +96,6 @@ public class SettingsFragment extends NormalFragment {
public static final String AUTO_INSTALL_SP_KEY = "autoinstall";
public static final String CONCERN_GAME_SP_KEY = "concerngame";
public static final String FONT_SIZE_SP_KEY = "fontsize";
- public static final String TRAFFIC_DOWNLOAD_SP_KEY = "traffic_download";
private SharedPreferences sp;
@@ -106,6 +105,10 @@ public class SettingsFragment extends NormalFragment {
private boolean mIsUpdate;
+ public static String getTrafficDownloadHintKey() {
+ return PackageUtils.getVersionName() + "traffic_download_hint";
+ }
+
@Override
public void onStop() {
saveCurrentSetting();
@@ -157,7 +160,9 @@ public class SettingsFragment extends NormalFragment {
mSettingCacheTv.setText(getCacheSize());
mSettingAutoinstallSb.setChecked(sp.getBoolean(AUTO_INSTALL_SP_KEY, true));
mSettingConcerngameSb.setChecked(sp.getBoolean(CONCERN_GAME_SP_KEY, true));
- mSettingTrafficSb.setChecked(sp.getBoolean(TRAFFIC_DOWNLOAD_SP_KEY, true));
+ mSettingTrafficSb.setChecked(sp.getBoolean(getTrafficDownloadHintKey(), true));
+ mSettingTrafficSb.setOnCheckedChangeListener((buttonView, isChecked) ->
+ MtaHelper.onEvent("我的光环_设置", "流量下载提醒", isChecked ? "打开" : "关闭"));
checkSizeIndex = sp.getInt(FONT_SIZE_SP_KEY, 1);
if (checkSizeIndex == 0) {
@@ -239,7 +244,7 @@ public class SettingsFragment extends NormalFragment {
mEditor.putBoolean(AUTO_INSTALL_SP_KEY, mSettingAutoinstallSb.isChecked());
// mEditor.putBoolean("autodelete", mSettingAutodeleteSb.isChecked());
mEditor.putBoolean(CONCERN_GAME_SP_KEY, mSettingConcerngameSb.isChecked());
- mEditor.putBoolean(TRAFFIC_DOWNLOAD_SP_KEY, mSettingTrafficSb.isChecked());
+ mEditor.putBoolean(getTrafficDownloadHintKey(), mSettingTrafficSb.isChecked());
mEditor.putInt(FONT_SIZE_SP_KEY, checkSizeIndex);
mEditor.apply();
}
diff --git a/app/src/main/res/layout/dialog_download_traffic.xml b/app/src/main/res/layout/dialog_download_traffic.xml
new file mode 100644
index 0000000000..1239efb947
--- /dev/null
+++ b/app/src/main/res/layout/dialog_download_traffic.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_plugin.xml b/app/src/main/res/layout/dialog_plugin.xml
new file mode 100644
index 0000000000..0b226ac23e
--- /dev/null
+++ b/app/src/main/res/layout/dialog_plugin.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml
index 7474af3887..bda44bd442 100644
--- a/app/src/main/res/layout/fragment_toolbar.xml
+++ b/app/src/main/res/layout/fragment_toolbar.xml
@@ -58,13 +58,14 @@
android:id="@+id/action_tip"
android:layout_width="12dp"
android:layout_height="12dp"
- android:layout_alignParentRight="true"
- android:layout_marginTop="8dp"
+ android:layout_alignParentBottom="true"
+ android:layout_marginLeft="24dp"
+ android:layout_marginBottom="30dp"
android:background="@drawable/oval_hint_red_bg"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="8sp"
- android:visibility="gone" />
+ android:visibility="visible" />
diff --git a/app/src/main/res/layout/menu_action_download.xml b/app/src/main/res/layout/menu_action_download.xml
index 09aed85571..dea62f3255 100644
--- a/app/src/main/res/layout/menu_action_download.xml
+++ b/app/src/main/res/layout/menu_action_download.xml
@@ -14,12 +14,12 @@
android:id="@+id/menu_download_count_hint"
android:layout_width="12dp"
android:layout_height="12dp"
- android:layout_alignParentRight="true"
- android:layout_marginTop="8dp"
- android:layout_marginRight="8dp"
- android:visibility="gone"
+ android:layout_alignParentBottom="true"
+ android:layout_marginLeft="32dp"
+ android:layout_marginBottom="30dp"
android:background="@drawable/oval_hint_red_bg"
android:gravity="center"
android:textColor="@android:color/white"
- android:textSize="8sp" />
+ android:textSize="8sp"
+ android:visibility="visible" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/tab_item_download_number.xml b/app/src/main/res/layout/tab_item_download_number.xml
index 3954ec82bf..07d38bc6f1 100644
--- a/app/src/main/res/layout/tab_item_download_number.xml
+++ b/app/src/main/res/layout/tab_item_download_number.xml
@@ -1,25 +1,27 @@
-
+
+ android:id="@+id/tab_download_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="19dp"
+ android:text="@string/download_game"
+ android:textColor="@color/text_tabbar_style"
+ android:textSize="14sp" />
-
\ No newline at end of file
+ android:id="@+id/tab_download_number"
+ android:layout_width="6dp"
+ android:layout_height="6dp"
+ android:layout_marginLeft="2dp"
+ android:layout_marginBottom="3dp"
+ android:background="@drawable/oval_hint_red_bg"
+ android:gravity="center"
+ android:textColor="@color/text_tabbar_style"
+ android:textSize="10sp" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 397edd608b..799800910e 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -142,5 +142,5 @@
#FAFAFA
#3BABFF
#2461FF
-
+ #FF0000
\ No newline at end of file