OSDN Git Service

b/2106929 Resume to previous calendar view.
authorMichael Chan <mchan@android.com>
Tue, 15 Sep 2009 21:44:43 +0000 (14:44 -0700)
committerMichael Chan <mchan@android.com>
Thu, 17 Sep 2009 18:20:48 +0000 (11:20 -0700)
AndroidManifest.xml
src/com/android/calendar/AgendaActivity.java
src/com/android/calendar/DayActivity.java
src/com/android/calendar/LaunchActivity.java
src/com/android/calendar/MonthActivity.java
src/com/android/calendar/Utils.java
src/com/android/calendar/WeekActivity.java

index 51138bb..7e18d54 100644 (file)
@@ -39,8 +39,7 @@
         <uses-library android:name="android.test.runner" />
 
         <activity android:name="LaunchActivity"
-            android:theme="@android:style/Theme.Light"
-            android:clearTaskOnLaunch="true">
+            android:theme="@android:style/Theme.Light">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
index fdcac53..82ec55b 100644 (file)
@@ -120,17 +120,6 @@ public class AgendaActivity extends Activity implements Navigator {
             millis = System.currentTimeMillis();
         }
         mTime.set(millis);
-
-        // Record Agenda View as the (new) default detailed view.
-        String activityString =
-            CalendarApplication.ACTIVITY_NAMES[CalendarApplication.AGENDA_VIEW_ID];
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-        SharedPreferences.Editor editor = prefs.edit();
-        editor.putString(CalendarPreferenceActivity.KEY_DETAILED_VIEW, activityString);
-
-        // Record Agenda View as the (new) start view
-        editor.putString(CalendarPreferenceActivity.KEY_START_VIEW, activityString);
-        editor.commit();
     }
 
     @Override
@@ -189,6 +178,9 @@ public class AgendaActivity extends Activity implements Navigator {
         mAgendaListView.onPause();
         mContentResolver.unregisterContentObserver(mObserver);
         unregisterReceiver(mIntentReceiver);
+
+        // Record Agenda View as the (new) default detailed view.
+        Utils.setDefaultView(this, CalendarApplication.AGENDA_VIEW_ID);
     }
 
     @Override
index 51f965b..e2bf14c 100644 (file)
@@ -16,9 +16,7 @@
 
 package com.android.calendar;
 
-import android.content.SharedPreferences;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
 import android.widget.ProgressBar;
@@ -42,16 +40,6 @@ public class DayActivity extends CalendarActivity implements ViewSwitcher.ViewFa
         mViewSwitcher.setFactory(this);
         mViewSwitcher.getCurrentView().requestFocus();
         mProgressBar = (ProgressBar) findViewById(R.id.progress_circular);
-
-        // Record Day View as the (new) default detailed view.
-        String activityString = CalendarApplication.ACTIVITY_NAMES[CalendarApplication.DAY_VIEW_ID];
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-        SharedPreferences.Editor editor = prefs.edit();
-        editor.putString(CalendarPreferenceActivity.KEY_DETAILED_VIEW, activityString);
-
-        // Record Day View as the (new) start view
-        editor.putString(CalendarPreferenceActivity.KEY_START_VIEW, activityString);
-        editor.commit();
     }
 
     public View makeView() {
@@ -68,5 +56,8 @@ public class DayActivity extends CalendarActivity implements ViewSwitcher.ViewFa
         super.onPause();
         CalendarView view = (CalendarView) mViewSwitcher.getCurrentView();
         mSelectedDay = view.getSelectedDay();
+
+        // Record Day View as the (new) default detailed view.
+        Utils.setDefaultView(this, CalendarApplication.DAY_VIEW_ID);
     }
 }
index 7ca2004..17e6322 100644 (file)
 
 package com.android.calendar;
 
-import com.google.android.googlelogin.GoogleLoginServiceConstants;
-
+import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.accounts.AuthenticatorException;
 import android.accounts.AccountManagerCallback;
-import android.accounts.OperationCanceledException;
-import android.accounts.Account;
-import android.accounts.Constants;
 import android.accounts.AccountManagerFuture;
+import android.accounts.AuthenticatorException;
+import android.accounts.Constants;
+import android.accounts.OperationCanceledException;
 import android.app.Activity;
 import android.content.Intent;
 import android.content.SharedPreferences;
@@ -33,6 +31,8 @@ import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.provider.Gmail;
 
