Adapt Xiaomi power setup for MIUI 12.5.

This commit is contained in:
akwizgran
2021-04-26 16:10:19 +01:00
parent 3f36db8b3a
commit 4d6abfabf7
9 changed files with 107 additions and 20 deletions

View File

@@ -32,7 +32,8 @@ public class DozeFragment extends SetupFragment
private DozeView dozeView;
private HuaweiProtectedAppsView huaweiProtectedAppsView;
private HuaweiAppLaunchView huaweiAppLaunchView;
private XiaomiView xiaomiView;
private XiaomiRecentAppsView xiaomiRecentAppsView;
private XiaomiLockAppsView xiaomiLockAppsView;
private Button next;
private boolean secondAttempt = false;
@@ -54,8 +55,10 @@ public class DozeFragment extends SetupFragment
huaweiProtectedAppsView.setOnCheckedChangedListener(this);
huaweiAppLaunchView = v.findViewById(R.id.huaweiAppLaunchView);
huaweiAppLaunchView.setOnCheckedChangedListener(this);
xiaomiView = v.findViewById(R.id.xiaomiView);
xiaomiView.setOnCheckedChangedListener(this);
xiaomiRecentAppsView = v.findViewById(R.id.xiaomiRecentAppsView);
xiaomiRecentAppsView.setOnCheckedChangedListener(this);
xiaomiLockAppsView = v.findViewById(R.id.xiaomiLockAppsView);
xiaomiLockAppsView.setOnCheckedChangedListener(this);
next = v.findViewById(R.id.next);
ProgressBar progressBar = v.findViewById(R.id.progress);
@@ -102,7 +105,8 @@ public class DozeFragment extends SetupFragment
next.setEnabled(dozeView.isChecked() &&
huaweiProtectedAppsView.isChecked() &&
huaweiAppLaunchView.isChecked() &&
xiaomiView.isChecked());
xiaomiRecentAppsView.isChecked() &&
xiaomiLockAppsView.isChecked());
}
@SuppressLint("BatteryLife")

View File

@@ -50,7 +50,7 @@ class DozeView extends PowerView {
onButtonClickListener.run();
}
public void setOnButtonClickListener(Runnable runnable) {
void setOnButtonClickListener(Runnable runnable) {
onButtonClickListener = runnable;
}

View File

@@ -0,0 +1,72 @@
package org.briarproject.briar.android.account;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Toast;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.R;
import java.util.logging.Logger;
import javax.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.UiThread;
import static android.widget.Toast.LENGTH_LONG;
import static java.util.logging.Level.WARNING;
import static java.util.logging.Logger.getLogger;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.getXiaomiLockAppsIntent;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.xiaomiLockAppsNeedsToBeShown;
import static org.briarproject.bramble.util.LogUtils.logException;
@UiThread
@NotNullByDefault
class XiaomiLockAppsView extends PowerView {
private static final Logger LOG =
getLogger(XiaomiLockAppsView.class.getName());
public XiaomiLockAppsView(Context context) {
this(context, null);
}
public XiaomiLockAppsView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public XiaomiLockAppsView(Context context, @Nullable AttributeSet attrs,
int defStyleAttr) {
super(context, attrs, defStyleAttr);
setText(R.string.dnkm_xiaomi_lock_apps_text);
setButtonText(R.string.dnkm_xiaomi_lock_apps_button);
}
@Override
public boolean needsToBeShown() {
return xiaomiLockAppsNeedsToBeShown(getContext());
}
@Override
@StringRes
protected int getHelpText() {
return R.string.dnkm_xiaomi_lock_apps_help;
}
@Override
protected void onButtonClick() {
try {
getContext().startActivity(getXiaomiLockAppsIntent());
setChecked(true);
return;
} catch (SecurityException e) {
logException(LOG, WARNING, e);
}
Toast.makeText(getContext(),
R.string.dnkm_xiaomi_lock_apps_error_toast,
LENGTH_LONG).show();
// Let the user continue with setup
setChecked(true);
}
}

View File

@@ -1,6 +1,5 @@
package org.briarproject.briar.android.account;
import android.content.Context;
import android.util.AttributeSet;
@@ -12,23 +11,23 @@ import javax.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.UiThread;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.isMiuiTenOrLater;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.isXiaomiOrRedmiDevice;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.isMiuiVersionAtLeast;
import static org.briarproject.android.dontkillmelib.XiaomiUtils.xiaomiRecentAppsNeedsToBeShown;
import static org.briarproject.briar.android.util.UiUtils.showOnboardingDialog;
@UiThread
@NotNullByDefault
class XiaomiView extends PowerView {
class XiaomiRecentAppsView extends PowerView {
public XiaomiView(Context context) {
public XiaomiRecentAppsView(Context context) {
this(context, null);
}
public XiaomiView(Context context, @Nullable AttributeSet attrs) {
public XiaomiRecentAppsView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public XiaomiView(Context context, @Nullable AttributeSet attrs,
public XiaomiRecentAppsView(Context context, @Nullable AttributeSet attrs,
int defStyleAttr) {
super(context, attrs, defStyleAttr);
setText(R.string.dnkm_xiaomi_text);
@@ -37,7 +36,7 @@ class XiaomiView extends PowerView {
@Override
public boolean needsToBeShown() {
return isXiaomiOrRedmiDevice();
return xiaomiRecentAppsNeedsToBeShown();
}
@Override
@@ -48,7 +47,7 @@ class XiaomiView extends PowerView {
@Override
protected void onButtonClick() {
int bodyRes = isMiuiTenOrLater()
int bodyRes = isMiuiVersionAtLeast(10, 0)
? R.string.dnkm_xiaomi_dialog_body_new
: R.string.dnkm_xiaomi_dialog_body_old;
showOnboardingDialog(getContext(), getContext().getString(bodyRes));