Add deploy optimizations tip for module developers (#2674)
This commit is contained in:
parent
bb8b8bfab5
commit
8d80428d94
|
|
@ -23,6 +23,9 @@ import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.system.ErrnoException;
|
||||||
|
import android.system.Os;
|
||||||
|
import android.system.OsConstants;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
|
@ -51,8 +54,12 @@ import org.lsposed.manager.util.Telemetry;
|
||||||
import org.lsposed.manager.util.UpdateUtil;
|
import org.lsposed.manager.util.UpdateUtil;
|
||||||
import org.lsposed.manager.util.chrome.LinkTransformationMethod;
|
import org.lsposed.manager.util.chrome.LinkTransformationMethod;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import rikka.core.util.ClipboardUtils;
|
import rikka.core.util.ClipboardUtils;
|
||||||
import rikka.material.app.LocaleDelegate;
|
import rikka.material.app.LocaleDelegate;
|
||||||
|
|
@ -146,6 +153,7 @@ public class HomeFragment extends BaseFragment implements MenuProvider {
|
||||||
}
|
}
|
||||||
binding.statusSummary.setText(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s",
|
binding.statusSummary.setText(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s",
|
||||||
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
|
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
|
||||||
|
binding.developerWarningCard.setVisibility(isDeveloper() ? View.VISIBLE : View.GONE);
|
||||||
} else {
|
} else {
|
||||||
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
|
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
|
||||||
if (isMagiskInstalled) {
|
if (isMagiskInstalled) {
|
||||||
|
|
@ -254,6 +262,27 @@ public class HomeFragment extends BaseFragment implements MenuProvider {
|
||||||
return manufacturer;
|
return manufacturer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isDeveloper() {
|
||||||
|
var developer = new AtomicBoolean(false);
|
||||||
|
var pids = Paths.get("/data/local/tmp/.studio/ipids");
|
||||||
|
try (var dir = Files.list(pids)) {
|
||||||
|
dir.findFirst().ifPresent(name -> {
|
||||||
|
var pid = Integer.parseInt(name.getFileName().toString());
|
||||||
|
try {
|
||||||
|
Os.kill(pid, 0);
|
||||||
|
developer.set(true);
|
||||||
|
} catch (ErrnoException e) {
|
||||||
|
if (e.errno != OsConstants.ESRCH) {
|
||||||
|
developer.set(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (IOException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return developer.get();
|
||||||
|
}
|
||||||
|
|
||||||
public static class AboutDialog extends DialogFragment {
|
public static class AboutDialog extends DialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -215,6 +215,38 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
android:id="@+id/developer_warning_card"
|
||||||
|
style="@style/Widget.Material3.CardView.Outlined"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:cardBackgroundColor="?colorSecondaryContainer">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="?dialogPreferredPadding">
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/developer_warning_title"
|
||||||
|
android:textAppearance="?textAppearanceTitleMedium"
|
||||||
|
android:textColor="?colorOnSecondaryContainer" />
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/developer_warning_summary"
|
||||||
|
android:textAppearance="?textAppearanceBodyMedium"
|
||||||
|
android:textColor="?colorOnSecondaryContainer" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/info_card"
|
android:id="@+id/info_card"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,8 @@
|
||||||
<string name="system_prop_incorrect"><![CDATA[Some necessary system properties deleted or modified.<br/>Modules may invalidate occasionally.]]></string>
|
<string name="system_prop_incorrect"><![CDATA[Some necessary system properties deleted or modified.<br/>Modules may invalidate occasionally.]]></string>
|
||||||
<string name="need_update">Need to update</string>
|
<string name="need_update">Need to update</string>
|
||||||
<string name="please_update_summary">Please install the latest version of LSPosed</string>
|
<string name="please_update_summary">Please install the latest version of LSPosed</string>
|
||||||
|
<string name="developer_warning_title">Tips for module developer</string>
|
||||||
|
<string name="developer_warning_summary">Please disable deploy optimizations on Android Studio, or use `gradlew installDebug` command to install. Otherwise the module apk will not be updated.</string>
|
||||||
<string name="info_api_version">API version</string>
|
<string name="info_api_version">API version</string>
|
||||||
<string name="info_framework_version">Framework version</string>
|
<string name="info_framework_version">Framework version</string>
|
||||||
<string name="info_manager_package_name">Manager package name</string>
|
<string name="info_manager_package_name">Manager package name</string>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue