Fix text overlapping icon issue.
Add new icons for filter options
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_selected_all" />
+ <item android:drawable="@drawable/ic_tab_unselected_all" />
+</selector>
+
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_selected_download" />
+ <item android:drawable="@drawable/ic_tab_unselected_download" />
+</selector>
+
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_selected_running" />
+ <item android:drawable="@drawable/ic_tab_unselected_running" />
+</selector>
+
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/ic_tab_selected_sdcard" />
+ <item android:drawable="@drawable/ic_tab_unselected_sdcard" />
+</selector>
+
android:paddingBottom="5dip"
android:orientation="vertical">
- <!-- App snippet -->
- <RelativeLayout
+ <!-- App snippet with buttons -->
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="center_vertical">
+ android:layout_gravity="center_vertical"
+ android:orientation="vertical"
+ android:paddingRight="6dip"
+ android:paddingLeft="6dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="5dip" >
- <LinearLayout
- android:orientation="vertical"
- android:layout_alignParentLeft="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="6dip"
- android:paddingBottom="6dip"
- android:paddingRight="6dip"
- android:paddingLeft="6dip" >
- <!-- application name -->
- <TextView android:id="@+id/app_name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textStyle="bold"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:layout_marginBottom="2dip" />
- <!-- application version -->
- <TextView android:id="@+id/app_version"
- android:layout_marginTop="-4dip"
- android:layout_gravity="center_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceSmall" />
- </LinearLayout>
+ <!-- Application snippet label, version and icon -->
+ <include
+ layout="@layout/manage_applications_item"
+ android:id="@+id/app_snippet"/>
- <!-- application icon -->
- <ImageView android:id="@+id/app_icon"
- android:layout_width="@android:dimen/app_icon_size"
- android:layout_height="@android:dimen/app_icon_size"
- android:layout_alignParentRight="true"
- android:paddingTop="6dip"
- android:paddingBottom="6dip"
- android:paddingRight="6dip"
- android:scaleType="fitCenter" />
- </RelativeLayout>
<!-- Force stop and uninstall buttons -->
<include
layout="@layout/two_buttons_panel"
android:id="@+id/control_buttons_panel"/>
+ </LinearLayout>
<TextView
style="?android:attr/listSeparatorTextViewStyle"
}
private void refreshAppAttributes(PackageInfo pkgInfo) {
- setAppLabelAndIcon();
+ setAppLabelAndIcon(pkgInfo);
initControlButtons();
initDataButtons();
- // Version number of application
- setAppVersion(pkgInfo);
// Refresh size info
if (mAppInfo != null && mAppInfo.packageName != null) {
mPm.getPackageSizeInfo(mAppInfo.packageName, mSizeObserver);
}
}
-
+
// Utility method to set applicaiton label and icon.
- private void setAppLabelAndIcon() {
- ((ImageView)findViewById(R.id.app_icon)).setImageDrawable(mAppInfo.loadIcon(mPm));
- //set application name TODO version
- CharSequence appName = mAppInfo.loadLabel(mPm);
- if(appName == null) {
- appName = getString(_UNKNOWN_APP);
- }
- ((TextView)findViewById(R.id.app_name)).setText(appName);
- }
-
- // Utility method to set application version
- private void setAppVersion(PackageInfo pkgInfo) {
+ private void setAppLabelAndIcon(PackageInfo pkgInfo) {
+ View appSnippet = findViewById(R.id.app_snippet);
+ ImageView icon = (ImageView) appSnippet.findViewById(R.id.app_icon);
+ icon.setImageDrawable(mAppInfo.loadIcon(mPm));
+ // Set application name.
+ TextView label = (TextView) appSnippet.findViewById(R.id.app_name);
+ label.setText(mAppInfo.loadLabel(mPm));
// Version number of application
- mAppVersion = ((TextView)findViewById(R.id.app_version));
- if (pkgInfo != null) {
+ mAppVersion = (TextView) appSnippet.findViewById(R.id.app_size);
+
+ if (pkgInfo != null && pkgInfo.versionName != null) {
mAppVersion.setVisibility(View.VISIBLE);
mAppVersion.setText(getString(R.string.version_text,
String.valueOf(pkgInfo.versionName)));
} else {
- mAppVersion.setVisibility(View.GONE);
+ mAppVersion.setVisibility(View.INVISIBLE);
}
}
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
if (DEBUG_TIME) {
Log.i(TAG, "Took " + (SystemClock.elapsedRealtime()-sStart) + " ms to init cache");
}
+
final TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec(TAB_DOWNLOADED)
- .setIndicator(getString(R.string.filter_apps_third_party))
+ .setIndicator(getString(R.string.filter_apps_third_party),
+ getResources().getDrawable(R.drawable.ic_tab_download))
.setContent(this));
tabHost.addTab(tabHost.newTabSpec(TAB_RUNNING)
- .setIndicator(getString(R.string.filter_apps_running))
+ .setIndicator(getString(R.string.filter_apps_running),
+ getResources().getDrawable(R.drawable.ic_tab_running))
.setContent(this));
tabHost.addTab(tabHost.newTabSpec(TAB_ALL)
- .setIndicator(getString(R.string.filter_apps_all))
+ .setIndicator(getString(R.string.filter_apps_all),
+ getResources().getDrawable(R.drawable.ic_tab_all))
.setContent(this));
tabHost.addTab(tabHost.newTabSpec(TAB_SDCARD)
- .setIndicator(getString(R.string.filter_apps_onsdcard))
+ .setIndicator(getString(R.string.filter_apps_onsdcard),
+ getResources().getDrawable(R.drawable.ic_tab_sdcard))
.setContent(this));
-
tabHost.setCurrentTabByTag(defaultTabTag);
tabHost.setOnTabChangedListener(this);
}
+ @Override
protected void onDestroy() {
// Persist values in cache
mCache.updateCache();
}
@Override
- public Dialog onCreateDialog(int id) {
+ public Dialog onCreateDialog(int id, Bundle args) {
if (id == DLG_LOADING) {
ProgressDialog dlg = new ProgressDialog(this);
dlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);