Rather than manually managing the back button, try to give android better back button hinting

fix our notification -> intent behavior
This commit is contained in:
Jesse Vincent 2010-01-29 03:57:37 +00:00
parent e2edcd6d66
commit 22e1a3f574
6 changed files with 47 additions and 139 deletions

View File

@ -31,14 +31,18 @@
android:label="@string/remote_control_label"
android:description="@string/remote_control_desc"/>
<uses-permission android:name="com.fsck.k9.permission.REMOTE_CONTROL"/>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="K9"
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="K9"
android:allowTaskReparenting="false"
>
<meta-data android:name="android.app.default_searchable"
android:value=".activity.Search" />
<activity
android:name="com.fsck.k9.activity.Accounts"
android:launchMode="singleTop"
android:launchMode="singleInstance"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@ -135,7 +139,9 @@
android:label="@string/debug_title">
</activity>
<activity
android:name="com.fsck.k9.activity.FolderList">
android:name="com.fsck.k9.activity.FolderList"
android:launchMode="singleTask"
>
<!--
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@ -148,7 +154,10 @@
-->
</activity>
<activity
android:name="com.fsck.k9.activity.MessageList">
android:name="com.fsck.k9.activity.MessageList"
android:launchMode="singleTask"
>
<!--
<intent-filter>
<action android:name="android.intent.action.VIEW" />

View File

@ -37,6 +37,7 @@ import android.os.PowerManager.WakeLock;
import android.text.TextUtils;
import android.util.Log;
import com.fsck.k9.activity.FolderList;
import com.fsck.k9.activity.MessageList;
import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.FetchProfile;
@ -4198,7 +4199,7 @@ public class MessagingController implements Runnable
Notification notif = new Notification(R.drawable.stat_notify_email_generic, messageNotice, System.currentTimeMillis());
notif.number = unreadMessageCount;
Intent i = MessageList.actionHandleFolderIntent(context, account, account.getAutoExpandFolderName());
Intent i = FolderList.actionHandleAccountIntent(context, account, account.getAutoExpandFolderName());
PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
// 279 Unread (someone@gmail.com)

View File

@ -41,32 +41,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
private AccountsAdapter mAdapter;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (
// TODO - once we upgrade to 2.0, uncomment this
// android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR &&
keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0)
{
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed()
{
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
finish();
}
class AccountsHandler extends Handler
{
private void setViewTitle()
@ -439,7 +413,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
{
MessageList.actionHandleFolder(this, account, account.getAutoExpandFolderName());
}
finish();
}
public void onClick(View view)

View File

@ -245,27 +245,17 @@ public class FolderList extends K9ListActivity
public void onCreate(Bundle savedInstanceState)
{
String initialFolder;
super.onCreate(savedInstanceState);
onNewIntent(getIntent());
}
public void onNewIntent (Intent intent) {
String savedFolderName = null;
Intent intent = getIntent();
String initialFolder;
mAccount = (Account)intent.getSerializableExtra(EXTRA_ACCOUNT);
if (savedInstanceState == null)
{
initialFolder = intent.getStringExtra(EXTRA_INITIAL_FOLDER);
}
else
{
initialFolder = null;
savedFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
if (savedFolderName != null)
{
mSelectedContextFolder = mAdapter.getFolder(savedFolderName);
}
}
if (
initialFolder != null
&& !K9.FOLDER_NONE.equals(initialFolder))
@ -374,32 +364,9 @@ public class FolderList extends K9ListActivity
}
public void onBackPressed()
{
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
onAccounts();
}
@Override public boolean onKeyDown(int keyCode, KeyEvent event)
{
//Shortcuts that work no matter what is selected
if (
// TODO - when we move to android 2.0, uncomment this.
// android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR &&
keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0)
{
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
return true;
}
switch (keyCode)
{
case KeyEvent.KEYCODE_Q:
@ -527,7 +494,6 @@ public class FolderList extends K9ListActivity
private void onOpenFolder(String folder)
{
MessageList.actionHandleFolder(this, mAccount, folder);
finish();
}
private void onCompact(Account account)

View File

@ -363,14 +363,38 @@ public class MessageList
mBatchDoneButton.setOnClickListener(this);
Intent intent = getIntent();
// Gesture detection
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
if (gestureDetector.onTouchEvent(event))
{
return true;
}
return false;
}
};
mListView.setOnTouchListener(gestureListener);
if (savedInstanceState != null)
{
mFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
mQueryString = savedInstanceState.getString(STATE_QUERY);
mSelectedCount = savedInstanceState.getInt(STATE_KEY_SELECTED_COUNT);
onRestoreListState(savedInstanceState);
}
onNewIntent(getIntent());
}
public void onNewIntent(Intent intent) {
mAccount = (Account)intent.getSerializableExtra(EXTRA_ACCOUNT);
// Take the initial folder into account only if we are *not* restoring the
// activity already
if (savedInstanceState == null)
{
mFolderName = intent.getStringExtra(EXTRA_FOLDER);
mQueryString = intent.getStringExtra(EXTRA_QUERY);
@ -380,13 +404,6 @@ public class MessageList
{
mFolderName = mAccount.getAutoExpandFolderName();
}
}
else
{
mFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
mQueryString = savedInstanceState.getString(STATE_QUERY);
mSelectedCount = savedInstanceState.getInt(STATE_KEY_SELECTED_COUNT);
}
mAdapter = new MessageListAdapter();
@ -407,26 +424,6 @@ public class MessageList
mListView.setAdapter(mAdapter);
if (savedInstanceState != null)
{
onRestoreListState(savedInstanceState);
}
// Gesture detection
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
if (gestureDetector.onTouchEvent(event))
{
return true;
}
return false;
}
};
mListView.setOnTouchListener(gestureListener);
}
@ -518,29 +515,9 @@ public class MessageList
}
public void onBackPressed()
{
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
onShowFolderList();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (
// XXX TODO - when we go to android 2.0, uncomment this
// android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR &&
keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0)
{
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
return true;
}
//Shortcuts that work no matter what is selected
switch (keyCode)

View File

@ -103,14 +103,6 @@ public class MessageView extends K9Activity
private Listener mListener = new Listener();
private MessageViewHandler mHandler = new MessageViewHandler();
public void onBackPressed()
{
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
finish();
}
@Override
public boolean dispatchKeyEvent(KeyEvent event)
@ -130,16 +122,6 @@ public class MessageView extends K9Activity
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (
// TODO: when we get to 2.0, uncomment this
// android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR &&
keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0)
{
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
}
switch (keyCode)
{
case KeyEvent.KEYCODE_DEL: