Bug 699492: Animate the tab-list popup [r=mfinkle]

This commit is contained in:
Sriram Ramasubramanian 2011-11-03 11:34:58 -07:00
parent 2021845587
commit 5e5a99c4f6
5 changed files with 56 additions and 7 deletions

View File

@ -605,8 +605,9 @@ abstract public class GeckoApp
void showTabs() {
Intent intent = new Intent(mAppContext, TabsTray.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
overridePendingTransition(R.anim.grow_fade_in, 0);
}
public static void registerOnTabsChangedListener(OnTabsChangedListener listener) {

View File

@ -162,6 +162,11 @@ RES_VALUES = \
RES_XML = res/xml/preferences.xml
RES_ANIM = \
res/anim/grow_fade_in.xml \
res/anim/shrink_fade_out.xml \
$(NULL)
AB_rCD = $(shell echo $(AB_CD) | sed -e s/-/-r/)
JAVA_CLASSPATH = $(ANDROID_SDK)/android.jar
@ -274,10 +279,14 @@ $(RES_XML): $(subst res/,$(srcdir)/resources/,$(RES_XML))
$(NSINSTALL) -D res/xml
$(NSINSTALL) $(srcdir)/resources/xml/* res/xml/
R.java: $(MOZ_APP_ICON) $(RES_LAYOUT) $(RES_DRAWABLE) $(RES_VALUES) $(RES_XML) res/drawable/icon.png res/drawable-hdpi/icon.png res/values/strings.xml AndroidManifest.xml
$(RES_ANIM)): $(subst res/,$(srcdir)/resources/,$(RES_ANIM))
$(NSINSTALL) -D res/anim
$(NSINSTALL) $(srcdir)/resources/anim/* res/anim/
R.java: $(MOZ_APP_ICON) $(RES_LAYOUT) $(RES_DRAWABLE) $(RES_VALUES) $(RES_XML) $(RES_ANIM) res/drawable/icon.png res/drawable-hdpi/icon.png res/values/strings.xml AndroidManifest.xml
$(AAPT) package -f -M AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -J . --custom-package org.mozilla.gecko
gecko.ap_: AndroidManifest.xml res/drawable/icon.png res/drawable-hdpi/icon.png $(RES_LAYOUT) $(RES_DRAWABLE) $(RES_VALUES) $(RES_XML) res/values/strings.xml FORCE
gecko.ap_: AndroidManifest.xml res/drawable/icon.png res/drawable-hdpi/icon.png $(RES_LAYOUT) $(RES_DRAWABLE) $(RES_VALUES) $(RES_XML) $(RES_ANIM) res/values/strings.xml FORCE
$(AAPT) package -f -M AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -F $@
res/values/strings.xml: $(DEFAULT_BRANDPATH) $(DEFAULT_STRINGSPATH) $(srcdir)/strings.xml.in

View File

@ -78,7 +78,7 @@ public class TabsTray extends Activity implements GeckoApp.OnTabsChangedListener
addTab.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
GeckoApp.mAppContext.addTab();
finish();
finishActivity();
}
});
@ -92,7 +92,7 @@ public class TabsTray extends Activity implements GeckoApp.OnTabsChangedListener
LinearLayout container = (LinearLayout) findViewById(R.id.container);
container.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
finish();
finishActivity();
}
});
@ -108,12 +108,17 @@ public class TabsTray extends Activity implements GeckoApp.OnTabsChangedListener
public void onTabsChanged() {
if (Tabs.getInstance().getCount() == 1)
finish();
finishActivity();
mTabsAdapter = new TabsAdapter(this, Tabs.getInstance().getTabsInOrder());
mList.setAdapter(mTabsAdapter);
}
void finishActivity() {
finish();
overridePendingTransition(0, R.anim.shrink_fade_out);
}
// Adapter to bind tabs into a list
private class TabsAdapter extends BaseAdapter {
public TabsAdapter(Context context, ArrayList<Tab> tabs) {
@ -153,7 +158,7 @@ public class TabsTray extends Activity implements GeckoApp.OnTabsChangedListener
info.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
GeckoAppShell.sendEventToGecko(new GeckoEvent("Tab:Select", "" + v.getTag()));
finish();
finishActivity();
}
});

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="0.3"
android:toYScale="1.0"
android:pivotX="0%"
android:pivotY="0%"
android:duration="150"/>
<alpha android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="150"/>
</set>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="1.0"
android:toYScale="0.3"
android:pivotX="0%"
android:pivotY="0%"
android:duration="150"/>
<alpha android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="150"/>
</set>