Skip to content

Commit fda0a55

Browse files
committed
Fixed the app restarting not working properly
* Using [``process-phoenix``](https://github.com/JakeWharton/ProcessPhoenix)
1 parent 6a1d81f commit fda0a55

4 files changed

Lines changed: 19 additions & 3 deletions

File tree

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,9 @@ dependencies {
254254
// Crash reporting
255255
implementation "ch.acra:acra-core:5.7.0"
256256

257+
// Properly restarting
258+
implementation 'com.jakewharton:process-phoenix:2.1.2'
259+
257260
// Reactive extensions for Java VM
258261
implementation "io.reactivex.rxjava3:rxjava:3.0.7"
259262
implementation "io.reactivex.rxjava3:rxandroid:3.0.0"

app/src/main/java/org/schabi/newpipe/App.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import androidx.multidex.MultiDexApplication;
1212
import androidx.preference.PreferenceManager;
1313

14+
import com.jakewharton.processphoenix.ProcessPhoenix;
15+
1416
import org.acra.ACRA;
1517
import org.acra.config.ACRAConfigurationException;
1618
import org.acra.config.CoreConfiguration;
@@ -86,6 +88,12 @@ public void onCreate() {
8688

8789
app = this;
8890

91+
if (ProcessPhoenix.isPhoenixProcess(this)) {
92+
Log.i(TAG, "This is a phoenix process! "
93+
+ "Aborting initialization of App[onCreate]");
94+
return;
95+
}
96+
8997
// Initialize settings first because others inits can use its values
9098
NewPipeSettings.initSettings(this);
9199

app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,10 @@ class AboutActivity : AppCompatActivity() {
170170
"PrettyTime", "2012 - 2020", "Lincoln Baxter, III",
171171
"https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2
172172
),
173+
SoftwareComponent(
174+
"ProcessPhoenix", "2015", "Jake Wharton",
175+
"https://github.com/JakeWharton/ProcessPhoenix", StandardLicenses.APACHE2
176+
),
173177
SoftwareComponent(
174178
"RxAndroid", "2015", "The RxAndroid authors",
175179
"https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2

app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@
5858

5959
import static org.schabi.newpipe.util.external_communication.ShareUtils.installApp;
6060

61+
import com.jakewharton.processphoenix.ProcessPhoenix;
62+
6163
public final class NavigationHelper {
6264
public static final String MAIN_FRAGMENT_TAG = "main_fragment_tag";
6365
public static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag";
@@ -607,8 +609,7 @@ public static void playWithKore(final Context context, final Uri videoURL) {
607609
*/
608610
public static void restartApp(final Activity activity) {
609611
NewPipeDatabase.close();
610-
activity.finishAffinity();
611-
final Intent intent = new Intent(activity, MainActivity.class);
612-
activity.startActivity(intent);
612+
613+
ProcessPhoenix.triggerRebirth(activity.getApplicationContext());
613614
}
614615
}

0 commit comments

Comments
 (0)