Bug 710335 - Hide recommended addons section from about:home when empty (r=mfinkle)

This commit is contained in:
Lucas Rocha 2012-02-02 15:49:48 +00:00
Родитель cf802d69f5
Коммит 8434c857f9
2 изменённых файлов: 25 добавлений и 8 удалений

Просмотреть файл

@ -182,6 +182,13 @@ public class AboutHomeContent extends ScrollView {
}); });
} }
private void setAddonsVisibility(boolean visible) {
int visibility = visible ? View.VISIBLE : View.GONE;
findViewById(R.id.recommended_addons_title).setVisibility(visibility);
findViewById(R.id.recommended_addons).setVisibility(visibility);
findViewById(R.id.all_addons_text).setVisibility(visibility);
}
private void setTopSitesVisibility(boolean visible, boolean hasTopSites) { private void setTopSitesVisibility(boolean visible, boolean hasTopSites) {
int visibility = visible ? View.VISIBLE : View.GONE; int visibility = visible ? View.VISIBLE : View.GONE;
int visibilityWithTopSites = visible && hasTopSites ? View.VISIBLE : View.GONE; int visibilityWithTopSites = visible && hasTopSites ? View.VISIBLE : View.GONE;
@ -423,20 +430,25 @@ public class AboutHomeContent extends ScrollView {
Log.i("Addons", "filestream is null"); Log.i("Addons", "filestream is null");
jsonString = readFromZipFile(activity, addonsFilename); jsonString = readFromZipFile(activity, addonsFilename);
} }
if (jsonString == null)
return;
final JSONArray array; JSONArray addonsArray = null;
if (jsonString != null) {
try { try {
array = new JSONObject(jsonString).getJSONArray("addons"); addonsArray = new JSONObject(jsonString).getJSONArray("addons");
} catch (JSONException e) { } catch (JSONException e) {
Log.i(LOGTAG, "error reading json file", e); Log.i(LOGTAG, "error reading json file", e);
return; }
} }
final JSONArray array = addonsArray;
GeckoApp.mAppContext.mMainHandler.post(new Runnable() { GeckoApp.mAppContext.mMainHandler.post(new Runnable() {
public void run() { public void run() {
try { try {
if (array == null || array.length() == 0) {
setAddonsVisibility(false);
return;
}
for (int i = 0; i < array.length(); i++) { for (int i = 0; i < array.length(); i++) {
JSONObject jsonobj = array.getJSONObject(i); JSONObject jsonobj = array.getJSONObject(i);
@ -460,6 +472,8 @@ public class AboutHomeContent extends ScrollView {
mAddonsLayout.addView(row); mAddonsLayout.addView(row);
} }
setAddonsVisibility(true);
} catch (JSONException e) { } catch (JSONException e) {
Log.i(LOGTAG, "error reading json file", e); Log.i(LOGTAG, "error reading json file", e);
} }

Просмотреть файл

@ -160,12 +160,14 @@
android:textColor="#000000" android:textColor="#000000"
android:textStyle="bold" android:textStyle="bold"
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:visibility="gone"
android:text="@string/abouthome_addons_title"/> android:text="@string/abouthome_addons_title"/>
<LinearLayout android:id="@+id/recommended_addons" <LinearLayout android:id="@+id/recommended_addons"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:isScrollContainer="false"/> android:isScrollContainer="false"/>
<view class="org.mozilla.gecko.AboutHomeContent$LinkTextView" <view class="org.mozilla.gecko.AboutHomeContent$LinkTextView"
@ -176,6 +178,7 @@
android:textColor="#22629e" android:textColor="#22629e"
android:textSize="12sp" android:textSize="12sp"
android:gravity="center" android:gravity="center"
android:visibility="gone"
android:text="@string/abouthome_addons_browse"/> android:text="@string/abouthome_addons_browse"/>
</LinearLayout> </LinearLayout>