Commit f393160c by Baoxy

fix: 修复BUG

1.时间检验需调整为获取网络时间 2.每次切入桌面内检测一次激活码状态,若服务端对已激活设备清除激活信息,则弹窗提示[您的激活已失效,如有疑问请致电4008265936] 3.[新安装应用自动添加]打开后,下次进入设置,该开关被自动关闭 4.桌面的应用图标去除白框 5.进入桌面时追加切换进度条, 目前在进入桌面后立即按home键,会出现长时间停留普通桌面的情况 6.[新安装应用自动添加]提示语变更为[打开开关后,新安装的应用将自动添加到学习帮桌面]
parent 5896f532
...@@ -306,7 +306,7 @@ ...@@ -306,7 +306,7 @@
<string name="work_back">back</string> <string name="work_back">back</string>
<string name="open_start_tip">开启后[学习帮]固定在前台不可退出,关闭可长按home退出到普通桌面,配置完成后请退出返回到移动终端管控软件主页</string> <string name="open_start_tip">开启后[学习帮]固定在前台不可退出,关闭可长按home退出到普通桌面,配置完成后请退出返回到移动终端管控软件主页</string>
<string name="open_new_app_tip">打开后新安装应用自动在桌面显示</string> <string name="open_new_app_tip">打开开关后,新安装的应用将自动添加到学习帮桌面</string>
<string name="open">打开</string> <string name="open">打开</string>
<string name="close">关闭</string> <string name="close">关闭</string>
<string name="developing">开发中</string> <string name="developing">开发中</string>
......
...@@ -2677,7 +2677,6 @@ public class Workspace extends PagedView ...@@ -2677,7 +2677,6 @@ public class Workspace extends PagedView
} }
public void onDrop(final DragObject d) { public void onDrop(final DragObject d) {
Log.e("TAG1", "workspace onDrop: ");
mDragViewVisualCenter = d.getVisualCenter(mDragViewVisualCenter); mDragViewVisualCenter = d.getVisualCenter(mDragViewVisualCenter);
CellLayout dropTargetLayout = mDropToLayout; CellLayout dropTargetLayout = mDropToLayout;
......
...@@ -79,10 +79,12 @@ class SettingAdminActivity : BaseActivity() { ...@@ -79,10 +79,12 @@ class SettingAdminActivity : BaseActivity() {
// Prefs.setReinforce(mContext, isChecked) // Prefs.setReinforce(mContext, isChecked)
// if (isChecked) showTipDialog({ reinforce() }, { reinforce?.switch?.isChecked = false }, getString(R.string.edu_reinforce)) // if (isChecked) showTipDialog({ reinforce() }, { reinforce?.switch?.isChecked = false }, getString(R.string.edu_reinforce))
// } // }
allowApp?.switch?.isChecked = Prefs.isAllowNewApp(mContext)
allowApp?.switch?.setOnCheckedChangeListener { _, isChecked -> allowApp?.switch?.setOnCheckedChangeListener { _, isChecked ->
Prefs.setAllowNewApp(mContext, isChecked) Prefs.setAllowNewApp(mContext, isChecked)
if (isChecked) showTipDialog({ }, { allowApp?.switch?.isChecked = false }, getString(R.string.open_new_app_tip)) if (isChecked) showTipDialog({ }, { allowApp?.switch?.isChecked = false }, getString(R.string.open_new_app_tip))
} }
QMUIGroupListView.newSection(this) QMUIGroupListView.newSection(this)
.addItemView(icon) { startActivity(Intent(mContext, AppChooseActivity::class.java)) } .addItemView(icon) { startActivity(Intent(mContext, AppChooseActivity::class.java)) }
.addItemView(reinforce) { ToastUtil.showShort(mContext, R.string.edu_toast_wait) } .addItemView(reinforce) { ToastUtil.showShort(mContext, R.string.edu_toast_wait) }
......
...@@ -9,11 +9,10 @@ import com.android.launcher3.BaseActivity ...@@ -9,11 +9,10 @@ import com.android.launcher3.BaseActivity
import com.android.launcher3.R import com.android.launcher3.R
import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView
import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView import com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
import com.secspace.lib.common.dialog.LoadingDialog
import com.secspace.lib.common.dialog.other.DialogUIUtils
import com.secspace.lib.common.function.ActivationHelper import com.secspace.lib.common.function.ActivationHelper
import com.secspace.lib.common.function.ActivationHelper.ActivationListener import com.secspace.lib.common.function.ActivationHelper.ActivationListener
import com.secspace.lib.common.function.DialogManager
import com.secspace.lib.common.utils.IntentUtil
import com.secspace.lib.common.utils.ToastUtil
import com.secspace.lib.common.utils.dp2px import com.secspace.lib.common.utils.dp2px
import kotlinx.android.synthetic.main.activity_setting.* import kotlinx.android.synthetic.main.activity_setting.*
...@@ -37,7 +36,7 @@ class SettingBuyActivity : BaseActivity() { ...@@ -37,7 +36,7 @@ class SettingBuyActivity : BaseActivity() {
tv_setting_title.setText(R.string.edu_item_buy) tv_setting_title.setText(R.string.edu_item_buy)
activationType = grouplistview.createItemView(null, activationType = grouplistview.createItemView(null,
getString(R.string.edu_item_activation_type), getString(R.string.edu_item_activation_type),
ActivationHelper.getActivationType(mContext) , ActivationHelper.getActivationType(mContext),
UCharacter.DecompositionType.VERTICAL, UCharacter.DecompositionType.VERTICAL,
QMUICommonListItemView.ACCESSORY_TYPE_NONE, QMUICommonListItemView.ACCESSORY_TYPE_NONE,
dp2px(48f)) dp2px(48f))
...@@ -66,18 +65,25 @@ class SettingBuyActivity : BaseActivity() { ...@@ -66,18 +65,25 @@ class SettingBuyActivity : BaseActivity() {
.addItemView(timeEnd) { } .addItemView(timeEnd) { }
.addTo(grouplistview) .addTo(grouplistview)
btn_activation.setOnClickListener { btn_activation.setOnClickListener {
ActivationHelper.active(this, object: ActivationListener { LoadingDialog.getInstance(mContext).show("请稍后")
ActivationHelper.active(this, object : ActivationListener {
override fun activated() { override fun activated() {
ToastUtil.showShort(mContext, "该设备已激活") LoadingDialog.getInstance(mContext).dismiss()
DialogUIUtils.showToastCenter("该设备已激活")
} }
override fun activationFailed() { override fun activationFailed() {
LoadingDialog.getInstance(mContext).dismiss()
} }
}, true) }, true)
} }
} }
override fun onPause() {
super.onPause()
LoadingDialog.getInstance(mContext).dismiss()
}
fun close(view: View?) { fun close(view: View?) {
finish() finish()
} }
......
...@@ -101,23 +101,23 @@ public class LauncherIcons { ...@@ -101,23 +101,23 @@ public class LauncherIcons {
float scale = 1f; float scale = 1f;
if (!FeatureFlags.LAUNCHER3_DISABLE_ICON_NORMALIZATION) { if (!FeatureFlags.LAUNCHER3_DISABLE_ICON_NORMALIZATION) {
normalizer = IconNormalizer.getInstance(context); normalizer = IconNormalizer.getInstance(context);
if (Utilities.isAtLeastO() && iconAppTargetSdk >= Build.VERSION_CODES.O) { // if (Utilities.isAtLeastO() && iconAppTargetSdk >= Build.VERSION_CODES.O) {
boolean[] outShape = new boolean[1]; // boolean[] outShape = new boolean[1];
AdaptiveIconDrawable dr = (AdaptiveIconDrawable) // AdaptiveIconDrawable dr = (AdaptiveIconDrawable)
context.getDrawable(R.drawable.adaptive_icon_drawable_wrapper).mutate(); // context.getDrawable(R.drawable.adaptive_icon_drawable_wrapper).mutate();
dr.setBounds(0, 0, 1, 1); // dr.setBounds(0, 0, 1, 1);
scale = normalizer.getScale(icon, null, dr.getIconMask(), outShape); // scale = normalizer.getScale(icon, null, dr.getIconMask(), outShape);
if (FeatureFlags.LEGACY_ICON_TREATMENT && // if (FeatureFlags.LEGACY_ICON_TREATMENT &&
!outShape[0]){ // !outShape[0]){
Drawable wrappedIcon = wrapToAdaptiveIconDrawable(context, icon, scale); // Drawable wrappedIcon = wrapToAdaptiveIconDrawable(context, icon, scale);
if (wrappedIcon != icon) { // if (wrappedIcon != icon) {
icon = wrappedIcon; // icon = wrappedIcon;
scale = normalizer.getScale(icon, null, null, null); // scale = normalizer.getScale(icon, null, null, null);
} // }
} // }
} else { // } else {
scale = normalizer.getScale(icon, null, null, null); scale = normalizer.getScale(icon, null, null, null);
} // }
} }
Bitmap bitmap = createIconBitmap(icon, context, scale); Bitmap bitmap = createIconBitmap(icon, context, scale);
if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO() && if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO() &&
...@@ -211,7 +211,7 @@ public class LauncherIcons { ...@@ -211,7 +211,7 @@ public class LauncherIcons {
icon instanceof AdaptiveIconDrawable) { icon instanceof AdaptiveIconDrawable) {
scale = ShadowGenerator.getScaleForBounds(new RectF(0, 0, 0, 0)); scale = ShadowGenerator.getScaleForBounds(new RectF(0, 0, 0, 0));
} }
Bitmap bitmap = createIconBitmap(icon, context, scale); Bitmap bitmap = createIconBitmap(icon, context, scale);
if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO() && if (FeatureFlags.ADAPTIVE_ICON_SHADOW && Utilities.isAtLeastO() &&
icon instanceof AdaptiveIconDrawable) { icon instanceof AdaptiveIconDrawable) {
bitmap = ShadowGenerator.getInstance(context).recreateIcon(bitmap); bitmap = ShadowGenerator.getInstance(context).recreateIcon(bitmap);
...@@ -261,17 +261,17 @@ public class LauncherIcons { ...@@ -261,17 +261,17 @@ public class LauncherIcons {
final Canvas canvas = sCanvas; final Canvas canvas = sCanvas;
canvas.setBitmap(bitmap); canvas.setBitmap(bitmap);
final int left = (textureWidth-width) / 2; final int left = (textureWidth - width) / 2;
final int top = (textureHeight-height) / 2; final int top = (textureHeight - height) / 2;
sOldBounds.set(icon.getBounds()); sOldBounds.set(icon.getBounds());
if (Utilities.isAtLeastO() && icon instanceof AdaptiveIconDrawable) { if (Utilities.isAtLeastO() && icon instanceof AdaptiveIconDrawable) {
int offset = Math.max((int)(ShadowGenerator.BLUR_FACTOR * iconBitmapSize), int offset = Math.max((int) (ShadowGenerator.BLUR_FACTOR * iconBitmapSize),
Math.min(left, top)); Math.min(left, top));
int size = Math.max(width, height); int size = Math.max(width, height);
icon.setBounds(offset, offset, size, size); icon.setBounds(offset, offset, size, size);
} else { } else {
icon.setBounds(left, top, left+width, top+height); icon.setBounds(left, top, left + width, top + height);
} }
canvas.save(); canvas.save();
canvas.scale(scale, scale, textureWidth / 2, textureHeight / 2); canvas.scale(scale, scale, textureWidth / 2, textureHeight / 2);
...@@ -314,7 +314,7 @@ public class LauncherIcons { ...@@ -314,7 +314,7 @@ public class LauncherIcons {
} }
public static Bitmap createShortcutIcon(ShortcutInfoCompat shortcutInfo, Context context, public static Bitmap createShortcutIcon(ShortcutInfoCompat shortcutInfo, Context context,
boolean badged) { boolean badged) {
LauncherAppState app = LauncherAppState.getInstance(context); LauncherAppState app = LauncherAppState.getInstance(context);
Drawable unbadgedDrawable = DeepShortcutManager.getInstance(context) Drawable unbadgedDrawable = DeepShortcutManager.getInstance(context)
.getShortcutIconDrawable(shortcutInfo, .getShortcutIconDrawable(shortcutInfo,
......
...@@ -26,8 +26,8 @@ MAVEN_URL=http://192.168.0.170:13000/nexus/content/repositories/releases/ ...@@ -26,8 +26,8 @@ MAVEN_URL=http://192.168.0.170:13000/nexus/content/repositories/releases/
MAVEN_URL_SNAPSHOT=http://192.168.0.170:13000/nexus/content/repositories/releases/ MAVEN_URL_SNAPSHOT=http://192.168.0.170:13000/nexus/content/repositories/releases/
#32位有符号数2147483647(10) #32位有符号数2147483647(10)
versionIntCode=2020032001 versionIntCode=2020032101
versionNameMajor=1 versionNameMajor=1
versionNameMinor=0 versionNameMinor=0
versionNamePatch=1 versionNamePatch=2
\ No newline at end of file \ No newline at end of file
package com.secspace.lib.common.function package com.secspace.lib.common.function
import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.DialogInterface import android.content.DialogInterface
import android.os.Build
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.WindowManager
import android.widget.Button import android.widget.Button
import com.secspace.lib.common.R import com.secspace.lib.common.R
import com.secspace.lib.common.function.ActivationHelper.ActivationListener import com.secspace.lib.common.function.ActivationHelper.ActivationListener
import com.secspace.lib.common.function.ActivationHelper.active import com.secspace.lib.common.function.ActivationHelper.active
import com.secspace.lib.common.utils.IntentUtil import com.secspace.lib.common.utils.IntentUtil
class BuyCodeDialog(activity: Activity) : DialogInterface.OnDismissListener, View.OnClickListener { class BuyCodeDialog private constructor(val mContext: Context) : DialogInterface.OnDismissListener, View.OnClickListener {
private var mActivity: Activity?
private val mContext: Context
private var mDialog: AlertDialog? = null private var mDialog: AlertDialog? = null
private var btnAccept: Button? = null private var btnAccept: Button? = null
private var closeAccept: Button? = null
private var layout: View? = null private var layout: View? = null
fun show(): BuyCodeDialog { fun show() {
if (mDialog == null) { if (mDialog == null) {
initView() initView()
val builder = AlertDialog.Builder(mActivity) mDialog = AlertDialog.Builder(mContext)
mDialog = builder.create() .setView(layout)
mDialog?.setCancelable(false) .setCancelable(false)
.create()
val window = mDialog?.window val window = mDialog?.window
window?.setBackgroundDrawableResource(R.drawable.dialog_corner_bg) window?.setBackgroundDrawableResource(R.drawable.dialog_corner_bg)
mDialog?.setView(layout) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mDialog?.show() window?.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
} else {
window?.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
}
} }
if (!mDialog?.isShowing!!) { if (!mDialog!!.isShowing) {
mDialog?.show() try {
mDialog!!.show()
} catch (e: Exception) {
e.printStackTrace()
}
} }
return this
} }
private fun initView() { private fun initView() {
val inflater =LayoutInflater.from(mActivity) val inflater = LayoutInflater.from(mContext)
layout = inflater.inflate(R.layout.buycode_layout, null) layout = inflater.inflate(R.layout.buycode_layout, null)
btnAccept = layout?.findViewById(R.id.btn_accept) btnAccept = layout?.findViewById(R.id.btn_accept)
btnAccept?.setOnClickListener(this) btnAccept?.setOnClickListener(this)
closeAccept = layout?.findViewById(R.id.btn_exit)
closeAccept?.setOnClickListener(this)
} }
fun dismiss() { fun dismiss() {
if (mDialog != null && mDialog!!.isShowing) mDialog!!.dismiss() if (mDialog != null && mDialog!!.isShowing) {
mDialog!!.dismiss()
}
} }
override fun onDismiss(dialog: DialogInterface) { override fun onDismiss(dialog: DialogInterface) {
mActivity = null
mDialog = null mDialog = null
} }
override fun onClick(v: View) { override fun onClick(v: View) {
if (v.id == R.id.btn_accept) { when (v.id) {
active(mActivity!!, object : ActivationListener { R.id.btn_accept -> {
override fun activationFailed() {} active(mContext, object : ActivationListener {
override fun activated() { override fun activationFailed() {}
IntentUtil.startEduLauncher(mContext) override fun activated() {
} IntentUtil.startEduLauncher(mContext)
}, true) }
dismiss() }, true)
WorkManager.removeForbidden(mContext) dismiss()
WorkManager.removeForbidden(mContext)
}
R.id.btn_exit -> {
dismiss()
}
} }
} }
companion object { companion object {
private const val TAG = "BuyCodeDialog" @Volatile
} private var instance: BuyCodeDialog? = null
init { fun getInstance(context: Context): BuyCodeDialog {
mActivity = activity if (instance == null) {
mContext = activity.applicationContext synchronized(BuyCodeDialog::class) {
if (instance == null) {
instance = BuyCodeDialog(context)
}
}
}
return instance!!
}
} }
} }
\ No newline at end of file
...@@ -39,32 +39,6 @@ object DialogManager{ ...@@ -39,32 +39,6 @@ object DialogManager{
) )
} }
fun showMiddleWareDeviceOwnerConfirmDialog(activity: Activity) {
if (isSettingDeviceOwner) {
return
}
val context = activity.applicationContext
dismissSimpleDialog()
mSimpleDialog = SimpleDialog(activity).show(activity.resources.getString(R.string.common_remind)
, activity.resources.getString(R.string.work_confirm_device_owner)
, false
, DialogInterface.OnClickListener { dialog, which ->
disableAccountsAndRemoveProfileUsers(context)
SwitcherDialog.getInstance(context).show(context.getString(R.string.work_del_account), "Clear Account")
dialog.dismiss()
}
, null
)
}
fun showRemoveUserConfirmDialog(activity: Activity) {
mSimpleDialog = SimpleDialog(activity).show(activity.resources.getString(R.string.common_remind)
, activity.resources.getString(R.string.work_remove_user_confirm_device_owner)
, false
, { dialog, which -> removeOtherUsers() }
) { dialog, which -> EventBus.getDefault().post(ExitEvent()) }
}
/** /**
* 关闭普通dialog * 关闭普通dialog
*/ */
...@@ -78,8 +52,8 @@ object DialogManager{ ...@@ -78,8 +52,8 @@ object DialogManager{
PrivacyPolicyDialog(activity).show() PrivacyPolicyDialog(activity).show()
} }
fun showBuyCodeDialog(activity: Activity?) { fun showBuyCodeDialog(context: Context) {
BuyCodeDialog(activity!!).show() BuyCodeDialog.getInstance(context).show()
} }
fun showMessageDialog(activity: Activity?, title: String?, content: String?, listener: MessageListener) { fun showMessageDialog(activity: Activity?, title: String?, content: String?, listener: MessageListener) {
...@@ -106,18 +80,6 @@ object DialogManager{ ...@@ -106,18 +80,6 @@ object DialogManager{
}).show() }).show()
} }
fun showMessageDialogBySure(activity: Activity?, title: String?, content: String?, listener: MessageListener) {
DialogUIUtils.showAlert(activity, title, content, "", "", "确定", "", false, false, false, object : DialogUIListener() {
override fun onPositive() {
listener.onPositive()
}
override fun onNegative() {
listener.onNegative()
}
}).show()
}
fun showPwdDialog(activity: Activity?, title: String?, listener: PwdListener) { fun showPwdDialog(activity: Activity?, title: String?, listener: PwdListener) {
val buildBean = DialogUIUtils.showAlertPassword(activity, title, "", "", "", "确定", "取消", false, false, false, object : DialogUIListener() { val buildBean = DialogUIUtils.showAlertPassword(activity, title, "", "", "", "确定", "取消", false, false, false, object : DialogUIListener() {
override fun onPositive(view: View) { override fun onPositive(view: View) {
......
...@@ -150,7 +150,6 @@ object WorkManager { ...@@ -150,7 +150,6 @@ object WorkManager {
internal class EduCheckActiveStatusListener(var activity: Activity) : CheckActiveStatusListener { internal class EduCheckActiveStatusListener(var activity: Activity) : CheckActiveStatusListener {
override fun needActivate() { override fun needActivate() {
Log.i(TAG, "activedFailed: ")
GlobalScope.launch(Dispatchers.Main) { GlobalScope.launch(Dispatchers.Main) {
val isActivateLocal = ActivationHelper.isProbationFromLocal(activity) val isActivateLocal = ActivationHelper.isProbationFromLocal(activity)
if (isActivateLocal) { if (isActivateLocal) {
......
...@@ -63,16 +63,45 @@ ...@@ -63,16 +63,45 @@
android:layout_marginRight="1dp" android:layout_marginRight="1dp"
android:background="#80DFDFDF" /> android:background="#80DFDFDF" />
<Button <LinearLayout
android:id="@+id/btn_accept"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="wrap_content"
android:background="@color/activation_white" android:orientation="horizontal">
android:gravity="center"
android:paddingTop="@dimen/alert_dialog_confirm_btn_padding" <Button
android:paddingBottom="@dimen/alert_dialog_confirm_btn_padding" android:id="@+id/btn_exit"
android:text="@string/btn_input_code" android:layout_width="0.0dip"
android:textColor="@color/btn_accept" android:layout_height="48dp"
android:textSize="@dimen/alert_dialog_confirm_btn_text_size" android:layout_weight="1.0"
android:textStyle="bold" /> android:background="@color/activation_white"
android:gravity="center"
android:paddingTop="@dimen/alert_dialog_confirm_btn_padding"
android:paddingBottom="@dimen/alert_dialog_confirm_btn_padding"
android:text="@string/close_btn"
android:textColor="@color/btn_exit"
android:textSize="@dimen/alert_dialog_confirm_btn_text_size"
android:textStyle="bold" />
<View
android:id="@+id/cancel_line"
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#80DFDFDF" />
<Button
android:id="@+id/btn_accept"
android:layout_width="0.0dip"
android:layout_height="48dp"
android:layout_weight="1.0"
android:background="@color/activation_white"
android:gravity="center"
android:paddingTop="@dimen/alert_dialog_confirm_btn_padding"
android:paddingBottom="@dimen/alert_dialog_confirm_btn_padding"
android:text="@string/btn_input_code"
android:textColor="@color/btn_accept"
android:textSize="@dimen/alert_dialog_confirm_btn_text_size"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
<string name="read_statement">若您点击同意并开始使用本软件,代表您已阅读并接受<a href="http://">《免责声明与软件许可协议》</a></string> <string name="read_statement">若您点击同意并开始使用本软件,代表您已阅读并接受<a href="http://">《免责声明与软件许可协议》</a></string>
<string name="accept_btn">同意</string> <string name="accept_btn">同意</string>
<string name="exit_btn">退出</string> <string name="exit_btn">退出</string>
<string name="close_btn">关闭</string>
<string name="btn_input_code">输入激活码</string> <string name="btn_input_code">输入激活码</string>
<string name="dialog_tip_activate_lose">您的激活已失效,如有疑问请致电4008265936</string> <string name="dialog_tip_activate_lose">您的激活已失效,如有疑问请致电4008265936</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment