From 0593482027e3e9c604e0272c74075d98ba23b10a Mon Sep 17 00:00:00 2001 From: Sujit Kumar Date: Sun, 18 Sep 2022 16:30:09 +0530 Subject: [PATCH] Fix theming issues when launched from notification --- .../activities/LauncherActivity.java | 10 +++++-- .../vtopchennai/activities/MainActivity.java | 30 +++++++++++-------- .../helpers/NotificationHelper.java | 9 ++++-- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/tk/therealsuji/vtopchennai/activities/LauncherActivity.java b/app/src/main/java/tk/therealsuji/vtopchennai/activities/LauncherActivity.java index 1433ed6d..f8a2d923 100644 --- a/app/src/main/java/tk/therealsuji/vtopchennai/activities/LauncherActivity.java +++ b/app/src/main/java/tk/therealsuji/vtopchennai/activities/LauncherActivity.java @@ -27,13 +27,19 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Intent intent = new Intent(); + if (this.getIntent().getExtras() != null) { + intent.putExtras(this.getIntent().getExtras()); + } + if (SettingsRepository.isSignedIn(this.getApplicationContext())) { - startActivity(new Intent(LauncherActivity.this, MainActivity.class)); + intent.setClass(LauncherActivity.this, MainActivity.class); } else { SettingsRepository.signOut(this.getApplicationContext()); // Delete old data - startActivity(new Intent(LauncherActivity.this, LoginActivity.class)); + intent.setClass(LauncherActivity.this, LoginActivity.class); } + startActivity(intent); finish(); } } diff --git a/app/src/main/java/tk/therealsuji/vtopchennai/activities/MainActivity.java b/app/src/main/java/tk/therealsuji/vtopchennai/activities/MainActivity.java index 42d69b1e..0826a9af 100644 --- a/app/src/main/java/tk/therealsuji/vtopchennai/activities/MainActivity.java +++ b/app/src/main/java/tk/therealsuji/vtopchennai/activities/MainActivity.java @@ -27,10 +27,10 @@ import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.Serializable; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; -import java.util.concurrent.Callable; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; @@ -302,9 +302,15 @@ protected void onCreate(Bundle savedInstanceState) { }); int selectedItem = R.id.item_home; + Serializable launchFragment = this.getIntent().getSerializableExtra("launchFragment"); if (savedInstanceState != null) { selectedItem = savedInstanceState.getInt("selectedItem"); + } else if (launchFragment != null) { + // If the application is launched from notifications + if (AssignmentsFragment.class.equals(launchFragment)) { + selectedItem = R.id.item_assignments; + } } this.bottomNavigationView.setSelectedItemId(selectedItem); @@ -325,17 +331,17 @@ public void onComplete() { Check for updates */ Context context = this; - Observable.fromCallable((Callable) () -> { - try { - StringBuilder sb = new StringBuilder(); - URL url = new URL(SettingsRepository.APP_ABOUT_URL + "?v=" + BuildConfig.VERSION_NAME); - HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); - InputStream in = httpURLConnection.getInputStream(); - InputStreamReader reader = new InputStreamReader(in); - int data = reader.read(); - - while (data != -1) { - char current = (char) data; + Observable.fromCallable(() -> { + try { + StringBuilder sb = new StringBuilder(); + URL url = new URL(SettingsRepository.APP_ABOUT_URL + "?v=" + BuildConfig.VERSION_NAME); + HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); + InputStream in = httpURLConnection.getInputStream(); + InputStreamReader reader = new InputStreamReader(in); + int data = reader.read(); + + while (data != -1) { + char current = (char) data; sb.append(current); data = reader.read(); } diff --git a/app/src/main/java/tk/therealsuji/vtopchennai/helpers/NotificationHelper.java b/app/src/main/java/tk/therealsuji/vtopchennai/helpers/NotificationHelper.java index 85769d17..f86f09da 100644 --- a/app/src/main/java/tk/therealsuji/vtopchennai/helpers/NotificationHelper.java +++ b/app/src/main/java/tk/therealsuji/vtopchennai/helpers/NotificationHelper.java @@ -20,7 +20,8 @@ import java.util.Calendar; import tk.therealsuji.vtopchennai.R; -import tk.therealsuji.vtopchennai.activities.MainActivity; +import tk.therealsuji.vtopchennai.activities.LauncherActivity; +import tk.therealsuji.vtopchennai.fragments.HomeFragment; import tk.therealsuji.vtopchennai.models.Timetable; public class NotificationHelper extends ContextWrapper { @@ -97,7 +98,8 @@ public NotificationCompat.Builder notifyUpcoming(Timetable.AllData timetableItem PendingIntent pendingIntent = PendingIntent.getActivity( this, 0, - new Intent(this, MainActivity.class), + new Intent(this, LauncherActivity.class) + .putExtra("launchFragment", HomeFragment.class), PendingIntent.FLAG_IMMUTABLE ); String title = "Upcoming: " + @@ -138,7 +140,8 @@ public NotificationCompat.Builder notifyOngoing(Timetable.AllData timetableItem) PendingIntent pendingIntent = PendingIntent.getActivity( this, 0, - new Intent(this, MainActivity.class), + new Intent(this, LauncherActivity.class) + .putExtra("launchFragment", HomeFragment.class), PendingIntent.FLAG_IMMUTABLE ); String title = "Ongoing: " +