+import com.google.android.googlelogin.GoogleLoginServiceConstants;
+
 import java.io.IOException;
 
 public class LaunchActivity extends Activity {
@@ -104,6 +104,7 @@ public class LaunchActivity extends Activity {
                 CalendarPreferenceActivity.DEFAULT_START_VIEW);
 
         intent.setClassName(this, startActivity);
+        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
         startActivity(intent);
         finish();
     }
index 8593456..e186875 100644 (file)
@@ -17,7 +17,6 @@
 package com.android.calendar;
 
 import static android.provider.Calendar.EVENT_BEGIN_TIME;
-import dalvik.system.VMRuntime;
 
 import android.app.Activity;
 import android.content.BroadcastReceiver;
@@ -45,6 +44,8 @@ import android.widget.TextView;
 import android.widget.ViewSwitcher;
 import android.widget.Gallery.LayoutParams;
 
+import dalvik.system.VMRuntime;
+
 import java.util.Calendar;
 
 public class MonthActivity extends Activity implements ViewSwitcher.ViewFactory,
@@ -281,6 +282,9 @@ public class MonthActivity extends Activity implements ViewSwitcher.ViewFactory,
         view = (MonthView) mSwitcher.getNextView();
         view.dismissPopup();
         mEventLoader.stopBackgroundThread();
+
+        // Record Month View as the (new) start view
+        Utils.setDefaultView(this, CalendarApplication.MONTH_VIEW_ID);
     }
 
     @Override
@@ -297,12 +301,6 @@ public class MonthActivity extends Activity implements ViewSwitcher.ViewFactory,
         view1.setDetailedView(str);
         view2.setDetailedView(str);
 
-        // Record Month View as the (new) start view
-        String activityString = CalendarApplication.ACTIVITY_NAMES[CalendarApplication.MONTH_VIEW_ID];
-        SharedPreferences.Editor editor = prefs.edit();
-        editor.putString(CalendarPreferenceActivity.KEY_START_VIEW, activityString);
-        editor.commit();
-
         // Register for Intent broadcasts
         IntentFilter filter = new IntentFilter();
 
index fbfcf34..c282798 100644 (file)
 package com.android.calendar;
 
 import static android.provider.Calendar.EVENT_BEGIN_TIME;
+
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.content.res.Resources;
+import android.preference.PreferenceManager;
 import android.text.format.Time;
 import android.view.animation.AlphaAnimation;
 import android.widget.ViewFlipper;
@@ -35,6 +38,22 @@ public class Utils {
         context.startActivity(intent);
     }
 
+    static void setDefaultView(Context context, int viewId) {
+        String activityString = CalendarApplication.ACTIVITY_NAMES[viewId];
+
+        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+        SharedPreferences.Editor editor = prefs.edit();
+        if (viewId == CalendarApplication.AGENDA_VIEW_ID ||
+                viewId == CalendarApplication.DAY_VIEW_ID) {
+            // Record the (new) detail start view only for Agenda and Day
+            editor.putString(CalendarPreferenceActivity.KEY_DETAILED_VIEW, activityString);
+        }
+
+        // Record the (new) start view
+        editor.putString(CalendarPreferenceActivity.KEY_START_VIEW, activityString);
+        editor.commit();
+    }
+
     public static final Time timeFromIntent(Intent intent) {
         Time time = new Time();
         time.set(timeFromIntentInMillis(intent));
index 13fcfdb..54bee5d 100644 (file)
@@ -78,12 +78,6 @@ public class WeekActivity extends CalendarActivity implements ViewSwitcher.ViewF
                 CalendarPreferenceActivity.DEFAULT_DETAILED_VIEW);
         view1.setDetailedView(str);
         view2.setDetailedView(str);
-
-        // Record Week View as the (new) start view
-        String activityString = CalendarApplication.ACTIVITY_NAMES[CalendarApplication.WEEK_VIEW_ID];
-        SharedPreferences.Editor editor = prefs.edit();
-        editor.putString(CalendarPreferenceActivity.KEY_START_VIEW, activityString);
-        editor.commit();
     }
 
     @Override
@@ -91,5 +85,8 @@ public class WeekActivity extends CalendarActivity implements ViewSwitcher.ViewF
         super.onPause();
         CalendarView view = (CalendarView) mViewSwitcher.getCurrentView();
         mSelectedDay = view.getSelectedDay();
+
+        // Record Week View as the (new) start view
+        Utils.setDefaultView(this, CalendarApplication.WEEK_VIEW_ID);
     }
 }