mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 06:43:56 +01:00 
			
		
		
		
	Changed activity creation logic
- for home activity it will reuse existing activity from back stack and also clears all current activities - for nearby, about and settings, it will use the existing activity from back stack
This commit is contained in:
		
							parent
							
								
									03517de9a3
								
							
						
					
					
						commit
						3c9b325e58
					
				
					 6 changed files with 17 additions and 37 deletions
				
			
		|  | @ -27,9 +27,4 @@ public class AboutActivity extends NavigationBaseActivity { | |||
|         versionText.setText(BuildConfig.VERSION_NAME); | ||||
|         initDrawer(); | ||||
|     } | ||||
| 
 | ||||
|     public static void startYourself(Context context) { | ||||
|         Intent settingsIntent = new Intent(context, AboutActivity.class); | ||||
|         context.startActivity(settingsIntent); | ||||
|     } | ||||
| } | ||||
|  | @ -30,6 +30,7 @@ import fr.free.nrw.commons.R; | |||
| import fr.free.nrw.commons.Utils; | ||||
| import fr.free.nrw.commons.WelcomeActivity; | ||||
| import fr.free.nrw.commons.contributions.ContributionsActivity; | ||||
| import fr.free.nrw.commons.theme.NavigationBaseActivity; | ||||
| import timber.log.Timber; | ||||
| 
 | ||||
| import static android.view.KeyEvent.KEYCODE_ENTER; | ||||
|  | @ -176,7 +177,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { | |||
|     } | ||||
| 
 | ||||
|     public void startMainActivity() { | ||||
|         ContributionsActivity.startYourself(this); | ||||
|         NavigationBaseActivity.startActivityWithFlags(this, ContributionsActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP); | ||||
|         finish(); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -343,9 +343,4 @@ public class ContributionsActivity extends AuthenticatedActivity | |||
|     public void refreshSource() { | ||||
|         getSupportLoaderManager().restartLoader(0, null, this); | ||||
|     } | ||||
| 
 | ||||
|     public static void startYourself(Context context) { | ||||
|         context.startActivity(new Intent(context, ContributionsActivity.class)); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -350,9 +350,4 @@ public class NearbyActivity extends NavigationBaseActivity { | |||
|         fragmentTransaction.replace(R.id.container, fragment); | ||||
|         fragmentTransaction.commitAllowingStateLoss(); | ||||
|     } | ||||
| 
 | ||||
|     public static void startYourself(Context context) { | ||||
|         Intent settingsIntent = new Intent(context, NearbyActivity.class); | ||||
|         context.startActivity(settingsIntent); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -54,9 +54,4 @@ public class SettingsActivity extends NavigationBaseActivity { | |||
|                 return super.onOptionsItemSelected(item); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static void startYourself(Context context) { | ||||
|         Intent settingsIntent = new Intent(context, SettingsActivity.class); | ||||
|         context.startActivity(settingsIntent); | ||||
|     } | ||||
| } | ||||
|  | @ -3,6 +3,7 @@ package fr.free.nrw.commons.theme; | |||
| import android.accounts.Account; | ||||
| import android.accounts.AccountManager; | ||||
| import android.content.ActivityNotFoundException; | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.support.annotation.NonNull; | ||||
| import android.support.design.widget.NavigationView; | ||||
|  | @ -95,31 +96,21 @@ public abstract class NavigationBaseActivity extends BaseActivity | |||
|         switch (itemId) { | ||||
|             case R.id.action_home: | ||||
|                 drawerLayout.closeDrawer(navigationView); | ||||
|                 if (!(this instanceof ContributionsActivity)) { | ||||
|                     ContributionsActivity.startYourself(this); | ||||
|                     this.finish(); | ||||
|                 } | ||||
|                 startActivityWithFlags( | ||||
|                         this, ContributionsActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP, | ||||
|                         Intent.FLAG_ACTIVITY_SINGLE_TOP); | ||||
|                 return true; | ||||
|             case R.id.action_nearby: | ||||
|                 drawerLayout.closeDrawer(navigationView); | ||||
|                 if (!(this instanceof NearbyActivity)) { | ||||
|                     NearbyActivity.startYourself(this); | ||||
|                     this.finish(); | ||||
|                 } | ||||
|                 startActivityWithFlags(this, NearbyActivity.class, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); | ||||
|                 return true; | ||||
|             case R.id.action_about: | ||||
|                 drawerLayout.closeDrawer(navigationView); | ||||
|                 if (!(this instanceof AboutActivity)) { | ||||
|                     AboutActivity.startYourself(this); | ||||
|                     this.finish(); | ||||
|                 } | ||||
|                 startActivityWithFlags(this, AboutActivity.class, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); | ||||
|                 return true; | ||||
|             case R.id.action_settings: | ||||
|                 drawerLayout.closeDrawer(navigationView); | ||||
|                 if (!(this instanceof SettingsActivity)) { | ||||
|                     SettingsActivity.startYourself(this); | ||||
|                     this.finish(); | ||||
|                 } | ||||
|                 startActivityWithFlags(this, SettingsActivity.class, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); | ||||
|                 return true; | ||||
|             case R.id.action_introduction: | ||||
|                 drawerLayout.closeDrawer(navigationView); | ||||
|  | @ -170,4 +161,12 @@ public abstract class NavigationBaseActivity extends BaseActivity | |||
|             finish(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static <T> void startActivityWithFlags(Context context, Class<T> cls, int... flags) { | ||||
|         Intent intent = new Intent(context, cls); | ||||
|         for (int flag: flags) { | ||||
|             intent.addFlags(flag); | ||||
|         } | ||||
|         context.startActivity(intent); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ram Gudivada
						Ram Gudivada