-
-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Android] Changing the app icon will shut down the process. (v5.0.0) #106
Comments
I also have the same problem, any solution? |
Same here. |
It's the only way to change app icon for Android. For instance check out the duckduckgo app. Best thing you can do is to warn the user about what is about to happen. |
@jacobmolby , you can check this feature at Todoist. |
Interesting. So I've tried. In their implementation, you have to restart the app "to enable icon switching" but after that it works without closing. I found this repo trying to implement something similar, but I haven't tried it out. https://github.com/gonodono/app-icon-change-demo. |
Has anyone found a solution for this? |
The best way I found was to patch ChangeIconModule, after Intent newIconIntent = Intent.makeMainActivity(new ComponentName(this.packageName, activeClass));
newIconIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.reactContext.startActivity(newIconIntent); This will swiftly open the new activity after the old one ends. You'll also need to store the react context in the constructor: public class ChangeIconModule extends ReactContextBaseJavaModule implements Application.ActivityLifecycleCallbacks {
//[...]
private ReactApplicationContext reactContext;
//[...]
public ChangeIconModule(ReactApplicationContext reactContext, String packageName) {
//[...]
this.reactContext = reactContext;
}
} |
continues... When we change the icon on Android, the application closes. Can you get your hands on it as soon as possible? |
Hey guys! |
Hello, Same here :-( |
Hello, everyone. here is my modified version of the changeIcon method (i'm using patch package but as the repo seems stale maybe someone could take the maintenance back). public void changeIcon(String iconName, Promise promise) {
final Activity activity = getCurrentActivity();
if (activity == null) {
promise.reject("ANDROID:ACTIVITY_NOT_FOUND");
return;
}
// Define MainActivity as default icon class
final String mainActivityClass = this.packageName + ".MainActivity";
// handling bad icon names
final String activeClass = (iconName == null || iconName.isEmpty())
? mainActivityClass
: this.packageName + ".MainActivity" + iconName;
// handling icon already in use
if (this.componentClass.equals(activeClass)) {
promise.reject("ANDROID:ICON_ALREADY_USED");
return;
}
try {
// activate new icon
activity.getPackageManager().setComponentEnabledSetting(
new ComponentName(this.packageName, activeClass),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP
);
promise.resolve(iconName);
} catch (Exception e) {
promise.reject("ANDROID:ICON_INVALID");
return;
}
} |
i've tried your solution @SHugzaurus but I've noticed that changing the icon now leads to the duplication of the app on the device. This seems to occur because the app creates a new instance whenever a new icon is activated without properly disabling the old one. As a result, both icons coexist, causing the duplication issue. |
Hi, I tried it and it works pretty well, but I have another problem with createRef in React Native not being recreated when I change the app icon |
Can you give the full file? |
still facing the same issue, any update guys ? |
Platform
Description
This is such an obvious error. Changing the app icon on Android will shut down the process.
I made a new project and tried it. But it was the same
Please share the sample project repository that the app icon changes normally
To Reproduce
Steps to reproduce the behavior:
How to Use
changeIcon
on Android.Expected behavior
The app will not shut down and only the icon will change.
Screenshots
Don't have to attach this.
Device (please complete the following information):
Versions
Code Snippet
The text was updated successfully, but these errors were encountered: