Commit f393160c by Baoxy

fix: 修复BUG

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