From 5786d014dce83e951873bf1cfbe71f9c256cd996 Mon Sep 17 00:00:00 2001 From: Aleksey Tulinov Date: Sun, 17 Nov 2013 06:42:33 +0200 Subject: [PATCH 01/60] Shifted summary to the right of icon to give icon more space, aligned status with license --- res/layout/applistitem.xml | 19 ++++++----- .../fdroid/fdroid/views/AppListAdapter.java | 33 ------------------- 2 files changed, 11 insertions(+), 41 deletions(-) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index bd8be5f7c..79600a582 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -11,12 +11,13 @@ + android:layout_toRightOf="@id/icon" /> + android:layout_alignParentRight="true" + android:layout_alignBaseline="@id/status" /> + + android:layout_below="@id/status" + android:layout_toRightOf="@id/icon" /> diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 1edb46ed9..5c5459b70 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -80,7 +80,6 @@ abstract public class AppListAdapter extends BaseAdapter { iconContainer.setVisibility(visibleOnCompact); status.setVisibility(notVisibleOnCompact); license.setVisibility(notVisibleOnCompact); - layoutSummary(summary); ImageLoader.getInstance().displayImage(app.iconUrl, icon); @@ -116,38 +115,6 @@ abstract public class AppListAdapter extends BaseAdapter { return convertView; } - /** - * In compact view, the summary sites next to the icon, below the name. - * In non-compact view, it sits under the icon, with some padding pushing - * it away from the left margin. - */ - private void layoutSummary(TextView summaryView) { - - if (Preferences.get().hasCompactLayout()) { - - RelativeLayout.LayoutParams summaryLayout = - new RelativeLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, - RelativeLayout.LayoutParams.WRAP_CONTENT); - summaryLayout.addRule(RelativeLayout.BELOW, R.id.name); - summaryLayout.addRule(LayoutCompat.RelativeLayout.END_OF, R.id.icon); - summaryView.setLayoutParams(summaryLayout); - summaryView.setPadding(0,0,0,0); - - } else { - - RelativeLayout.LayoutParams summaryLayout = - new RelativeLayout.LayoutParams( - RelativeLayout.LayoutParams.MATCH_PARENT, - RelativeLayout.LayoutParams.WRAP_CONTENT); - summaryLayout.addRule(RelativeLayout.BELOW, R.id.icon); - summaryView.setLayoutParams(summaryLayout); - float padding = mContext.getResources().getDimension(R.dimen.applist_summary_padding); - summaryView.setPadding((int)padding, 0, 0, 0); - - } - } - private String getVersionInfo(DB.App app) { if (app.installedVersion != null) { if (app.toUpdate) { From 89b15b534f634fdcd178cd25d831d97413bfb204 Mon Sep 17 00:00:00 2001 From: Aleksey Tulinov Date: Sun, 17 Nov 2013 22:06:15 +0200 Subject: [PATCH 02/60] Setting up ImageLoader for multiple loads to the same ImageView --- src/org/fdroid/fdroid/views/AppListAdapter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 5c5459b70..786f0a8c9 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -14,15 +14,24 @@ import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.compat.LayoutCompat; +import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.assist.ImageScaleType; abstract public class AppListAdapter extends BaseAdapter { private List items = new ArrayList(); private Context mContext; + private DisplayImageOptions displayImageOptions; public AppListAdapter(Context context) { mContext = context; + + DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder(); + builder.imageScaleType(ImageScaleType.NONE); // let android scale + builder.resetViewBeforeLoading(true); // required for multiple loading + builder.cacheInMemory(true); // default even if doc says otherwise + displayImageOptions = builder.build(); } abstract protected boolean showStatusUpdate(); @@ -81,7 +90,8 @@ abstract public class AppListAdapter extends BaseAdapter { status.setVisibility(notVisibleOnCompact); license.setVisibility(notVisibleOnCompact); - ImageLoader.getInstance().displayImage(app.iconUrl, icon); + ImageLoader.getInstance().displayImage(app.iconUrl, icon, + displayImageOptions); if (!compact) { status.setText(getVersionInfo(app)); From d687b7341e82d4ac68987b0b9bb006ec6a9ffd1e Mon Sep 17 00:00:00 2001 From: Aleksey Tulinov Date: Sun, 17 Nov 2013 22:09:04 +0200 Subject: [PATCH 03/60] Setting 32x32dp for compact layout, bumped summary to name --- res/layout/applistitem.xml | 22 +++++++++---------- res/values/dimen.xml | 3 ++- .../fdroid/fdroid/views/AppListAdapter.java | 15 +++++++++++++ 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 79600a582..e9be8e80f 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -9,6 +9,8 @@ android:paddingRight="3dp" android:baselineAligned="false" > + + + + android:layout_below="@id/summary" /> - - - diff --git a/res/values/dimen.xml b/res/values/dimen.xml index 6fe5117c7..f20a66205 100644 --- a/res/values/dimen.xml +++ b/res/values/dimen.xml @@ -1,4 +1,5 @@ - 3dp + 48dp + 32dp diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 786f0a8c9..0289b752c 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -90,6 +90,7 @@ abstract public class AppListAdapter extends BaseAdapter { status.setVisibility(notVisibleOnCompact); license.setVisibility(notVisibleOnCompact); + layoutIcon(icon, compact); ImageLoader.getInstance().displayImage(app.iconUrl, icon, displayImageOptions); @@ -140,4 +141,18 @@ abstract public class AppListAdapter extends BaseAdapter { } } + private void layoutIcon(ImageView icon, boolean compact) { + int size = (int)mContext.getResources().getDimension((compact + ? R.dimen.applist_icon_compact_size + : R.dimen.applist_icon_normal_size)); + + RelativeLayout.LayoutParams params = + (RelativeLayout.LayoutParams)icon.getLayoutParams(); + + params.height = size; + params.width = size; + + icon.setLayoutParams(params); + } + } From f4fa7db8c814da7b1ac5725c88127b82cf0bfbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:12:52 +0100 Subject: [PATCH 04/60] Make a couple FDroid variables local as per lint suggestion --- src/org/fdroid/fdroid/FDroid.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index e78135ef9..0052fb6ed 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -64,7 +64,6 @@ public class FDroid extends FragmentActivity { private ProgressDialog pd; private ViewPager viewPager; - private AppListFragmentPageAdapter viewPageAdapter; private AppListManager manager = null; @@ -288,7 +287,7 @@ public class FDroid extends FragmentActivity { private void createViews() { viewPager = (ViewPager)findViewById(R.id.main_pager); - viewPageAdapter = new AppListFragmentPageAdapter(this); + AppListFragmentPageAdapter viewPageAdapter = new AppListFragmentPageAdapter(this); viewPager.setAdapter(viewPageAdapter); viewPager.setOnPageChangeListener( new ViewPager.SimpleOnPageChangeListener() { @Override @@ -326,8 +325,6 @@ public class FDroid extends FragmentActivity { } } - private UpdateReceiver mUpdateReceiver; - /** * The first time the app is run, we will have an empty app list. * If this is the case, we will attempt to update with the default repo. @@ -360,7 +357,7 @@ public class FDroid extends FragmentActivity { pd.setCanceledOnTouchOutside(false); Intent intent = new Intent(this, UpdateService.class); - mUpdateReceiver = new UpdateReceiver(new Handler()); + UpdateReceiver mUpdateReceiver = new UpdateReceiver(new Handler()); intent.putExtra("receiver", mUpdateReceiver); startService(intent); } From d042ed75085d79a1949abb89290f9956e8f0100a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:13:09 +0100 Subject: [PATCH 05/60] Multiple appends are better than an append of a concatenation --- src/org/fdroid/fdroid/AppDetails.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index e682bc8a5..81cd937ce 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -474,8 +474,7 @@ public class AppDetails extends ListActivity { if (listNum == -1) { output.append("\t• "); } else { - output.append("\t" + Integer.toString(listNum) - + ". "); + output.append("\t").append(Integer.toString(listNum)).append(". "); listNum++; } } else { @@ -510,7 +509,7 @@ public class AppDetails extends ListActivity { String permissionName = permissions.next(); try { Permission permission = new Permission(this, permissionName); - sb.append("\t• " + permission.getName() + '\n'); + sb.append("\t• ").append(permission.getName()).append('\n'); } catch (NameNotFoundException e) { if (permissionName.equals("ACCESS_SUPERUSER")) { sb.append("\t• Full permissions to all device features and storage\n"); @@ -537,7 +536,7 @@ public class AppDetails extends ListActivity { for (String af : app.antiFeatures) { String afdesc = descAntiFeature(af); if (afdesc != null) { - sb.append("\t• " + afdesc + "\n"); + sb.append("\t• ").append(afdesc).append("\n"); } } if (sb.length() > 0) { From 9522edda74d9db819f9f0e81a5b5db460ce6efc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:14:26 +0100 Subject: [PATCH 06/60] Remove a couple unused vars --- src/org/fdroid/fdroid/AppDetails.java | 1 - src/org/fdroid/fdroid/compat/TabManager.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 81cd937ce..1bbc47f1c 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -425,7 +425,6 @@ public class AppDetails extends ListActivity { tv.setText(app.name); tv = (TextView) findViewById(R.id.license); tv.setText(app.license); - tv = (TextView) findViewById(R.id.status); tv = (TextView) infoView.findViewById(R.id.description); diff --git a/src/org/fdroid/fdroid/compat/TabManager.java b/src/org/fdroid/fdroid/compat/TabManager.java index e5a7e0a66..b7f3e9d5c 100644 --- a/src/org/fdroid/fdroid/compat/TabManager.java +++ b/src/org/fdroid/fdroid/compat/TabManager.java @@ -220,7 +220,6 @@ class HoneycombTabManagerImpl extends TabManager { private Spinner getActionBarSpinner() { if (actionBarSpinner == null && dirtyConfig) { dirtyConfig = false; - long time = System.currentTimeMillis(); actionBarSpinner = findActionBarSpinner(); } return actionBarSpinner; From 10fa5108daef6f319af8c5994f37fb0f055e77f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:15:53 +0100 Subject: [PATCH 07/60] Delete a bunch of unused imports --- src/org/fdroid/fdroid/FDroid.java | 1 - src/org/fdroid/fdroid/FDroidApp.java | 2 -- src/org/fdroid/fdroid/Preferences.java | 1 - src/org/fdroid/fdroid/UpdateService.java | 1 - src/org/fdroid/fdroid/compat/Compatibility.java | 2 -- src/org/fdroid/fdroid/compat/LayoutCompat.java | 2 -- 6 files changed, 9 deletions(-) diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index 0052fb6ed..0c26d29df 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -29,7 +29,6 @@ import android.app.AlertDialog.Builder; import android.app.NotificationManager; import android.app.ProgressDialog; import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; diff --git a/src/org/fdroid/fdroid/FDroidApp.java b/src/org/fdroid/fdroid/FDroidApp.java index a9cb64ab0..b5b0c8d93 100644 --- a/src/org/fdroid/fdroid/FDroidApp.java +++ b/src/org/fdroid/fdroid/FDroidApp.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.Semaphore; -import android.os.Build; import android.app.Application; import android.app.Activity; import android.preference.PreferenceManager; @@ -36,7 +35,6 @@ import android.graphics.Bitmap; import com.nostra13.universalimageloader.utils.StorageUtils; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; -import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index 891955b02..bb4d7cb0d 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.prefs.PreferenceChangeListener; import android.content.Context; import android.content.SharedPreferences; diff --git a/src/org/fdroid/fdroid/UpdateService.java b/src/org/fdroid/fdroid/UpdateService.java index c9854f331..4cbe66488 100644 --- a/src/org/fdroid/fdroid/UpdateService.java +++ b/src/org/fdroid/fdroid/UpdateService.java @@ -29,7 +29,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; -import android.graphics.BitmapFactory; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; diff --git a/src/org/fdroid/fdroid/compat/Compatibility.java b/src/org/fdroid/fdroid/compat/Compatibility.java index 946faf483..5fe507bba 100644 --- a/src/org/fdroid/fdroid/compat/Compatibility.java +++ b/src/org/fdroid/fdroid/compat/Compatibility.java @@ -2,8 +2,6 @@ package org.fdroid.fdroid.compat; import android.os.Build; -import org.fdroid.fdroid.Utils; - public abstract class Compatibility { protected static boolean hasApi(int apiLevel) { diff --git a/src/org/fdroid/fdroid/compat/LayoutCompat.java b/src/org/fdroid/fdroid/compat/LayoutCompat.java index ab02d8443..0624d0800 100644 --- a/src/org/fdroid/fdroid/compat/LayoutCompat.java +++ b/src/org/fdroid/fdroid/compat/LayoutCompat.java @@ -1,7 +1,5 @@ package org.fdroid.fdroid.compat; -import android.widget.RelativeLayout; - public abstract class LayoutCompat extends Compatibility { public static LayoutCompat create() { From 00a0f4399fb7d5e568fc768a294e82f187774d0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:19:53 +0100 Subject: [PATCH 08/60] Avoid a couple possible NullPointerExceptions --- src/org/fdroid/fdroid/DB.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index c4aebe5e0..20bbeb499 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -378,10 +378,12 @@ public class DB { StringBuilder logMsg = new StringBuilder(); logMsg.append("Available device features:"); features = new HashSet(); - for (FeatureInfo fi : pm.getSystemAvailableFeatures()) { - features.add(fi.name); - logMsg.append('\n'); - logMsg.append(fi.name); + if (pm != null) { + for (FeatureInfo fi : pm.getSystemAvailableFeatures()) { + features.add(fi.name); + logMsg.append('\n'); + logMsg.append(fi.name); + } } cpuAbis = new ArrayList(); @@ -866,8 +868,10 @@ public class DB { if (app.installedVersion == null) app.installedVersion = "null"; app.installedVerCode = sysapk.versionCode; - app.userInstalled = ((sysapk.applicationInfo.flags - & ApplicationInfo.FLAG_SYSTEM) != 1); + if (sysapk.applicationInfo != null) { + app.userInstalled = ((sysapk.applicationInfo.flags + & ApplicationInfo.FLAG_SYSTEM) != 1); + } } else { app.installedVersion = null; app.installedVerCode = 0; From ccbfa2744eeb468cc4ea241c44607f34a73263ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:23:10 +0100 Subject: [PATCH 09/60] Replace iterator with foreach --- src/org/fdroid/fdroid/DB.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 20bbeb499..0238aa1d5 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -1085,9 +1085,8 @@ public class DB { } public boolean contains(String v) { - Iterator it = iterator(); - while (it.hasNext()) { - if (it.next().equals(v)) + for (String s : this) { + if (s.equals(v)) return true; } return false; From a0a2fe4cf0c6f954a93d2807f325be1a42283785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:28:35 +0100 Subject: [PATCH 10/60] A few variable type fixes --- src/org/fdroid/fdroid/AppDetails.java | 2 +- src/org/fdroid/fdroid/DB.java | 2 +- src/org/fdroid/fdroid/FDroidApp.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 1bbc47f1c..52c7b400b 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -197,7 +197,7 @@ public class AppDetails extends ListActivity { LinearLayout headerView; View infoView; - private Context mctx = this; + private final Context mctx = this; @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 0238aa1d5..b4c9b98ca 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -55,7 +55,7 @@ import org.fdroid.fdroid.compat.ContextCompat; public class DB { private static Semaphore dbSync = new Semaphore(1, true); - static DB dbInstance = null; + private static DB dbInstance = null; // Initialise the database. Called once when the application starts up. static void initDB(Context ctx) { diff --git a/src/org/fdroid/fdroid/FDroidApp.java b/src/org/fdroid/fdroid/FDroidApp.java index b5b0c8d93..3a8eb607f 100644 --- a/src/org/fdroid/fdroid/FDroidApp.java +++ b/src/org/fdroid/fdroid/FDroidApp.java @@ -126,7 +126,7 @@ public class FDroidApp extends Application { ImageLoader.getInstance().init(config); } - Context ctx; + private Context ctx; // Global list of all known applications. private List apps; From 2ee5226d62da362746a76bc0b17f1ac03e39ef43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 12 Dec 2013 00:29:02 +0100 Subject: [PATCH 11/60] Remove wanted id instead of hard-coded 1... --- src/org/fdroid/fdroid/FDroid.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index 0c26d29df..9a64c51db 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -375,7 +375,7 @@ public class FDroid extends FragmentActivity { public void removeNotification(int id) { NotificationManager nMgr = (NotificationManager) getBaseContext() .getSystemService(Context.NOTIFICATION_SERVICE); - nMgr.cancel(1); + nMgr.cancel(id); } } From 744d46161ed26ebd8d63b67a6b6f076e9c365719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sat, 14 Dec 2013 11:34:26 +0100 Subject: [PATCH 12/60] Remove unnecessary returns --- src/org/fdroid/fdroid/AppDetails.java | 2 -- src/org/fdroid/fdroid/DB.java | 1 - src/org/fdroid/fdroid/FDroid.java | 1 - src/org/fdroid/fdroid/ManageRepo.java | 2 -- 4 files changed, 6 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 52c7b400b..93bf5ee73 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -609,7 +609,6 @@ public class AppDetails extends ListActivity { @Override public void onClick(DialogInterface dialog, int whichButton) { - return; } }); AlertDialog alert = ask_alrt.create(); @@ -822,7 +821,6 @@ public class AppDetails extends ListActivity { @Override public void onClick(DialogInterface dialog, int whichButton) { - return; } }); AlertDialog alert = ask_alrt.create(); diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index b4c9b98ca..1f8150545 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -1145,7 +1145,6 @@ public class DB { Log.d("FDroid", "AppUpdate: " + updateApps.size() + " apps on completion."); updateApps = null; - return; } // Called instead of endUpdate if the update failed. diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index 9a64c51db..11b46c555 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -251,7 +251,6 @@ public class FDroid extends FragmentActivity { @Override public void onClick(DialogInterface dialog, int whichButton) { - return; } }); AlertDialog alert = ask_alrt.create(); diff --git a/src/org/fdroid/fdroid/ManageRepo.java b/src/org/fdroid/fdroid/ManageRepo.java index de5b6c884..6e4db92bd 100644 --- a/src/org/fdroid/fdroid/ManageRepo.java +++ b/src/org/fdroid/fdroid/ManageRepo.java @@ -290,7 +290,6 @@ public class ManageRepo extends ListActivity { public void onClick(DialogInterface dialog, int which) { setResult(Activity.RESULT_CANCELED); finish(); - return; } }); alrt.show(); @@ -410,7 +409,6 @@ public class ManageRepo extends ListActivity { @Override public void onClick(DialogInterface dialog, int whichButton) { - return; } }); AlertDialog alert = builder.create(); From e070883934ec90c5ecfaa2c1ab2abf7aae7ab085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sat, 14 Dec 2013 11:41:25 +0100 Subject: [PATCH 13/60] Remove empty overrides --- src/org/fdroid/fdroid/AppDetails.java | 5 ----- src/org/fdroid/fdroid/SearchResults.java | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 93bf5ee73..4b6bc07cf 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -308,11 +308,6 @@ public class AppDetails extends ListActivity { super.onPause(); } - @Override - protected void onStop() { - super.onStop(); - } - @Override public Object onRetainNonConfigurationInstance() { stateRetained = true; diff --git a/src/org/fdroid/fdroid/SearchResults.java b/src/org/fdroid/fdroid/SearchResults.java index e8afcb002..75b2ebb0b 100644 --- a/src/org/fdroid/fdroid/SearchResults.java +++ b/src/org/fdroid/fdroid/SearchResults.java @@ -92,11 +92,6 @@ public class SearchResults extends ListActivity { updateView(); } - @Override - protected void onResume() { - super.onResume(); - } - private void updateView() { List matchingids = new ArrayList(); From 71be2d8e822d3900629ac27bdeee69e487323307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sat, 14 Dec 2013 11:47:59 +0100 Subject: [PATCH 14/60] Avoid a couple possible NullPointerExceptions --- src/org/fdroid/fdroid/AppDetails.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 4b6bc07cf..345a7a1e0 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -214,13 +214,13 @@ public class AppDetails extends ListActivity { Uri data = i.getData(); if (data != null) { if (data.isHierarchical()) { - if (data.getHost().equals("details")) { + if (data.getHost() != null && data.getHost().equals("details")) { // market://details?id=app.id appid = data.getQueryParameter("id"); } else { // https://f-droid.org/app/app.id appid = data.getLastPathSegment(); - if (appid.equals("app")) appid = null; + if (appid != null && appid.equals("app")) appid = null; } } else { // fdroid.app:app.id From 2651b81792bdeed0db3c3960d0b7283536611012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 16 Dec 2013 10:23:21 +0100 Subject: [PATCH 15/60] We should not encourage all caps urls --- AndroidManifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6040a50d6..4c007410f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -107,11 +107,8 @@ - - - From 7f09ff0c097ae4de9c58292693bcf009b64805da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 22 Dec 2013 14:15:17 +0100 Subject: [PATCH 16/60] Bump gradle and build-tools versions --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3cb2a0234..164057946 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.6.+' + classpath 'com.android.tools.build:gradle:0.7.+' } } @@ -15,7 +15,7 @@ dependencies { android { compileSdkVersion 19 - buildToolsVersion "19.0.0" + buildToolsVersion "19.0.1" sourceSets { main { From 0df1426c8ada5fce82a75d7adaf907f364ffa812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 23 Dec 2013 13:43:34 +0100 Subject: [PATCH 17/60] Slightly more specific gitignore --- .gitignore | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index ac460002d..023b57957 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,12 @@ -local.properties -build.properties +/local.properties +/build.properties .classpath /bin/ /gen/ /build /.gradle -proguard.cfg -build.xml +/proguard.cfg +/build.xml *~ .idea *.iml From 5c722ff07beaf30fd507819023444bbf3aaaa8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 25 Dec 2013 19:36:27 +0100 Subject: [PATCH 18/60] Update UIL --- extern/Universal-Image-Loader | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/Universal-Image-Loader b/extern/Universal-Image-Loader index 2a8a184d4..7fdd7d00f 160000 --- a/extern/Universal-Image-Loader +++ b/extern/Universal-Image-Loader @@ -1 +1 @@ -Subproject commit 2a8a184d40b16756fd80edc342550bb2335d6461 +Subproject commit 7fdd7d00fcadd2056e1cfa1a308f5c28c71adbd9 From f3b247dc81ba79a86cc9a7793955c98962379320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 25 Dec 2013 20:11:26 +0100 Subject: [PATCH 19/60] Don't override old DisplayImageOptions entirely --- src/org/fdroid/fdroid/AppDetails.java | 18 +++++++++++++++++- src/org/fdroid/fdroid/FDroidApp.java | 13 ------------- .../fdroid/fdroid/views/AppListAdapter.java | 18 +++++++++++++----- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 345a7a1e0..c8ed91e24 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -62,6 +62,7 @@ import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; +import android.graphics.Bitmap; import android.support.v4.app.NavUtils; import android.support.v4.view.MenuItemCompat; @@ -71,7 +72,10 @@ import org.fdroid.fdroid.compat.ActionBarCompat; import org.fdroid.fdroid.compat.MenuManager; import org.fdroid.fdroid.DB.CommaSeparatedList; +import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; +import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.assist.ImageScaleType; public class AppDetails extends ListActivity { @@ -198,6 +202,7 @@ public class AppDetails extends ListActivity { View infoView; private final Context mctx = this; + private DisplayImageOptions displayImageOptions; @Override protected void onCreate(Bundle savedInstanceState) { @@ -205,6 +210,16 @@ public class AppDetails extends ListActivity { ((FDroidApp) getApplication()).applyTheme(this); super.onCreate(savedInstanceState); + + displayImageOptions = new DisplayImageOptions.Builder() + .cacheInMemory(true) + .cacheOnDisc(true) + .imageScaleType(ImageScaleType.NONE) + .showImageOnLoading(R.drawable.ic_repo_app_default) + .showImageForEmptyUri(R.drawable.ic_repo_app_default) + .bitmapConfig(Bitmap.Config.RGB_565) + .build(); + ActionBarCompat abCompat = ActionBarCompat.create(this); abCompat.setDisplayHomeAsUpEnabled(true); @@ -413,7 +428,8 @@ public class AppDetails extends ListActivity { // Set the icon... ImageView iv = (ImageView) findViewById(R.id.icon); - ImageLoader.getInstance().displayImage(app.iconUrl, iv); + ImageLoader.getInstance().displayImage(app.iconUrl, iv, + displayImageOptions); // Set the title and other header details... TextView tv = (TextView) findViewById(R.id.title); diff --git a/src/org/fdroid/fdroid/FDroidApp.java b/src/org/fdroid/fdroid/FDroidApp.java index 3a8eb607f..f8ed94acf 100644 --- a/src/org/fdroid/fdroid/FDroidApp.java +++ b/src/org/fdroid/fdroid/FDroidApp.java @@ -30,13 +30,10 @@ import android.preference.PreferenceManager; import android.util.Log; import android.content.Context; import android.content.SharedPreferences; -import android.graphics.Bitmap; import com.nostra13.universalimageloader.utils.StorageUtils; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; -import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; -import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; @@ -102,15 +99,6 @@ public class FDroidApp extends Application { DB.initDB(ctx); UpdateService.schedule(ctx); - DisplayImageOptions options = new DisplayImageOptions.Builder() - .cacheInMemory(true) - .cacheOnDisc(true) - .showImageOnLoading(R.drawable.ic_repo_app_default) - .showImageForEmptyUri(R.drawable.ic_repo_app_default) - .displayer(new FadeInBitmapDisplayer(200, true, true, false)) - .bitmapConfig(Bitmap.Config.RGB_565) - .build(); - ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(ctx) .discCache(new UnlimitedDiscCache( new File(StorageUtils.getCacheDirectory(ctx), "icons"), @@ -120,7 +108,6 @@ public class FDroidApp extends Application { return imageUri.substring( imageUri.lastIndexOf('/') + 1); } } )) - .defaultDisplayImageOptions(options) .threadPoolSize(Runtime.getRuntime().availableProcessors() * 2) .build(); ImageLoader.getInstance().init(config); diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 0289b752c..535475953 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -8,12 +8,14 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.*; +import android.graphics.Bitmap; import org.fdroid.fdroid.DB; import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.compat.LayoutCompat; +import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; @@ -27,11 +29,17 @@ abstract public class AppListAdapter extends BaseAdapter { public AppListAdapter(Context context) { mContext = context; - DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder(); - builder.imageScaleType(ImageScaleType.NONE); // let android scale - builder.resetViewBeforeLoading(true); // required for multiple loading - builder.cacheInMemory(true); // default even if doc says otherwise - displayImageOptions = builder.build(); + displayImageOptions = new DisplayImageOptions.Builder() + .cacheInMemory(true) + .cacheOnDisc(true) + .imageScaleType(ImageScaleType.NONE) + .resetViewBeforeLoading(true) + .showImageOnLoading(R.drawable.ic_repo_app_default) + .showImageForEmptyUri(R.drawable.ic_repo_app_default) + .displayer(new FadeInBitmapDisplayer(200, true, true, false)) + .bitmapConfig(Bitmap.Config.RGB_565) + .build(); + } abstract protected boolean showStatusUpdate(); From e3789631ba97743c68b72a9aa3bd632003f6fe49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 25 Dec 2013 22:46:46 +0100 Subject: [PATCH 20/60] Restructure applistitem: * Move it to the top right corner * Don't let the app name overlap it * Ellipsize version names to leave space for name * Summary can now take two lines if it needs them * Installed versions are now bold --- res/layout/applistitem.xml | 30 ++++++------ .../fdroid/fdroid/views/AppListAdapter.java | 47 ++++++++++++++----- 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index e9be8e80f..33f1d8003 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -4,7 +4,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="3dp" - android:paddingBottom="5dp" + android:paddingBottom="4dp" android:paddingLeft="3dp" android:paddingRight="3dp" android:baselineAligned="false" > @@ -44,6 +44,15 @@ + + - - + android:layout_alignParentBottom="true" + android:layout_alignParentRight="true" /> diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 535475953..89fefd2cf 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -4,10 +4,13 @@ import java.util.ArrayList; import java.util.List; import android.content.Context; +import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.*; +import android.text.SpannableString; +import android.text.style.StyleSpan; import android.graphics.Bitmap; import org.fdroid.fdroid.DB; @@ -133,20 +136,38 @@ abstract public class AppListAdapter extends BaseAdapter { return convertView; } - - private String getVersionInfo(DB.App app) { - if (app.installedVersion != null) { - if (app.toUpdate) { - return app.installedVersion + " -> " + app.curApk.version; - } - return app.installedVersion; - } else { - int numav = app.apks.size(); - if (numav == 1) { - return mContext.getString(R.string.n_version_available, numav); - } - return mContext.getString(R.string.n_versions_available, numav); + String ellipsize(String input, int maxLength) { + if (input == null || input.length() < maxLength+1) { + return input; } + return input.substring(0, maxLength) + "…"; + } + + private SpannableString getVersionInfo(DB.App app) { + + if (app.curApk == null) { + return null; + } + + if (app.installedVersion == null) { + return new SpannableString( + ellipsize(app.curApk.version, 12)); + } + + SpannableString span; + String cur; + + if (app.toUpdate) { + cur = ellipsize(app.installedVersion, 8); + span = new SpannableString( + cur + " -> " + ellipsize(app.curApk.version, 8)); + } else { + cur = ellipsize(app.installedVersion, 12); + span = new SpannableString(cur); + } + + span.setSpan(new StyleSpan(Typeface.BOLD), 0, cur.length(), 0); + return span; } private void layoutIcon(ImageView icon, boolean compact) { From 03f286928120074181acd41a69233b9ed4da7090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 25 Dec 2013 22:48:12 +0100 Subject: [PATCH 21/60] Always load incompatible apks on memory --- src/org/fdroid/fdroid/AppDetails.java | 14 +++++++-- src/org/fdroid/fdroid/DB.java | 42 +++++++++++++-------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index c8ed91e24..a2667be35 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -87,11 +87,18 @@ public class AppDetails extends ListActivity { private List items; public ApkListAdapter(Context context, List items) { - this.items = (items != null ? items : new ArrayList()); + this.items = new ArrayList(); + if (items != null) { + for (DB.Apk apk : items) { + this.addItem(apk); + } + } } public void addItem(DB.Apk apk) { - items.add(apk); + if (apk.compatible || pref_incompatibleVersions) { + items.add(apk); + } } public List getItems() { @@ -273,6 +280,8 @@ public class AppDetails extends ListActivity { .getDefaultSharedPreferences(getBaseContext()); pref_expert = prefs.getBoolean("expert", false); pref_permissions = prefs.getBoolean("showPermissions", false); + pref_incompatibleVersions = prefs.getBoolean( + "incompatibleVersions", false); startViews(); @@ -280,6 +289,7 @@ public class AppDetails extends ListActivity { private boolean pref_expert; private boolean pref_permissions; + private boolean pref_incompatibleVersions; private boolean resetRequired; // The signature of the installed version. diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 1f8150545..f3089476f 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -243,7 +243,8 @@ public class DB { int latestcode = -1; Apk latestapk = null; for (Apk apk : apks) { - if (apk.compatible && apk.vercode <= curVercode + if ((!this.compatible || apk.compatible) + && apk.vercode <= curVercode && apk.vercode > latestcode) { latestapk = apk; latestcode = apk.vercode; @@ -257,7 +258,8 @@ public class DB { int latestcode = -1; Apk latestapk = null; for (Apk apk : apks) { - if (apk.compatible && apk.vercode > latestcode) { + if ((!this.compatible || apk.compatible) + && apk.vercode > latestcode) { latestapk = apk; latestcode = apk.vercode; } @@ -891,8 +893,6 @@ public class DB { List repos = getRepos(); SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(mContext); - boolean incompatibleVersions = prefs - .getBoolean("incompatibleVersions", false); cols = new String[] { "id", "version", "vercode", "sig", "srcname", "apkName", "minSdkVersion", "added", "features", "nativecode", "compatible", "repo" }; @@ -908,24 +908,22 @@ public class DB { } boolean compatible = c.getInt(10) == 1; int repoid = c.getInt(11); - if (compatible || incompatibleVersions) { - Apk apk = new Apk(); - apk.id = id; - apk.version = c.getString(1); - apk.vercode = c.getInt(2); - apk.sig = c.getString(3); - apk.srcname = c.getString(4); - apk.apkName = c.getString(5); - apk.minSdkVersion = c.getInt(6); - String sApkAdded = c.getString(7); - apk.added = (sApkAdded == null || sApkAdded.length() == 0) ? null - : mDateFormat.parse(sApkAdded); - apk.features = CommaSeparatedList.make(c.getString(8)); - apk.nativecode = CommaSeparatedList.make(c.getString(9)); - apk.compatible = compatible; - apk.repo = repoid; - app.apks.add(apk); - } + Apk apk = new Apk(); + apk.id = id; + apk.version = c.getString(1); + apk.vercode = c.getInt(2); + apk.sig = c.getString(3); + apk.srcname = c.getString(4); + apk.apkName = c.getString(5); + apk.minSdkVersion = c.getInt(6); + String sApkAdded = c.getString(7); + apk.added = (sApkAdded == null || sApkAdded.length() == 0) ? null + : mDateFormat.parse(sApkAdded); + apk.features = CommaSeparatedList.make(c.getString(8)); + apk.nativecode = CommaSeparatedList.make(c.getString(9)); + apk.compatible = compatible; + apk.repo = repoid; + app.apks.add(apk); if (app.iconUrl == null && app.icon != null) { for (DB.Repo repo : repos) { if (repo.id == repoid) { From c306fe915741a8f76210e7cbbb1c050469d1d0fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 26 Dec 2013 00:08:43 +0100 Subject: [PATCH 22/60] Properly center elements in the app list views --- res/layout/appdetails.xml | 5 +- res/layout/appinfo.xml | 8 +-- res/layout/applistitem.xml | 139 +++++++++++++++++++------------------ res/layout/fdroid.xml | 2 - 4 files changed, 78 insertions(+), 76 deletions(-) diff --git a/res/layout/appdetails.xml b/res/layout/appdetails.xml index cf9c04155..8e22961f5 100644 --- a/res/layout/appdetails.xml +++ b/res/layout/appdetails.xml @@ -2,9 +2,7 @@ @@ -19,7 +17,6 @@ android:layout_width="48dp" android:layout_height="48dp" android:cropToPadding="true" - android:layout_marginLeft="2dp" android:layout_marginRight="6dp" android:scaleType="fitCenter" /> diff --git a/res/layout/appinfo.xml b/res/layout/appinfo.xml index 6b7428ad7..5c96a9a9b 100644 --- a/res/layout/appinfo.xml +++ b/res/layout/appinfo.xml @@ -2,10 +2,10 @@ diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 33f1d8003..8b4e56b31 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -1,85 +1,92 @@ + android:orientation="vertical" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:paddingTop="6dp" + android:paddingBottom="6dp" + android:baselineAligned="false" > - - - + - + - + - + - + - + - + - + + + + + diff --git a/res/layout/fdroid.xml b/res/layout/fdroid.xml index 9880ed10e..fe0687322 100644 --- a/res/layout/fdroid.xml +++ b/res/layout/fdroid.xml @@ -3,8 +3,6 @@ android:id="@+id/fdroid_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" - android:paddingLeft="2dp" - android:paddingRight="2dp" android:baselineAligned="false" android:orientation="vertical"> From dc7df0fc5fb6578720829fbcbd6635316e35acba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 26 Dec 2013 00:12:46 +0100 Subject: [PATCH 23/60] Release 0.56-test --- AndroidManifest.xml | 2 +- res/values/no_trans.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4c007410f..fde2acbde 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,7 +2,7 @@ F-Droid - 0.55 + 0.56-test https://f-droid.org team@f-droid.org From 2db4f3f972db65126ad5836a7624148114883f0d Mon Sep 17 00:00:00 2001 From: F-Droid Translatebot Date: Sun, 29 Dec 2013 12:55:24 +0000 Subject: [PATCH 24/60] Translation updates --- res/values-de/strings.xml | 10 +-- res/values-en-rGB/array.xml | 6 ++ res/values-en-rGB/strings.xml | 8 +++ res/values-gl/strings.xml | 62 +++++++++--------- res/values-ko/array.xml | 19 ++++++ res/values-ko/strings.xml | 107 +++++++++++++++++++++++++++++++ res/values-nl/strings.xml | 18 +++--- res/values-pl/strings.xml | 17 ++++- res/values-sv/strings.xml | 22 +++---- res/values-ug-arab/array.xml | 19 ++++++ res/values-ug-arab/strings.xml | 114 +++++++++++++++++++++++++++++++++ 11 files changed, 344 insertions(+), 58 deletions(-) create mode 100644 res/values-en-rGB/array.xml create mode 100644 res/values-en-rGB/strings.xml create mode 100644 res/values-ko/array.xml create mode 100644 res/values-ko/strings.xml create mode 100644 res/values-ug-arab/array.xml create mode 100644 res/values-ug-arab/strings.xml diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index e3c05b022..96924eb7e 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -17,10 +17,10 @@ niemals Automatische Paketaktualisierung Anwendungsliste automatisch aus den Paketquellen aktualisieren - Nur bei WLAN - Anwendungsliste nur bei WLAN automatisch aktualisieren + Nur über WLAN + Anwendungsliste nur über WLAN automatisch aktualisieren Benachrichtigen - Bei verfügbaren Aktualisierungen benachrichtigen + Benachrichtigen, wenn neue Aktualisierungen verfügbar sind Aktualisierungsverlauf Zeitraum in Tagen, für den neue bzw. aktualisierte Anwendungen angezeigt werden. Suchergebnisse @@ -93,8 +93,8 @@ Sollen diese aktualisiert werden? Experte Expertenmodus einschalten Anwendungen suchen - Art der Datenbanksynchronisation - SQLite Synchronisationsmodus setzen + Datenbanksynchronisierungsart + SQLite-Synchronisationsmodus einstellen Kompatibilität der Anwendung Inkompatible Versionen Anwendungsversionen anzeigen, welche mit dem Gerät inkompatibel sind diff --git a/res/values-en-rGB/array.xml b/res/values-en-rGB/array.xml new file mode 100644 index 000000000..5f9a7b3a8 --- /dev/null +++ b/res/values-en-rGB/array.xml @@ -0,0 +1,6 @@ + + + + Nigdy + + diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml new file mode 100644 index 000000000..9d75613ee --- /dev/null +++ b/res/values-en-rGB/strings.xml @@ -0,0 +1,8 @@ + + + Powiadom gdy będDroid Fire + Historia aktualizacji + Email: + Wersja: + Co nowego + diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 9adb9ffef..a68ac09e5 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -1,34 +1,34 @@ - Atopáronse %1$d aplicacións que cadran con \'%2$s\': - Atopouse unha aplicación que cadra con \'%s\': - Non se atoparon aplicacións que cadren con \'%s\' - A nova versión está asinada cunha chave diferente da antiga. Para instalar a nova versión, antes débese desinstalar a anterior. Por favor, fai esto e téntao de novo. (Decátate que ó desinstalar borrarase calquera dato interno gardado pola aplicación) + Atopáronse %1$d aplicativos que cadran con \'%2$s\': + Atopouse un aplicativo que cadra con \'%s\': + Non se atoparon aplicativos que cadren con \'%s\' + A nova versión está asinada cunha clave diferente da antiga. Para instalar a nova versión, antes débese desinstalar a anterior. Por favor, fágao e téntao de novo. (Ao desinstalar borrarase calquera dato interno gardado pola aplicación) Parece que este paquete non é compatíbel co seu dispositivo. Quere facer a proba e instalalo aínda así? - Estás tentando de instalar unha versión anterior. Esto pode acarrexar un mal funcionamento ou pérdida de datos. ¿Queres tentalo aínda así? + Está tentando instalar unha versión anterior. Isto pode supoñer un mal funcionamento ou perda de datos. Quere tentalo de todas maneiras? Versión - %d versións dispoñíbles - %d versión dispoñíbles - Caché de aplicacións descargadas + %d versións dispoñíbeis + %d versión dispoñíbeis + Memorizar as aps descargadas Gardar os ficheiros apk descargados na tarxeta SD Actualizacións Outro Último escaneado do repositorio: %s nunca Escaneado automático dos repositorios - Actualizar automáticamente a lista de aplicacións do repositorio + Actualizar automaticamente a lista de aps do repositorio Soamente no wifi Actualizar as listas de aps automaticamente soamente cando hai wifi Notificar - Avisarme cando estean dispoñíbles novas actualizacións + Avisarme cando estean dispoñíbeis novas actualizacións Histórico de actualizacións - Días para mostrar aplicacións novas/actualizadas + Días para amosar aps novas/actualizadas Resultados da busca Detalles da ap Non se atopa tal ap Sobre F-Droid Baseado en Aptoide. -Publicado con licencia GNU GPLv3. +Publicado con licenza GNU GPLv3. Sitio web: Correo: Versión: @@ -43,8 +43,8 @@ Un enderezo a un repositorio sería algo como isto: https://f-droid.org/repo Instalada - Non instalado - Engadido en %s + Non instalada + Engadida a %s Aceptar Si Non @@ -54,17 +54,17 @@ Un enderezo a un repositorio sería algo Escoller o repositorio que retirar Actualizar repositorios Instalado - Dispoñíble + Dispoñíbel Actualizacións - 1 Actualización dispoñíble - %d actualizacións dispoñíbles - Actualizacións de F-Droid dispoñíbles + 1 Actualización dispoñíbel + %d actualizacións dispoñíbeis + Actualizacións de F-Droid dispoñíbeis Agarde por favor - Actualizando a lista de aplicacións... - Obtendo a aplicación desde + Actualizando a lista de aplicativos... + Obtención do aplicativo desde Enderezo do repositorio Cambiou a lista de repositorios usados. -¿Queres actualizalos? +Quere actualizalos? Actualizar repositorios Xestionar repositorios Preferencias @@ -85,7 +85,7 @@ Un enderezo a un repositorio sería algo Doar Instalada a versión %s Non instalada - O ficheiro descargado está corrompido + O ficheiro descargado está corrupto Descarga cancelada Esta ap contén publicidade Esta ap rexistra e informa da súa actividade @@ -95,35 +95,35 @@ Un enderezo a un repositorio sería algo Amosar Experto Activar o modo experto - Buscar aplicacións + Buscar aplicativos Modo de sincronización da base de datos - Estabelece o valor da bandeira de sincronización de SQLite - Compatibilidade de aplicacións + Estabelece o valor da marca de sincronización de SQLite + Compatibilidade de aplicativos Versións incompatíbeis Amosar versións de aps que son incompatíbeis co dispositivo Root - Amosar aplicacións que requiren privilexios de root + Amosar aplicativos que requiren privilexios de root Ignorar a pantalla táctil - Incluír sempre as aplicacións que requiren pantalla táctil + Incluír sempre as aps que requiren pantalla táctil Todos Qué novidades hai Actualizado recentemente Descargando %2$s / %3$s (%4$d%%) desde %1$s - Procesando a aplicación + Procesando o aplicativo %2$d de %3$d desde %1$s Conectándose con %1$s - Comprobando a compatibilidade das aplicacións con teu aparato + Comprobando a compatibilidade das aps con seu aparello Non se usan permisos Permisos para a versión %s Amosar permisos - Amosar unha lista dos permisos que precisa unha aplicación + Presentar a lista dos permisos que precisa unha ap Non ten ningunha ap dispoñíbel que poida manexar %s Deseño compacto - Amosar únicamente os nomes das aplicacións e resumos na lista + Amosar unicamente os nomes das aps e resumos na lista Tema Escolla un tema diff --git a/res/values-ko/array.xml b/res/values-ko/array.xml new file mode 100644 index 000000000..2bf47cb19 --- /dev/null +++ b/res/values-ko/array.xml @@ -0,0 +1,19 @@ + + + + + 매시간마다 + 4시간마다 + 12시간마다 + 매일 + + + 어두운 + 밝은 + + + 해제 (안전하지 않음) + 보통 + 전체 + + diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml new file mode 100644 index 000000000..b4657fd03 --- /dev/null +++ b/res/values-ko/strings.xml @@ -0,0 +1,107 @@ + + + \'%2$s\' 검색결과 (%1$d개) + \'%s\' 검색결과: + \'%s\' 와 일치하는 응용프로그램을 찾을 수 없습니다. + 이 응용 프로그램의 다운그레이드 하려고 합니다. 이전 버전을 설치할 경우, 응용 프로그램에 데이터가 손상되거나 오작동이 발생할 수 있습니다. 정말로 다운그레이드하시겠습니까? + 버전 + %d개의 버전을 사용할 수 있습니다. + %d개의 버전을 사용할 수 있습니다. + 다운로드된 설치파일 저장 + SD카드에 다운로드된 설치파일을 보관 + 업데이트 + 기타 + 마지막 저장소 검색: %s + 자동으로 저장소 검색 + 자동으로 저장소의 앱 목록을 갱신합니다. + Wi-Fi 연결 시에만 + Wi-Fi에 연결되어 있을 때만 자동으로 앱 목록을 갱신합니다. + 알림 + 새로운 업데이트가 가능할 때 알림 + 이력 업데이트 + 검색 결과 + 앱 상세정보 + F-Droid 대하여 + 웹사이트: + 이메일: + 버전: + 웹사이트 + 저장소가 구성되지 않았습니다! +저장소는 응용프로그램의 소스입니다. +추가하려면, 메뉴에 \"새 저장소\" 버튼을 누르고 URL 입력해주세요. +저장소 URL 예: https://f-droid.org/repo + 설치됨 + 설치되지 않음 + %s에 추가됨 + 확인 + + 아니오 + 새로운 저장소 추가 + 추가 + 취소 + 제거할 저장소 선택 + 저장소 업데이트 + 설치됨 + 업데이트 + 1개의 업데이트를 사용할 수 있습니다. + %d개의 업데이트를 사용할 수 있습니다. + F-Droid 업데이트를 사용할 수 있습니다. + 잠시만 기다려주세요 + 응용 프로그램 목록 업데이트중... + 에서 응용프로그램 가져오기 + 저장소 주소 + 사용된 저장소의 목록이 변경되었습니다. +업데이트 하시겠습니까? + 저장소 업데이트 + 저장소 관리 + 설정 + 대하여 + 검색 + 새로운 저장소 + 저장소 제거 + 실행 + 공유 + 설치 + 제거 + 모든 업데이트 무시 + 이 업데이트 무시 + 웹사이트 + 이슈 + 소스코드 + 업그레이드 + 기부 + 설치되지 않음 + 다운로드된 파일이 손상되었습니다. + 다운로드 취소됨 + 이 응용프로그램은 광고가 포함되어 있습니다. + 이 응용프로그램은 활동을 추적하여 리포트를 보고합니다. + 표시 + 전문가 + 전문가 모드 사용 + 응용 프로그램 검색 + 데이터베이스 동기화 모드 + 응용 프로그램 호환성 + 호환되지 않는 버전 + Root 권한이 필요한 앱을 보여줍니다. + 터치스크린 무시 + 터치스크린을 요구하는 앱을 포함합니다 + 전체 + 새로운 기능 + 최근 업데이트 + %1$s 에서 다운로드 중입니다. +%2$s / %3$s (%4$d%%) + 응용 프로그램 처리중 +%1$s +%2$d / %3$d + %1$s에 접속중 + 장치와 응용프로그램의 호환성 확인중… + 사용된 권한이 없습니다. + %s 버전에 대한 권한 + 권한 표시 + 응용 프로그램이 필요한 권한의 목록을 표시 + %s을(를) 처리할 수 있는 응용프로그램이 없습니다. + 컴팩트 레이아웃 + 목록에 웹이름과 요약정보만 표시합니다. + 테마 + 사용할 테마를 선택하세요. + diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 9c7949482..3bb122e70 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -3,7 +3,7 @@ %1$d applicaties gevonden die voldoen aan \'%2$s\': Één applicatie gevonden die voldoet aan \'%s\': Geen applicaties gevonden die voldoen aan \'%s\' - De nieuwe versie is gesigned met een andere sleutel als de oude. Om de nieuwe versie te installeren moet eerst de oude verwijderd worden. Probeer het daarna nogmaals. (Let op dat het verwijderen de data van de applicatie verwijderd wordt) + De nieuwe versie is gesigneerd met een andere sleutel als de oude. Om de nieuwe versie te installeren moet eerst de oude verwijderd worden. Probeer het daarna nogmaals. (Let op dat bij het verwijderen de data van de applicatie ook verwijderd wordt) Dit pakket is niet verenigbaar met uw apparaat. Wilt u het alsnog proberen te installeren? U probeert deze applicatie te degraderen naar een oudere versie. Als u dit doet uw data kan corrupt of verloren raken. Wilt u dit alsnog uitvoeren? Versie @@ -15,12 +15,12 @@ Andere Laatste bronnen scan: %s nooit - Automatische bronnen-scan + Scan bronnen automatisch app-lijst automatisch bijwerken Allen op wifi Vernieuw app-lijst alleen op wifi automatisch Verwittigen - Verwittigen bij nieuwe beschikbare updates + Verwittigen wanneer nieuwe updates beschikbaar zijn Vernieuw historie Dagen om nieuwe/verbeterde apps te laten zien Zoekresultaten @@ -59,11 +59,11 @@ Een bron-adres ziet er ongeveer %d vernieuwingen zijn beschikbaar F-Droid Vernieuwingen Beschikbaar Even geduld aub - Applicatie-lijst vernieuwen + Applicatie-lijst vernieuwen... downloaden applicatie van Bron-adres De lijst van gebruikte bronnen is veranderd. -Wil je ze vernieuwen? +Wilt u ze vernieuwen? Vernieuw Bronnen Beheer bronnen Voorkeuren @@ -82,8 +82,8 @@ Wil je ze vernieuwen? Broncode Verbeteren Doneer - Versie %s geinstalleerd - Niet geinstalleerd + Versie %s geïnstalleerd + Niet geïnstalleerd Gedownloade bestand is corrupt Download geannuleerd Deze app bevat advertenties @@ -94,9 +94,9 @@ Wil je ze vernieuwen? Laat zien Expert Ga in expert-modus - Zoek-applicaties + Zoek applicaties Database sync-modus - Zet de SQLite\'s synchronisatie-vlag + Zet de waarde van SQLite\'s synchronisatie-vlag Applicatie verenigbaarheid Onverenigbare versies Laat versies van apps die onverenigbaar zijn met het apparaat diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 45ee6a7a3..52b0c1d9e 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -10,12 +10,18 @@ Buforuj pobrane aplikacje Przechowuj pobrane pliki apk na karcie SD Aktualizacje + Inne Ostatnie uaktualnienie listy aplikacji: %s nigdy Automatycznie skanuj repozytoria Automatycznie uaktualnij listę aplikacji z repozytorium + Tylko przez wifi + Aktualizuj automatycznie tylko przez wifi Powiadom Powiadamiaj, gdy dostępne będą nowe aktualizacje + Historia aktualizacji + Wyniki wyszukiwania + Nie znaleziono takiej aplikacji O F-Droid Strona internetowa: Email: @@ -23,6 +29,7 @@ Strona internetowa Zainstalowano Niezainstalowane + Dodano %s OK Tak Nie @@ -48,8 +55,11 @@ Czy chcesz je zaktualizować? Nowe repozytorium Usuń repozytorium Uruchom - Instaluj + Udostępnij + Zainstaluj Odinstaluj + Ignoruj wszystkie aktualizacje + Ignoruj tę aktualizację Strona internetowa Problemy Kod żródłowy @@ -67,6 +77,9 @@ Czy chcesz je zaktualizować? Root Pokaż aplikacje wymagające uprawnień root Wszystkie - Ostatnio dodane + Co nowego Ostatnio zaktualizowane + Trwa łączenie z +%1$s + Wyświetl uprawnienia diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index d5aa6f31f..b9411288d 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -4,7 +4,7 @@ Ett program matchade \'%s\': Inga program matchade \'%s\' Den nya versionen är signerad med en annan nyckel än den gamla. Den gamla versionen måste först avinstalleras. Försök sedan igen. (Observera att data som tillhör programmet kommer att raderas när det avinstalleras.) - Det verkar som om detta programmet inte är kompatibelt med enheten. Vill ni försöka installera det ändå? + Det verkar som att detta program inte är kompatibelt med enheten. Vill ni försöka installera det ändå? Du försöker nedgradera detta program. Detta kan få det att fungera felaktigt eller orsaka förlust av dina data. Vill du ändå försöka nedgradera? Version %d versioner tillgängliga @@ -18,7 +18,7 @@ Automatisk förrådsavsökning Uppdatera applistan från förråd automatiskt Endast via WiFi - Uppdatera applikasjonslista automatiskt endast över wifi + Uppdatera applistor automatiskt endast över wifi Avisering Meddela mig när nya uppdateringar finns Uppdateringshistorik @@ -58,7 +58,7 @@ En förrådsadress ser ut så här: https://f-droid.org/repo Var vänlig vänta Uppdaterar programlistan... Hämtar program från - Förrådadress + Förrådsadress Listan över förråd har ändrats. Vill du uppdatera dem? Uppdatera förråd @@ -72,8 +72,8 @@ Vill du uppdatera dem? Dela Installera Avinstallera - Ignorer alla uppdateringar - Ignorer denna uppdateringen + Ignorera alla uppdateringar + Ignorera denna uppdatering Webbplats Buggar Källkod @@ -85,9 +85,9 @@ Vill du uppdatera dem? Nerladdning avbruten Denna app innehåller reklam Denna app övervakar dina aktiviteter - Denna app promoterar ufria tillägg - Denna app promoterar ufria nätverkstjänster - Denna app avhenger av andra ufria apps + Denna app främjar ofria tillägg + Denna app främjar ofria nätverkstjänster + Denna app beror på andra ofria appar Visning Expert Aktivera expertläge @@ -96,7 +96,7 @@ Vill du uppdatera dem? Ställ in värdet på synchronous-flaggan i SQLite Programkompatibilitet Inkompatibla versioner - Visa versioner av apps som är ukompatibla med ditt apparat + Visa versioner av appar som är inkompatibla med enheten Root Visa appar som kräver root-rättigheter Ignorera touchscreen @@ -116,8 +116,8 @@ Vill du uppdatera dem? Inga behörigheter används. Behörigheter för version %s Visa behörigheter - Visa en lista av behörigheter en app behöver - Ni har inte något app tilgängligt för behandling av %s + Visa en lista över behörigheter en app behöver + Du har inte någon app tillgänglig för hantering av %s Kompakt layout Visa endast appnamn och sammanfattningar i listan Tema diff --git a/res/values-ug-arab/array.xml b/res/values-ug-arab/array.xml new file mode 100644 index 000000000..950c05a07 --- /dev/null +++ b/res/values-ug-arab/array.xml @@ -0,0 +1,19 @@ + + + + ھەرگىز + ھەر سائەتتە + ھەر 4 سائەتتە + ھەر 12 سائەتتە + ھەر كۈن + + + قاراڭغۇ + يورۇق + + + تاقاق (خەتەرلىك) + ئادەتتىكى + تولۇق + + diff --git a/res/values-ug-arab/strings.xml b/res/values-ug-arab/strings.xml new file mode 100644 index 000000000..f76a5d81e --- /dev/null +++ b/res/values-ug-arab/strings.xml @@ -0,0 +1,114 @@ + + + بۇ \'%2$s\'غا ماس كېلىدىغان %1$d ئەپنى تاپتى: + \'%s\' غا ماس كېلىدىغان بىر ئەپنى تاپتى: + \'%s\' غا ماس كېلىدىغان ئەپنى تاپالمىدى + بۇ يېڭى نەشرى كونا نەشرىنىڭكى بىلەن پەرقلىق ئاچقۇچ بىلەن ئىمزا قويۇلغان. ئالدى بىلەن كونا نەشرىنى ئۆچۈرۈۋېتىپ ئاندىن يېڭى نەشرىنى ئورنىتىڭ. بۇ مەشغۇلاتنى قىلىپ ئاندىن قايتا سىناڭ. (دىققەت كونا نەشرى ئۆچۈرۈلسە شۇ ئەپتە ساقلانغان ھەممە سانلىق مەلۇماتلارمۇ ئۆچۈرۈلىدۇ) + بۇ بوغچا ئۈسكۈنىڭىز بىلەن ماسلاشمايدىغاندەك تۇرىدۇ، ئۇنى سىناپ ئورنىتىۋېرەمسىز؟ + بۇ ئەپنىڭ دەرىجىسىنى تۆۋەنلىتىشنى سىناۋاتىسىز. بۇ مەشغۇلاتنى ئىجرا قىلىش داۋامىدا كاشىلا كۆرۈلۈشى ۋە سانلىق مەلۇماتلىرىڭىزنى يوقۇتۇپ قويۇشىڭىز مۇمكىن. ئۇنى سىناپ دەرىجىسىنى تۆۋەنلىتىۋېرەمسىز؟ + نەشرى + %d نەشرى بار + %d نەشرى بار + ئەپلەر غەملەككە چۈشۈرۈلدى + چۈشۈرگەن apk ھۆججەتلەرنى SD كارتىدا ساقلاپ قال + يېڭىلانمىلار + باشقا + ئاخىرقى repo تەكشۈرۈش: %s + ھەرگىز + ئاپتوماتىك repo تەكشۈرۈش + ئەپ تىزىمىنى خەزىنەدىن ئۆزلۈكىدىن يېڭىلا + wifi دىلا + ئەپ تىزىمىنى wifi دىلا ئۆزلۈكىدىن يېڭىلا + ئۇقتۇرۇش + يېڭى يېڭىلانمىلار بولسا ئەسكەرت + يېڭىلاش تارىخى + يېڭى/يېڭىلانغان ئەپلەرنى كۆرسىتىدىغان كۈن سانى + ئىزدەش نەتىجىلىرى + ئەپ تەپسىلاتلىرى + بۇنداق ئەپ تېپىلمىدى + F-Droid ھەققىدە + دەسلەپتە Aptoide نى ئاساس قىلغان. بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. + تورتۇرا: + تورخەت: + نەشرى: + تورتۇرا + سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: https://f-droid.org/repo + ئورنىتىلغان + ئورنىتىلمىغان + %s دا قوشۇلغان + جەزملە + ھەئە + ياق + يېڭى خەزىنە قوش + قوش + ۋاز كەچ + چىقىرىۋېتىدىغان خەزىنەنى تاللاڭ + خەزىنە يېڭىلا + ئورنىتىلغان + ئىشلىتىشچان + يېڭىلانمىلار + 1 يېڭىلانما بار. + %d يېڭىلانما بار. + F-Droid يېڭىلانمىلىرى بار + سەل كۈتۈڭ + ئەپ تىزىمىنى يېڭىلاۋاتىدۇ… + ئەپكە ئېرىشىش ئورنى + خەزىنە ئادرېسى + ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. ئۇلارنى يېڭىلامسىز؟ + خەزىنە يېڭىلا + خەزىنە باشقۇر + مايىللىقلار + ھەققىدە + ئىزدە + يېڭى خەزىنە + خەزىنەنى چىقىرىۋەت + ئىجرا قىل + ھەمبەھىر + ئورنات + ئۆچۈر + ھەممە يېڭىلانمىلارغا پەرۋا قىلما + بۇ يېڭىلانمىغا پەرۋا قىلما + تورتۇرا + مەسىلىلەر + ئەسلى كود + يۈكسەلت + ئىئانە + %s نەشرى ئورنىتىلدى + ئورنىتىلمىدى + چۈشۈرگەن ھۆججەت بۇرۇق + چۈشۈرۈشتىن ۋاز كەچتى + بۇ ئەپتە ئېلان بار + بۇ ئەپ پائالىيەتلىرىڭىزنى ئىزلاپ، دوكلات قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان قىستۇرمىلارنى تەۋسىيە قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان تور مۇلازىمەتلىرىنى تەۋسىيە قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان باشقا ئەپلەرگە بېقىنىدۇ + كۆرسەت + ئالىي + ئالىي ھالەتنى قوزغات + ئەپ ئىزدە + ساندان قەدەمداش ھالەت + بۇ SQLite قەدەمداش بايراقىنىڭ قىممىتىنى تەڭشەيدۇ + ئەپ ماسلىشىشچانلىقى + ماسلاشمايدىغان نەشرىلىرى + ئەپلەرنىڭ ئۈسكۈنە بىلەن ماسلاشمايدىغان نەشرىلىرىنى كۆرسىتىدۇ + Root + root ھوقۇقى زۆرۈر بولغان ئەپلەرنى كۆرسەت + سەزگۈر ئېكرانغا پەرۋا قىلما + ھەمىشە سەزگۈر ئېكرانلىق ئەپلەرنى ئۆز ئىچىگە ئالىدۇ + ھەممىسى + يېڭىلىقلار + يېقىنقى يېڭىلانغانلار + چۈشۈرۈۋاتىدۇ %2$s / %3$s (%4$d%%) %1$s + ئەپنى بىر تەرەپ قىلىۋاتىدۇ %2$d of %3$d %1$s + %1$s غا باغلىنىۋاتىدۇ + ئەپنىڭ ئۈسكۈنە بىلەن ماسلىشىشچانلىقىنى تەكشۈرمەكتە… + ھېچقانداق ھوقۇق ئىشلەتمەيدۇ. + %s نىڭ ھوقۇقلىرى + ھوقۇقلارنى كۆرسەت + ئەپ ئېھتىياجلىق ھوقۇق تىزىمىنى كۆرسىتىدۇ + سىز %s نى بىر تەرەپ قىلىدىغان ھېچقانداق ئىشلىتىلىشچان ئەپ يوق + ئىخچام جايلاشتۇرۇش + پەقەت ئەپ ئىسمى ۋە ئۈزۈندىسىنى تىزىمدا كۆرسىتىدۇ + ئۆرنەك + ئىشلىتىدىغان ئۆرنەكنى تاللاڭ + From d8e63240b692c92ef62dd4907dac59d3abf8aff6 Mon Sep 17 00:00:00 2001 From: F-Droid Translatebot Date: Sun, 29 Dec 2013 13:22:49 +0000 Subject: [PATCH 25/60] Translation updates --- res/values-ug-arab/array.xml | 12 +- res/values-ug-arab/strings.xml | 39 ++++--- res/values-x-invalidLanguageCode/array.xml | 19 ++++ res/values-x-invalidLanguageCode/strings.xml | 114 +++++++++++++++++++ 4 files changed, 164 insertions(+), 20 deletions(-) create mode 100644 res/values-x-invalidLanguageCode/array.xml create mode 100644 res/values-x-invalidLanguageCode/strings.xml diff --git a/res/values-ug-arab/array.xml b/res/values-ug-arab/array.xml index 950c05a07..35b79432f 100644 --- a/res/values-ug-arab/array.xml +++ b/res/values-ug-arab/array.xml @@ -2,18 +2,18 @@ ھەرگىز - ھەر سائەتتە - ھەر 4 سائەتتە - ھەر 12 سائەتتە - ھەر كۈن + سائەتتە بىر + ھەر 4 سائەتتە بىر + ھەر 12 سائەتتە بىر + كۈندە بىر قاراڭغۇ يورۇق - تاقاق (خەتەرلىك) - ئادەتتىكى + تاقاق (بىخەتەر ئەمەس) + نورمال تولۇق diff --git a/res/values-ug-arab/strings.xml b/res/values-ug-arab/strings.xml index f76a5d81e..612a5ab4a 100644 --- a/res/values-ug-arab/strings.xml +++ b/res/values-ug-arab/strings.xml @@ -2,7 +2,7 @@ بۇ \'%2$s\'غا ماس كېلىدىغان %1$d ئەپنى تاپتى: \'%s\' غا ماس كېلىدىغان بىر ئەپنى تاپتى: - \'%s\' غا ماس كېلىدىغان ئەپنى تاپالمىدى + \'%s\' غا ماس كېلىدىغان ھېچقانداق ئەپنى تاپالمىدى بۇ يېڭى نەشرى كونا نەشرىنىڭكى بىلەن پەرقلىق ئاچقۇچ بىلەن ئىمزا قويۇلغان. ئالدى بىلەن كونا نەشرىنى ئۆچۈرۈۋېتىپ ئاندىن يېڭى نەشرىنى ئورنىتىڭ. بۇ مەشغۇلاتنى قىلىپ ئاندىن قايتا سىناڭ. (دىققەت كونا نەشرى ئۆچۈرۈلسە شۇ ئەپتە ساقلانغان ھەممە سانلىق مەلۇماتلارمۇ ئۆچۈرۈلىدۇ) بۇ بوغچا ئۈسكۈنىڭىز بىلەن ماسلاشمايدىغاندەك تۇرىدۇ، ئۇنى سىناپ ئورنىتىۋېرەمسىز؟ بۇ ئەپنىڭ دەرىجىسىنى تۆۋەنلىتىشنى سىناۋاتىسىز. بۇ مەشغۇلاتنى ئىجرا قىلىش داۋامىدا كاشىلا كۆرۈلۈشى ۋە سانلىق مەلۇماتلىرىڭىزنى يوقۇتۇپ قويۇشىڭىز مۇمكىن. ئۇنى سىناپ دەرىجىسىنى تۆۋەنلىتىۋېرەمسىز؟ @@ -27,12 +27,17 @@ ئەپ تەپسىلاتلىرى بۇنداق ئەپ تېپىلمىدى F-Droid ھەققىدە - دەسلەپتە Aptoide نى ئاساس قىلغان. بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. - تورتۇرا: + دەسلەپتە Aptoide نى ئاساس قىلغان. +بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. + تور تۇرا: تورخەت: نەشرى: تورتۇرا - سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: https://f-droid.org/repo + سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! + +خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. + +خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: http://f-droid.org/repo ئورنىتىلغان ئورنىتىلمىغان %s دا قوشۇلغان @@ -54,7 +59,8 @@ ئەپ تىزىمىنى يېڭىلاۋاتىدۇ… ئەپكە ئېرىشىش ئورنى خەزىنە ئادرېسى - ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. ئۇلارنى يېڭىلامسىز؟ + ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. +ئۇلارنى يېڭىلامسىز؟ خەزىنە يېڭىلا خەزىنە باشقۇر مايىللىقلار @@ -98,17 +104,22 @@ ھەممىسى يېڭىلىقلار يېقىنقى يېڭىلانغانلار - چۈشۈرۈۋاتىدۇ %2$s / %3$s (%4$d%%) %1$s - ئەپنى بىر تەرەپ قىلىۋاتىدۇ %2$d of %3$d %1$s - %1$s غا باغلىنىۋاتىدۇ - ئەپنىڭ ئۈسكۈنە بىلەن ماسلىشىشچانلىقىنى تەكشۈرمەكتە… + چۈشۈرۈۋاتىدۇ +%2$s / %3$s (%4$d%%) +%1$s + ئەپنى بىر تەرەپ قىلىۋاتىدۇ +%2$d of %3$d +%1$s + %1$s غا +باغلىنىۋاتىدۇ + ئەپلەرنىڭ ئۈسكۈنىڭىز بىلەن ماسلىشىشچانلىقىنى تەكشۈرۈۋاتىدۇ… ھېچقانداق ھوقۇق ئىشلەتمەيدۇ. - %s نىڭ ھوقۇقلىرى + %s نەشرىنىڭ ھوقۇقلىرى ھوقۇقلارنى كۆرسەت - ئەپ ئېھتىياجلىق ھوقۇق تىزىمىنى كۆرسىتىدۇ - سىز %s نى بىر تەرەپ قىلىدىغان ھېچقانداق ئىشلىتىلىشچان ئەپ يوق + ئەپكە زۆرۈر بولغان ھوقۇق تىزىمىنى كۆرسىتىدۇ + سىز %s نى بىر تەرەپ قىلالايدىغان ھېچقانداق ئەپ ئورناتمىغان ئىخچام جايلاشتۇرۇش - پەقەت ئەپ ئىسمى ۋە ئۈزۈندىسىنى تىزىمدا كۆرسىتىدۇ + تىزىمدا پەقەت ئەپ ئىسمى ۋە ئۈزۈندىلىرىنىلا كۆرسىتىدۇ ئۆرنەك - ئىشلىتىدىغان ئۆرنەكنى تاللاڭ + ئىشلىتىدىغان ئۆرنەكتىن بىرنى تاللاڭ diff --git a/res/values-x-invalidLanguageCode/array.xml b/res/values-x-invalidLanguageCode/array.xml new file mode 100644 index 000000000..950c05a07 --- /dev/null +++ b/res/values-x-invalidLanguageCode/array.xml @@ -0,0 +1,19 @@ + + + + ھەرگىز + ھەر سائەتتە + ھەر 4 سائەتتە + ھەر 12 سائەتتە + ھەر كۈن + + + قاراڭغۇ + يورۇق + + + تاقاق (خەتەرلىك) + ئادەتتىكى + تولۇق + + diff --git a/res/values-x-invalidLanguageCode/strings.xml b/res/values-x-invalidLanguageCode/strings.xml new file mode 100644 index 000000000..f76a5d81e --- /dev/null +++ b/res/values-x-invalidLanguageCode/strings.xml @@ -0,0 +1,114 @@ + + + بۇ \'%2$s\'غا ماس كېلىدىغان %1$d ئەپنى تاپتى: + \'%s\' غا ماس كېلىدىغان بىر ئەپنى تاپتى: + \'%s\' غا ماس كېلىدىغان ئەپنى تاپالمىدى + بۇ يېڭى نەشرى كونا نەشرىنىڭكى بىلەن پەرقلىق ئاچقۇچ بىلەن ئىمزا قويۇلغان. ئالدى بىلەن كونا نەشرىنى ئۆچۈرۈۋېتىپ ئاندىن يېڭى نەشرىنى ئورنىتىڭ. بۇ مەشغۇلاتنى قىلىپ ئاندىن قايتا سىناڭ. (دىققەت كونا نەشرى ئۆچۈرۈلسە شۇ ئەپتە ساقلانغان ھەممە سانلىق مەلۇماتلارمۇ ئۆچۈرۈلىدۇ) + بۇ بوغچا ئۈسكۈنىڭىز بىلەن ماسلاشمايدىغاندەك تۇرىدۇ، ئۇنى سىناپ ئورنىتىۋېرەمسىز؟ + بۇ ئەپنىڭ دەرىجىسىنى تۆۋەنلىتىشنى سىناۋاتىسىز. بۇ مەشغۇلاتنى ئىجرا قىلىش داۋامىدا كاشىلا كۆرۈلۈشى ۋە سانلىق مەلۇماتلىرىڭىزنى يوقۇتۇپ قويۇشىڭىز مۇمكىن. ئۇنى سىناپ دەرىجىسىنى تۆۋەنلىتىۋېرەمسىز؟ + نەشرى + %d نەشرى بار + %d نەشرى بار + ئەپلەر غەملەككە چۈشۈرۈلدى + چۈشۈرگەن apk ھۆججەتلەرنى SD كارتىدا ساقلاپ قال + يېڭىلانمىلار + باشقا + ئاخىرقى repo تەكشۈرۈش: %s + ھەرگىز + ئاپتوماتىك repo تەكشۈرۈش + ئەپ تىزىمىنى خەزىنەدىن ئۆزلۈكىدىن يېڭىلا + wifi دىلا + ئەپ تىزىمىنى wifi دىلا ئۆزلۈكىدىن يېڭىلا + ئۇقتۇرۇش + يېڭى يېڭىلانمىلار بولسا ئەسكەرت + يېڭىلاش تارىخى + يېڭى/يېڭىلانغان ئەپلەرنى كۆرسىتىدىغان كۈن سانى + ئىزدەش نەتىجىلىرى + ئەپ تەپسىلاتلىرى + بۇنداق ئەپ تېپىلمىدى + F-Droid ھەققىدە + دەسلەپتە Aptoide نى ئاساس قىلغان. بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. + تورتۇرا: + تورخەت: + نەشرى: + تورتۇرا + سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: https://f-droid.org/repo + ئورنىتىلغان + ئورنىتىلمىغان + %s دا قوشۇلغان + جەزملە + ھەئە + ياق + يېڭى خەزىنە قوش + قوش + ۋاز كەچ + چىقىرىۋېتىدىغان خەزىنەنى تاللاڭ + خەزىنە يېڭىلا + ئورنىتىلغان + ئىشلىتىشچان + يېڭىلانمىلار + 1 يېڭىلانما بار. + %d يېڭىلانما بار. + F-Droid يېڭىلانمىلىرى بار + سەل كۈتۈڭ + ئەپ تىزىمىنى يېڭىلاۋاتىدۇ… + ئەپكە ئېرىشىش ئورنى + خەزىنە ئادرېسى + ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. ئۇلارنى يېڭىلامسىز؟ + خەزىنە يېڭىلا + خەزىنە باشقۇر + مايىللىقلار + ھەققىدە + ئىزدە + يېڭى خەزىنە + خەزىنەنى چىقىرىۋەت + ئىجرا قىل + ھەمبەھىر + ئورنات + ئۆچۈر + ھەممە يېڭىلانمىلارغا پەرۋا قىلما + بۇ يېڭىلانمىغا پەرۋا قىلما + تورتۇرا + مەسىلىلەر + ئەسلى كود + يۈكسەلت + ئىئانە + %s نەشرى ئورنىتىلدى + ئورنىتىلمىدى + چۈشۈرگەن ھۆججەت بۇرۇق + چۈشۈرۈشتىن ۋاز كەچتى + بۇ ئەپتە ئېلان بار + بۇ ئەپ پائالىيەتلىرىڭىزنى ئىزلاپ، دوكلات قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان قىستۇرمىلارنى تەۋسىيە قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان تور مۇلازىمەتلىرىنى تەۋسىيە قىلىدۇ + بۇ ئەپ ھەقسىز بولمىغان باشقا ئەپلەرگە بېقىنىدۇ + كۆرسەت + ئالىي + ئالىي ھالەتنى قوزغات + ئەپ ئىزدە + ساندان قەدەمداش ھالەت + بۇ SQLite قەدەمداش بايراقىنىڭ قىممىتىنى تەڭشەيدۇ + ئەپ ماسلىشىشچانلىقى + ماسلاشمايدىغان نەشرىلىرى + ئەپلەرنىڭ ئۈسكۈنە بىلەن ماسلاشمايدىغان نەشرىلىرىنى كۆرسىتىدۇ + Root + root ھوقۇقى زۆرۈر بولغان ئەپلەرنى كۆرسەت + سەزگۈر ئېكرانغا پەرۋا قىلما + ھەمىشە سەزگۈر ئېكرانلىق ئەپلەرنى ئۆز ئىچىگە ئالىدۇ + ھەممىسى + يېڭىلىقلار + يېقىنقى يېڭىلانغانلار + چۈشۈرۈۋاتىدۇ %2$s / %3$s (%4$d%%) %1$s + ئەپنى بىر تەرەپ قىلىۋاتىدۇ %2$d of %3$d %1$s + %1$s غا باغلىنىۋاتىدۇ + ئەپنىڭ ئۈسكۈنە بىلەن ماسلىشىشچانلىقىنى تەكشۈرمەكتە… + ھېچقانداق ھوقۇق ئىشلەتمەيدۇ. + %s نىڭ ھوقۇقلىرى + ھوقۇقلارنى كۆرسەت + ئەپ ئېھتىياجلىق ھوقۇق تىزىمىنى كۆرسىتىدۇ + سىز %s نى بىر تەرەپ قىلىدىغان ھېچقانداق ئىشلىتىلىشچان ئەپ يوق + ئىخچام جايلاشتۇرۇش + پەقەت ئەپ ئىسمى ۋە ئۈزۈندىسىنى تىزىمدا كۆرسىتىدۇ + ئۆرنەك + ئىشلىتىدىغان ئۆرنەكنى تاللاڭ + From 47c0c2f6abfd20b59e3c49b7909cae60a3e9c2c2 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 29 Dec 2013 13:28:42 +0000 Subject: [PATCH 26/60] Remove invalid language --- res/values-ug-arab/array.xml | 19 --- res/values-ug-arab/strings.xml | 125 ------------------- res/values-x-invalidLanguageCode/array.xml | 19 --- res/values-x-invalidLanguageCode/strings.xml | 114 ----------------- 4 files changed, 277 deletions(-) delete mode 100644 res/values-ug-arab/array.xml delete mode 100644 res/values-ug-arab/strings.xml delete mode 100644 res/values-x-invalidLanguageCode/array.xml delete mode 100644 res/values-x-invalidLanguageCode/strings.xml diff --git a/res/values-ug-arab/array.xml b/res/values-ug-arab/array.xml deleted file mode 100644 index 35b79432f..000000000 --- a/res/values-ug-arab/array.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - ھەرگىز - سائەتتە بىر - ھەر 4 سائەتتە بىر - ھەر 12 سائەتتە بىر - كۈندە بىر - - - قاراڭغۇ - يورۇق - - - تاقاق (بىخەتەر ئەمەس) - نورمال - تولۇق - - diff --git a/res/values-ug-arab/strings.xml b/res/values-ug-arab/strings.xml deleted file mode 100644 index 612a5ab4a..000000000 --- a/res/values-ug-arab/strings.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - بۇ \'%2$s\'غا ماس كېلىدىغان %1$d ئەپنى تاپتى: - \'%s\' غا ماس كېلىدىغان بىر ئەپنى تاپتى: - \'%s\' غا ماس كېلىدىغان ھېچقانداق ئەپنى تاپالمىدى - بۇ يېڭى نەشرى كونا نەشرىنىڭكى بىلەن پەرقلىق ئاچقۇچ بىلەن ئىمزا قويۇلغان. ئالدى بىلەن كونا نەشرىنى ئۆچۈرۈۋېتىپ ئاندىن يېڭى نەشرىنى ئورنىتىڭ. بۇ مەشغۇلاتنى قىلىپ ئاندىن قايتا سىناڭ. (دىققەت كونا نەشرى ئۆچۈرۈلسە شۇ ئەپتە ساقلانغان ھەممە سانلىق مەلۇماتلارمۇ ئۆچۈرۈلىدۇ) - بۇ بوغچا ئۈسكۈنىڭىز بىلەن ماسلاشمايدىغاندەك تۇرىدۇ، ئۇنى سىناپ ئورنىتىۋېرەمسىز؟ - بۇ ئەپنىڭ دەرىجىسىنى تۆۋەنلىتىشنى سىناۋاتىسىز. بۇ مەشغۇلاتنى ئىجرا قىلىش داۋامىدا كاشىلا كۆرۈلۈشى ۋە سانلىق مەلۇماتلىرىڭىزنى يوقۇتۇپ قويۇشىڭىز مۇمكىن. ئۇنى سىناپ دەرىجىسىنى تۆۋەنلىتىۋېرەمسىز؟ - نەشرى - %d نەشرى بار - %d نەشرى بار - ئەپلەر غەملەككە چۈشۈرۈلدى - چۈشۈرگەن apk ھۆججەتلەرنى SD كارتىدا ساقلاپ قال - يېڭىلانمىلار - باشقا - ئاخىرقى repo تەكشۈرۈش: %s - ھەرگىز - ئاپتوماتىك repo تەكشۈرۈش - ئەپ تىزىمىنى خەزىنەدىن ئۆزلۈكىدىن يېڭىلا - wifi دىلا - ئەپ تىزىمىنى wifi دىلا ئۆزلۈكىدىن يېڭىلا - ئۇقتۇرۇش - يېڭى يېڭىلانمىلار بولسا ئەسكەرت - يېڭىلاش تارىخى - يېڭى/يېڭىلانغان ئەپلەرنى كۆرسىتىدىغان كۈن سانى - ئىزدەش نەتىجىلىرى - ئەپ تەپسىلاتلىرى - بۇنداق ئەپ تېپىلمىدى - F-Droid ھەققىدە - دەسلەپتە Aptoide نى ئاساس قىلغان. -بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. - تور تۇرا: - تورخەت: - نەشرى: - تورتۇرا - سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! - -خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. - -خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: http://f-droid.org/repo - ئورنىتىلغان - ئورنىتىلمىغان - %s دا قوشۇلغان - جەزملە - ھەئە - ياق - يېڭى خەزىنە قوش - قوش - ۋاز كەچ - چىقىرىۋېتىدىغان خەزىنەنى تاللاڭ - خەزىنە يېڭىلا - ئورنىتىلغان - ئىشلىتىشچان - يېڭىلانمىلار - 1 يېڭىلانما بار. - %d يېڭىلانما بار. - F-Droid يېڭىلانمىلىرى بار - سەل كۈتۈڭ - ئەپ تىزىمىنى يېڭىلاۋاتىدۇ… - ئەپكە ئېرىشىش ئورنى - خەزىنە ئادرېسى - ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. -ئۇلارنى يېڭىلامسىز؟ - خەزىنە يېڭىلا - خەزىنە باشقۇر - مايىللىقلار - ھەققىدە - ئىزدە - يېڭى خەزىنە - خەزىنەنى چىقىرىۋەت - ئىجرا قىل - ھەمبەھىر - ئورنات - ئۆچۈر - ھەممە يېڭىلانمىلارغا پەرۋا قىلما - بۇ يېڭىلانمىغا پەرۋا قىلما - تورتۇرا - مەسىلىلەر - ئەسلى كود - يۈكسەلت - ئىئانە - %s نەشرى ئورنىتىلدى - ئورنىتىلمىدى - چۈشۈرگەن ھۆججەت بۇرۇق - چۈشۈرۈشتىن ۋاز كەچتى - بۇ ئەپتە ئېلان بار - بۇ ئەپ پائالىيەتلىرىڭىزنى ئىزلاپ، دوكلات قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان قىستۇرمىلارنى تەۋسىيە قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان تور مۇلازىمەتلىرىنى تەۋسىيە قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان باشقا ئەپلەرگە بېقىنىدۇ - كۆرسەت - ئالىي - ئالىي ھالەتنى قوزغات - ئەپ ئىزدە - ساندان قەدەمداش ھالەت - بۇ SQLite قەدەمداش بايراقىنىڭ قىممىتىنى تەڭشەيدۇ - ئەپ ماسلىشىشچانلىقى - ماسلاشمايدىغان نەشرىلىرى - ئەپلەرنىڭ ئۈسكۈنە بىلەن ماسلاشمايدىغان نەشرىلىرىنى كۆرسىتىدۇ - Root - root ھوقۇقى زۆرۈر بولغان ئەپلەرنى كۆرسەت - سەزگۈر ئېكرانغا پەرۋا قىلما - ھەمىشە سەزگۈر ئېكرانلىق ئەپلەرنى ئۆز ئىچىگە ئالىدۇ - ھەممىسى - يېڭىلىقلار - يېقىنقى يېڭىلانغانلار - چۈشۈرۈۋاتىدۇ -%2$s / %3$s (%4$d%%) -%1$s - ئەپنى بىر تەرەپ قىلىۋاتىدۇ -%2$d of %3$d -%1$s - %1$s غا -باغلىنىۋاتىدۇ - ئەپلەرنىڭ ئۈسكۈنىڭىز بىلەن ماسلىشىشچانلىقىنى تەكشۈرۈۋاتىدۇ… - ھېچقانداق ھوقۇق ئىشلەتمەيدۇ. - %s نەشرىنىڭ ھوقۇقلىرى - ھوقۇقلارنى كۆرسەت - ئەپكە زۆرۈر بولغان ھوقۇق تىزىمىنى كۆرسىتىدۇ - سىز %s نى بىر تەرەپ قىلالايدىغان ھېچقانداق ئەپ ئورناتمىغان - ئىخچام جايلاشتۇرۇش - تىزىمدا پەقەت ئەپ ئىسمى ۋە ئۈزۈندىلىرىنىلا كۆرسىتىدۇ - ئۆرنەك - ئىشلىتىدىغان ئۆرنەكتىن بىرنى تاللاڭ - diff --git a/res/values-x-invalidLanguageCode/array.xml b/res/values-x-invalidLanguageCode/array.xml deleted file mode 100644 index 950c05a07..000000000 --- a/res/values-x-invalidLanguageCode/array.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - ھەرگىز - ھەر سائەتتە - ھەر 4 سائەتتە - ھەر 12 سائەتتە - ھەر كۈن - - - قاراڭغۇ - يورۇق - - - تاقاق (خەتەرلىك) - ئادەتتىكى - تولۇق - - diff --git a/res/values-x-invalidLanguageCode/strings.xml b/res/values-x-invalidLanguageCode/strings.xml deleted file mode 100644 index f76a5d81e..000000000 --- a/res/values-x-invalidLanguageCode/strings.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - بۇ \'%2$s\'غا ماس كېلىدىغان %1$d ئەپنى تاپتى: - \'%s\' غا ماس كېلىدىغان بىر ئەپنى تاپتى: - \'%s\' غا ماس كېلىدىغان ئەپنى تاپالمىدى - بۇ يېڭى نەشرى كونا نەشرىنىڭكى بىلەن پەرقلىق ئاچقۇچ بىلەن ئىمزا قويۇلغان. ئالدى بىلەن كونا نەشرىنى ئۆچۈرۈۋېتىپ ئاندىن يېڭى نەشرىنى ئورنىتىڭ. بۇ مەشغۇلاتنى قىلىپ ئاندىن قايتا سىناڭ. (دىققەت كونا نەشرى ئۆچۈرۈلسە شۇ ئەپتە ساقلانغان ھەممە سانلىق مەلۇماتلارمۇ ئۆچۈرۈلىدۇ) - بۇ بوغچا ئۈسكۈنىڭىز بىلەن ماسلاشمايدىغاندەك تۇرىدۇ، ئۇنى سىناپ ئورنىتىۋېرەمسىز؟ - بۇ ئەپنىڭ دەرىجىسىنى تۆۋەنلىتىشنى سىناۋاتىسىز. بۇ مەشغۇلاتنى ئىجرا قىلىش داۋامىدا كاشىلا كۆرۈلۈشى ۋە سانلىق مەلۇماتلىرىڭىزنى يوقۇتۇپ قويۇشىڭىز مۇمكىن. ئۇنى سىناپ دەرىجىسىنى تۆۋەنلىتىۋېرەمسىز؟ - نەشرى - %d نەشرى بار - %d نەشرى بار - ئەپلەر غەملەككە چۈشۈرۈلدى - چۈشۈرگەن apk ھۆججەتلەرنى SD كارتىدا ساقلاپ قال - يېڭىلانمىلار - باشقا - ئاخىرقى repo تەكشۈرۈش: %s - ھەرگىز - ئاپتوماتىك repo تەكشۈرۈش - ئەپ تىزىمىنى خەزىنەدىن ئۆزلۈكىدىن يېڭىلا - wifi دىلا - ئەپ تىزىمىنى wifi دىلا ئۆزلۈكىدىن يېڭىلا - ئۇقتۇرۇش - يېڭى يېڭىلانمىلار بولسا ئەسكەرت - يېڭىلاش تارىخى - يېڭى/يېڭىلانغان ئەپلەرنى كۆرسىتىدىغان كۈن سانى - ئىزدەش نەتىجىلىرى - ئەپ تەپسىلاتلىرى - بۇنداق ئەپ تېپىلمىدى - F-Droid ھەققىدە - دەسلەپتە Aptoide نى ئاساس قىلغان. بۇ GNU GPLv3 ئىجازىتىدە تارقىتىلغان. - تورتۇرا: - تورخەت: - نەشرى: - تورتۇرا - سىز ھېچقانداق خەزىنە سەپلىمىدىڭىز! خەزىنە ئەپلەرنىڭ تارقىتىلىش مەنبەسى بولۇپ، مەنبە قوشۇشتا، تىزىملىك توپچىنى بېسىپ، ئاندىن URLنى كىرگۈزۈڭ. خەزىنە ئادرېسى بۇنىڭغا ئوخشاش بولىدۇ: https://f-droid.org/repo - ئورنىتىلغان - ئورنىتىلمىغان - %s دا قوشۇلغان - جەزملە - ھەئە - ياق - يېڭى خەزىنە قوش - قوش - ۋاز كەچ - چىقىرىۋېتىدىغان خەزىنەنى تاللاڭ - خەزىنە يېڭىلا - ئورنىتىلغان - ئىشلىتىشچان - يېڭىلانمىلار - 1 يېڭىلانما بار. - %d يېڭىلانما بار. - F-Droid يېڭىلانمىلىرى بار - سەل كۈتۈڭ - ئەپ تىزىمىنى يېڭىلاۋاتىدۇ… - ئەپكە ئېرىشىش ئورنى - خەزىنە ئادرېسى - ئىشلىتىۋاتقان خەزىنە تىزىمى ئۆزگەردى. ئۇلارنى يېڭىلامسىز؟ - خەزىنە يېڭىلا - خەزىنە باشقۇر - مايىللىقلار - ھەققىدە - ئىزدە - يېڭى خەزىنە - خەزىنەنى چىقىرىۋەت - ئىجرا قىل - ھەمبەھىر - ئورنات - ئۆچۈر - ھەممە يېڭىلانمىلارغا پەرۋا قىلما - بۇ يېڭىلانمىغا پەرۋا قىلما - تورتۇرا - مەسىلىلەر - ئەسلى كود - يۈكسەلت - ئىئانە - %s نەشرى ئورنىتىلدى - ئورنىتىلمىدى - چۈشۈرگەن ھۆججەت بۇرۇق - چۈشۈرۈشتىن ۋاز كەچتى - بۇ ئەپتە ئېلان بار - بۇ ئەپ پائالىيەتلىرىڭىزنى ئىزلاپ، دوكلات قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان قىستۇرمىلارنى تەۋسىيە قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان تور مۇلازىمەتلىرىنى تەۋسىيە قىلىدۇ - بۇ ئەپ ھەقسىز بولمىغان باشقا ئەپلەرگە بېقىنىدۇ - كۆرسەت - ئالىي - ئالىي ھالەتنى قوزغات - ئەپ ئىزدە - ساندان قەدەمداش ھالەت - بۇ SQLite قەدەمداش بايراقىنىڭ قىممىتىنى تەڭشەيدۇ - ئەپ ماسلىشىشچانلىقى - ماسلاشمايدىغان نەشرىلىرى - ئەپلەرنىڭ ئۈسكۈنە بىلەن ماسلاشمايدىغان نەشرىلىرىنى كۆرسىتىدۇ - Root - root ھوقۇقى زۆرۈر بولغان ئەپلەرنى كۆرسەت - سەزگۈر ئېكرانغا پەرۋا قىلما - ھەمىشە سەزگۈر ئېكرانلىق ئەپلەرنى ئۆز ئىچىگە ئالىدۇ - ھەممىسى - يېڭىلىقلار - يېقىنقى يېڭىلانغانلار - چۈشۈرۈۋاتىدۇ %2$s / %3$s (%4$d%%) %1$s - ئەپنى بىر تەرەپ قىلىۋاتىدۇ %2$d of %3$d %1$s - %1$s غا باغلىنىۋاتىدۇ - ئەپنىڭ ئۈسكۈنە بىلەن ماسلىشىشچانلىقىنى تەكشۈرمەكتە… - ھېچقانداق ھوقۇق ئىشلەتمەيدۇ. - %s نىڭ ھوقۇقلىرى - ھوقۇقلارنى كۆرسەت - ئەپ ئېھتىياجلىق ھوقۇق تىزىمىنى كۆرسىتىدۇ - سىز %s نى بىر تەرەپ قىلىدىغان ھېچقانداق ئىشلىتىلىشچان ئەپ يوق - ئىخچام جايلاشتۇرۇش - پەقەت ئەپ ئىسمى ۋە ئۈزۈندىسىنى تىزىمدا كۆرسىتىدۇ - ئۆرنەك - ئىشلىتىدىغان ئۆرنەكنى تاللاڭ - From 70fd2728719a67c2e0f283297acb8ee70f0969aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 26 Dec 2013 12:46:10 +0100 Subject: [PATCH 27/60] Replace * and -> with UTF symbols --- src/org/fdroid/fdroid/AppDetails.java | 2 +- src/org/fdroid/fdroid/views/AppListAdapter.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index a2667be35..109d278b8 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -135,7 +135,7 @@ public class AppDetails extends ListActivity { TextView tv = (TextView) v.findViewById(R.id.version); tv.setText(getString(R.string.version) + " " + apk.version - + (apk == app.curApk ? " *" : "")); + + (apk == app.curApk ? " ☆" : "")); tv.setEnabled(apk.compatible); tv = (TextView) v.findViewById(R.id.status); diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 89fefd2cf..516f2bf2d 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -160,7 +160,7 @@ abstract public class AppListAdapter extends BaseAdapter { if (app.toUpdate) { cur = ellipsize(app.installedVersion, 8); span = new SpannableString( - cur + " -> " + ellipsize(app.curApk.version, 8)); + cur + " → " + ellipsize(app.curApk.version, 8)); } else { cur = ellipsize(app.installedVersion, 12); span = new SpannableString(cur); From fa02eb57333f4e3e5cfafb6121ff0c514c112335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 26 Dec 2013 13:18:28 +0100 Subject: [PATCH 28/60] Small tweaks to paddings and layouts --- res/layout/appdetails.xml | 1 - res/layout/appinfo.xml | 7 +------ res/layout/applistitem.xml | 13 +++++++------ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/res/layout/appdetails.xml b/res/layout/appdetails.xml index 8e22961f5..a7bfa80e8 100644 --- a/res/layout/appdetails.xml +++ b/res/layout/appdetails.xml @@ -16,7 +16,6 @@ android:id="@+id/icon" android:layout_width="48dp" android:layout_height="48dp" - android:cropToPadding="true" android:layout_marginRight="6dp" android:scaleType="fitCenter" /> diff --git a/res/layout/appinfo.xml b/res/layout/appinfo.xml index 5c96a9a9b..4d1dec73a 100644 --- a/res/layout/appinfo.xml +++ b/res/layout/appinfo.xml @@ -3,8 +3,6 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="4dp" - android:paddingLeft="2dp" - android:paddingRight="2dp" android:paddingBottom="10dp" android:baselineAligned="false" android:orientation="vertical" > @@ -13,14 +11,13 @@ android:id="@+id/summary" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:textSize="14sp" android:textStyle="bold" /> + android:textSize="13sp" /> @@ -50,7 +46,6 @@ android:layout_height="wrap_content" android:layout_marginTop="8sp" android:singleLine="true" - android:textSize="14sp" android:textStyle="bold" /> + android:layout_centerVertical="true" /> @@ -52,6 +51,8 @@ Date: Tue, 31 Dec 2013 10:50:50 +0100 Subject: [PATCH 29/60] Update UIL, release 1.9.1 --- extern/Universal-Image-Loader | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/Universal-Image-Loader b/extern/Universal-Image-Loader index 7fdd7d00f..75ea56004 160000 --- a/extern/Universal-Image-Loader +++ b/extern/Universal-Image-Loader @@ -1 +1 @@ -Subproject commit 7fdd7d00fcadd2056e1cfa1a308f5c28c71adbd9 +Subproject commit 75ea560049c9a256ca4fba0a70de1971aa852612 From e437898e331e25973c6e891d7387892320798479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 10:54:54 +0100 Subject: [PATCH 30/60] Further fixes to layouts --- res/layout-land/appdetails.xml | 14 +++++++------- res/layout/appdetails.xml | 5 +++-- res/layout/appinfo.xml | 1 - res/layout/searchresults.xml | 1 - res/values/strings.xml | 2 -- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/res/layout-land/appdetails.xml b/res/layout-land/appdetails.xml index 5441f258d..592971970 100644 --- a/res/layout-land/appdetails.xml +++ b/res/layout-land/appdetails.xml @@ -14,8 +14,8 @@ android:id="@+id/landleft" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_margin="5dp" - android:paddingRight="6dp" + android:padding="5dp" + android:layout_marginRight="4dp" android:orientation="vertical" > + android:textSize="13sp" /> + android:textSize="13sp" /> diff --git a/res/layout/appdetails.xml b/res/layout/appdetails.xml index a7bfa80e8..0441cd54f 100644 --- a/res/layout/appdetails.xml +++ b/res/layout/appdetails.xml @@ -10,6 +10,7 @@ android:id="@+id/header" android:layout_width="fill_parent" android:layout_height="wrap_content" + android:paddingBottom="4dp" android:orientation="horizontal" > + android:textSize="13sp" /> + android:textSize="13sp" /> diff --git a/res/layout/appinfo.xml b/res/layout/appinfo.xml index 4d1dec73a..546d06bed 100644 --- a/res/layout/appinfo.xml +++ b/res/layout/appinfo.xml @@ -2,7 +2,6 @@ diff --git a/res/layout/searchresults.xml b/res/layout/searchresults.xml index 417bdb240..b7ddbba70 100644 --- a/res/layout/searchresults.xml +++ b/res/layout/searchresults.xml @@ -9,7 +9,6 @@ It seems like this package is not compatible with your device. Do you want to try and install it anyway? You are trying to downgrade this application. Doing so might get it to malfunction and even lose your data. Do you want to try and downgrade it anyway? Version - %d versions available - %d version available Cache downloaded apps Keep downloaded apk files on SD card Updates From bc74d97195417814193ce9ccfa838f0730310821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 11:16:46 +0100 Subject: [PATCH 31/60] Add very basic support for --- src/org/fdroid/fdroid/DB.java | 19 +++++++++++++++---- src/org/fdroid/fdroid/RepoXMLHandler.java | 2 ++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index f3089476f..5603f0294 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -104,7 +104,7 @@ public class DB { + "lastUpdated string," + "compatible int not null," + "ignoreAllUpdates int not null," + "ignoreThisUpdate int not null," - + "primary key(id));"; + + "provides string," + "primary key(id));"; public static class App implements Comparable { @@ -121,6 +121,7 @@ public class DB { detail_litecoinAddr = null; detail_webURL = null; categories = null; + provides = null; antiFeatures = null; requirements = null; hasUpdates = false; @@ -191,6 +192,9 @@ public class DB { public int installedVerCode; public boolean userInstalled; + // List of app IDs that this app provides or null if there aren't any. + public CommaSeparatedList provides; + // List of categories (as defined in the metadata // documentation) or null if there aren't any. public CommaSeparatedList categories; @@ -457,7 +461,7 @@ public class DB { public String lastetag; // last etag we updated from, null forces update } - private final int DBVersion = 30; + private final int DBVersion = 31; private static void createAppApk(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_APP); @@ -836,7 +840,8 @@ public class DB { String cols[] = new String[] { "antiFeatures", "requirements", "categories", "id", "name", "summary", "icon", "license", "curVersion", "curVercode", "added", "lastUpdated", - "compatible", "ignoreAllUpdates", "ignoreThisUpdate" }; + "compatible", "ignoreAllUpdates", "ignoreThisUpdate", + "provides" }; c = db.query(TABLE_APP, cols, null, null, null, null, null); c.moveToFirst(); while (!c.isAfterLast()) { @@ -862,6 +867,7 @@ public class DB { app.compatible = c.getInt(12) == 1; app.ignoreAllUpdates = c.getInt(13) == 1; app.ignoreThisUpdate = c.getInt(14); + app.provides = DB.CommaSeparatedList.make(c.getString(15)); app.hasUpdates = false; if (getinstalledinfo && systemApks.containsKey(app.id)) { @@ -881,6 +887,11 @@ public class DB { } apps.put(app.id, app); + if (app.provides != null) { + for (String id : app.provides) { + apps.put(id, app); + } + } c.moveToNext(); } @@ -1038,7 +1049,7 @@ public class DB { try { String filter = "%" + query + "%"; c = db.query(TABLE_APP, new String[] { "id" }, - "id like ? or name like ? or summary like ? or description like ?", + "id like ? or provides like ? or name like ? or summary like ? or description like ?", new String[] { filter, filter, filter, filter }, null, null, null); c.moveToFirst(); while (!c.isAfterLast()) { diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index 29648f7c9..9053fb497 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -240,6 +240,8 @@ public class RepoXMLHandler extends DefaultHandler { } catch (NumberFormatException ex) { curapp.curVercode = -1; } + } else if (curel.equals("provides")) { + curapp.provides = DB.CommaSeparatedList.make(str); } else if (curel.equals("categories")) { curapp.categories = DB.CommaSeparatedList.make(str); } else if (curel.equals("antifeatures")) { From 67ec0f748c46faad1402b475d94eeed6b0b3f6fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 11:27:19 +0100 Subject: [PATCH 32/60] Separate status and license from name and summary in app lists --- res/layout/applistitem.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 6fa18622b..02d80ea0c 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -55,6 +55,7 @@ android:paddingBottom="2dp" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="6dp" android:layout_alignParentTop="true" android:layout_alignParentRight="true" /> @@ -64,6 +65,7 @@ android:ellipsize="end" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="6dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" /> From a189ff6e4ebd58a821953ce11652eda3ea86baf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 11:35:00 +0100 Subject: [PATCH 33/60] Replace UnlimitedDiscCache with LimitedAgeDiscCache and 30 days (fixes #190) --- src/org/fdroid/fdroid/FDroidApp.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/fdroid/fdroid/FDroidApp.java b/src/org/fdroid/fdroid/FDroidApp.java index f8ed94acf..f2949ae88 100644 --- a/src/org/fdroid/fdroid/FDroidApp.java +++ b/src/org/fdroid/fdroid/FDroidApp.java @@ -32,7 +32,7 @@ import android.content.Context; import android.content.SharedPreferences; import com.nostra13.universalimageloader.utils.StorageUtils; -import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; +import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; @@ -100,14 +100,17 @@ public class FDroidApp extends Application { UpdateService.schedule(ctx); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(ctx) - .discCache(new UnlimitedDiscCache( + .discCache(new LimitedAgeDiscCache( new File(StorageUtils.getCacheDirectory(ctx), "icons"), new FileNameGenerator() { @Override public String generate(String imageUri) { return imageUri.substring( imageUri.lastIndexOf('/') + 1); - } } )) + } }, + // 30 days in secs: 30*24*60*60 = 2592000 + 2592000) + ) .threadPoolSize(Runtime.getRuntime().availableProcessors() * 2) .build(); ImageLoader.getInstance().init(config); From 1e4fe9fa2c676e842bf5ed2a585f7f8bb0f87d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 12:11:03 +0100 Subject: [PATCH 34/60] Add basic dogecoin donation support --- res/values/no_trans.xml | 1 + src/org/fdroid/fdroid/AppDetails.java | 12 ++++++++++-- src/org/fdroid/fdroid/DB.java | 12 ++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/res/values/no_trans.xml b/res/values/no_trans.xml index 81bf3a436..918d10fb4 100644 --- a/res/values/no_trans.xml +++ b/res/values/no_trans.xml @@ -9,6 +9,7 @@ Bitcoin Litecoin + Dogecoin Flattr diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 109d278b8..af9b88d8b 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -193,8 +193,9 @@ public class AppDetails extends ListActivity { private static final int DONATE = Menu.FIRST + 9; private static final int BITCOIN = Menu.FIRST + 10; private static final int LITECOIN = Menu.FIRST + 11; - private static final int FLATTR = Menu.FIRST + 12; - private static final int DONATE_URL = Menu.FIRST + 13; + private static final int DOGECOIN = Menu.FIRST + 12; + private static final int FLATTR = Menu.FIRST + 13; + private static final int DONATE_URL = Menu.FIRST + 14; private DB.App app; private String appid; @@ -705,6 +706,7 @@ public class AppDetails extends ListActivity { } if (app.detail_bitcoinAddr != null || app.detail_litecoinAddr != null || + app.detail_dogecoinAddr != null || app.detail_flattrID != null || app.detail_donateURL != null) { SubMenu donate = menu.addSubMenu(Menu.NONE, DONATE, 7, R.string.menu_donate).setIcon( @@ -713,6 +715,8 @@ public class AppDetails extends ListActivity { donate.add(Menu.NONE, BITCOIN, 8, R.string.menu_bitcoin); if (app.detail_litecoinAddr != null) donate.add(Menu.NONE, LITECOIN, 8, R.string.menu_litecoin); + if (app.detail_dogecoinAddr != null) + donate.add(Menu.NONE, DOGECOIN, 8, R.string.menu_dogecoin); if (app.detail_flattrID != null) donate.add(Menu.NONE, FLATTR, 9, R.string.menu_flattr); if (app.detail_donateURL != null) @@ -794,6 +798,10 @@ public class AppDetails extends ListActivity { tryOpenUri("litecoin:" + app.detail_litecoinAddr); return true; + case DOGECOIN: + tryOpenUri("dogecoin:" + app.detail_dogecoinAddr); + return true; + case FLATTR: tryOpenUri("https://flattr.com/thing/" + app.detail_flattrID); return true; diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 5603f0294..077ef948a 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -99,6 +99,7 @@ public class DB { + "curVersion text," + "curVercode integer," + "antiFeatures string," + "donateURL string," + "bitcoinAddr string," + "litecoinAddr string," + + "dogecoinAddr string," + "flattrID string," + "requirements string," + "categories string," + "added string," + "lastUpdated string," + "compatible int not null," @@ -119,6 +120,7 @@ public class DB { detail_donateURL = null; detail_bitcoinAddr = null; detail_litecoinAddr = null; + detail_dogecoinAddr = null; detail_webURL = null; categories = null; provides = null; @@ -175,6 +177,10 @@ public class DB { // Null when !detail_Populated public String detail_litecoinAddr; + // Dogecoin donate address, or null + // Null when !detail_Populated + public String detail_dogecoinAddr; + // Flattr donate ID, or null // Null when !detail_Populated public String detail_flattrID; @@ -461,7 +467,7 @@ public class DB { public String lastetag; // last etag we updated from, null forces update } - private final int DBVersion = 31; + private final int DBVersion = 32; private static void createAppApk(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_APP); @@ -730,7 +736,7 @@ public class DB { private static final String[] POPULATE_APP_COLS = new String[] { "description", "webURL", "trackerURL", "sourceURL", - "donateURL", "bitcoinAddr", "flattrID", "litecoinAddr" }; + "donateURL", "bitcoinAddr", "flattrID", "litecoinAddr", "dogecoinAddr" }; private void populateAppDetails(App app) { Cursor cursor = null; @@ -746,6 +752,7 @@ public class DB { app.detail_bitcoinAddr = cursor.getString(5); app.detail_flattrID = cursor.getString(6); app.detail_litecoinAddr = cursor.getString(7); + app.detail_dogecoinAddr = cursor.getString(8); app.detail_Populated = true; } catch (Exception e) { Log.d("FDroid", "Error populating app details " + app.id ); @@ -1247,6 +1254,7 @@ public class DB { values.put("donateURL", upapp.detail_donateURL); values.put("bitcoinAddr", upapp.detail_bitcoinAddr); values.put("litecoinAddr", upapp.detail_litecoinAddr); + values.put("dogecoinAddr", upapp.detail_dogecoinAddr); values.put("flattrID", upapp.detail_flattrID); values.put("added", upapp.added == null ? "" : mDateFormat.format(upapp.added)); From d1d1201a6eb59fa72b8858e52efe6e497e762a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 12:12:32 +0100 Subject: [PATCH 35/60] Add missing dogecoin bit to RepoXMLHandler --- src/org/fdroid/fdroid/RepoXMLHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index 9053fb497..a04a0cce8 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -212,6 +212,8 @@ public class RepoXMLHandler extends DefaultHandler { curapp.detail_bitcoinAddr = str; } else if (curel.equals("litecoin")) { curapp.detail_litecoinAddr = str; + } else if (curel.equals("dogecoin")) { + curapp.detail_dogecoinAddr = str; } else if (curel.equals("flattr")) { curapp.detail_flattrID = str; } else if (curel.equals("web")) { From ea0eae6b11d3cc35b3aca41ac601c93464040646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 14:49:34 +0100 Subject: [PATCH 36/60] Small changes to SearchResuts --- src/org/fdroid/fdroid/SearchResults.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/org/fdroid/fdroid/SearchResults.java b/src/org/fdroid/fdroid/SearchResults.java index 75b2ebb0b..1a3ac216b 100644 --- a/src/org/fdroid/fdroid/SearchResults.java +++ b/src/org/fdroid/fdroid/SearchResults.java @@ -105,24 +105,20 @@ public class SearchResults extends ListActivity { } List apps = new ArrayList(); - List tapps = ((FDroidApp) getApplication()).getApps(); - for (DB.App tapp : tapps) { + List allApps = ((FDroidApp) getApplication()).getApps(); + for (DB.App app : allApps) { boolean include = false; - for (String tid : matchingids) { - if (tid.equals(tapp.id)) { - include = true; + for (String id : matchingids) { + if (id.equals(app.id)) { + apps.add(app); break; } } - if (include) - apps.add(tapp); - } TextView tv = (TextView) findViewById(R.id.description); String headertext; - try - { + try { if (apps.size() == 0) headertext = String.format(getString(R.string.searchres_noapps), mQuery); From 994610c516f7720d898d4b74ddd070cae953dbd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 20:46:21 +0100 Subject: [PATCH 37/60] TODO done: Use a HashMap when updating app lists --- src/org/fdroid/fdroid/RepoXMLHandler.java | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index a04a0cce8..30a07d87e 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -34,6 +34,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.HashMap; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -55,7 +57,8 @@ public class RepoXMLHandler extends DefaultHandler { // The repo we're processing. private DB.Repo repo; - private List apps; + private Map apps; + private List appsList; private DB.App curapp = null; private DB.Apk curapk = null; @@ -89,9 +92,11 @@ public class RepoXMLHandler extends DefaultHandler { private int totalAppCount; - public RepoXMLHandler(DB.Repo repo, List apps, ProgressListener listener) { + public RepoXMLHandler(DB.Repo repo, List appsList, ProgressListener listener) { this.repo = repo; - this.apps = apps; + this.apps = new HashMap(); + for (DB.App app : appsList) this.apps.put(app.id, app); + this.appsList = appsList; pubkey = null; name = null; description = null; @@ -118,18 +123,13 @@ public class RepoXMLHandler extends DefaultHandler { // If we already have this application (must be from scanning a // different repo) then just merge in the apks. - // TODO: Scanning the whole app list like this every time is - // going to be stupid if the list gets very big! - boolean merged = false; - for (DB.App app : apps) { - if (app.id.equals(curapp.id)) { - app.apks.addAll(curapp.apks); - merged = true; - break; - } + DB.App app = apps.get(curapp.id); + if (app != null) { + app.apks.addAll(curapp.apks); + } else { + appsList.add(curapp); + apps.put(curapp.id, curapp); } - if (!merged) - apps.add(curapp); curapp = null; @@ -354,7 +354,7 @@ public class RepoXMLHandler extends DefaultHandler { // value for the index that was successfully processed, or it may contain // null if none was available. public static String doUpdate(Context ctx, DB.Repo repo, - List apps, StringBuilder newetag, List keeprepos, + List appsList, StringBuilder newetag, List keeprepos, ProgressListener progressListener) { try { @@ -439,7 +439,7 @@ public class RepoXMLHandler extends DefaultHandler { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); - RepoXMLHandler handler = new RepoXMLHandler(repo, apps, progressListener); + RepoXMLHandler handler = new RepoXMLHandler(repo, appsList, progressListener); xr.setContentHandler(handler); File tempIndex = new File(ctx.getFilesDir() + "/tempindex.xml"); From aaad028f3a56c41456e5dc6b743a12f3bf7915d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 21:29:38 +0100 Subject: [PATCH 38/60] Use OnSharedPreferenceChangeListener, recommended and easier to use --- .../fdroid/fdroid/PreferencesActivity.java | 66 ++++++++++++------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 1303e9f09..cfae021bb 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -19,11 +19,11 @@ package org.fdroid.fdroid; import android.os.Bundle; -import android.preference.Preference; import android.preference.PreferenceActivity; -import android.preference.Preference.OnPreferenceChangeListener; import android.preference.ListPreference; import android.preference.CheckBoxPreference; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.view.MenuItem; import android.support.v4.app.NavUtils; @@ -31,33 +31,47 @@ import android.support.v4.app.NavUtils; import org.fdroid.fdroid.compat.ActionBarCompat; public class PreferencesActivity extends PreferenceActivity implements - OnPreferenceChangeListener { + OnSharedPreferenceChangeListener { public static final int RESULT_RELOAD = 1; public static final int RESULT_REFILTER = 2; public static final int RESULT_RESTART = 4; private int result = 0; + public static final String KEY_UP_INT = "updateInterval"; + public static final String KEY_UP_WI_O = "updateOnWifiOnly"; + public static final String KEY_ROOTED = "rooted"; + public static final String KEY_INC_VER = "incompatibleVersions"; + public static final String KEY_THEME = "theme"; + @Override protected void onCreate(Bundle savedInstanceState) { - ((FDroidApp) getApplication()).applyTheme(this); - super.onCreate(savedInstanceState); ActionBarCompat.create(this).setDisplayHomeAsUpEnabled(true); addPreferencesFromResource(R.xml.preferences); - for (String prefkey : new String[] { - "updateInterval", "rooted", "incompatibleVersions", - "theme" }) { - findPreference(prefkey).setOnPreferenceChangeListener(this); - } + } + + @Override + protected void onResume() { + super.onResume(); + getPreferenceScreen().getSharedPreferences() + .registerOnSharedPreferenceChangeListener( + (OnSharedPreferenceChangeListener)this); CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference("updateOnWifiOnly"); + findPreference(KEY_UP_WI_O); onlyOnWifi.setEnabled(Integer.parseInt( - ((ListPreference)findPreference("updateInterval")) + ((ListPreference)findPreference(KEY_UP_INT)) .getValue()) > 0); } + @Override + protected void onPause() { + super.onPause(); + getPreferenceScreen().getSharedPreferences() + .unregisterOnSharedPreferenceChangeListener(this); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -69,31 +83,33 @@ public class PreferencesActivity extends PreferenceActivity implements } @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - String key = preference.getKey(); - if (key.equals("updateInterval")) { - int interval = Integer.parseInt(newValue.toString()); + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + + if (key.equals(KEY_UP_INT)) { + int interval = Integer.parseInt( + sharedPreferences.getString(key, "").toString()); CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference("updateOnWifiOnly"); + findPreference(KEY_UP_WI_O); onlyOnWifi.setEnabled(interval > 0); - return true; + return; } - if (key.equals("incompatibleVersions")) { + + if (key.equals(KEY_INC_VER)) { result ^= RESULT_RELOAD; setResult(result); - return true; + return; } - if (key.equals("rooted")) { + + if (key.equals(KEY_ROOTED)) { result ^= RESULT_REFILTER; setResult(result); - return true; + return; } - if (key.equals("theme")) { + if (key.equals(KEY_THEME)) { result |= RESULT_RESTART; setResult(result); - return true; + return; } - return false; } } From 1b83bf38ac1b055b4fc622eb0cef3edc690762cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 21:35:37 +0100 Subject: [PATCH 39/60] Move pref names to Preferences.java --- src/org/fdroid/fdroid/Preferences.java | 8 ++++++- .../fdroid/fdroid/PreferencesActivity.java | 23 ++++++++----------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index bb4d7cb0d..4d103ef0f 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -26,7 +26,13 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi preferences.registerOnSharedPreferenceChangeListener(this); } - private static final String PREF_COMPACT_LAYOUT = "compactlayout"; + public static final String PREF_UPD_INTERVAL = "updateInterval"; + public static final String PREF_UPD_WIFI_ONLY = "updateOnWifiOnly"; + public static final String PREF_ROOTED = "rooted"; + public static final String PREF_INCOMP_VER = "incompatibleVersions"; + public static final String PREF_THEME = "theme"; + public static final String PREF_COMPACT_LAYOUT = "compactlayout"; + private static final boolean DEFAULT_COMPACT_LAYOUT = false; private boolean compactLayout = DEFAULT_COMPACT_LAYOUT; diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index cfae021bb..ad92bbfd1 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -28,6 +28,7 @@ import android.view.MenuItem; import android.support.v4.app.NavUtils; +import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.compat.ActionBarCompat; public class PreferencesActivity extends PreferenceActivity implements @@ -38,12 +39,6 @@ public class PreferencesActivity extends PreferenceActivity implements public static final int RESULT_RESTART = 4; private int result = 0; - public static final String KEY_UP_INT = "updateInterval"; - public static final String KEY_UP_WI_O = "updateOnWifiOnly"; - public static final String KEY_ROOTED = "rooted"; - public static final String KEY_INC_VER = "incompatibleVersions"; - public static final String KEY_THEME = "theme"; - @Override protected void onCreate(Bundle savedInstanceState) { ((FDroidApp) getApplication()).applyTheme(this); @@ -59,9 +54,9 @@ public class PreferencesActivity extends PreferenceActivity implements .registerOnSharedPreferenceChangeListener( (OnSharedPreferenceChangeListener)this); CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference(KEY_UP_WI_O); - onlyOnWifi.setEnabled(Integer.parseInt( - ((ListPreference)findPreference(KEY_UP_INT)) + findPreference(Preferences.PREF_UPD_WIFI_ONLY); + onlyOnWifi.setEnabled(Integer.parseInt(((ListPreference) + findPreference(Preferences.PREF_UPD_INTERVAL)) .getValue()) > 0); } @@ -85,27 +80,27 @@ public class PreferencesActivity extends PreferenceActivity implements @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (key.equals(KEY_UP_INT)) { + if (key.equals(Preferences.PREF_UPD_INTERVAL)) { int interval = Integer.parseInt( sharedPreferences.getString(key, "").toString()); CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference(KEY_UP_WI_O); + findPreference(Preferences.PREF_UPD_WIFI_ONLY); onlyOnWifi.setEnabled(interval > 0); return; } - if (key.equals(KEY_INC_VER)) { + if (key.equals(Preferences.PREF_INCOMP_VER)) { result ^= RESULT_RELOAD; setResult(result); return; } - if (key.equals(KEY_ROOTED)) { + if (key.equals(Preferences.PREF_ROOTED)) { result ^= RESULT_REFILTER; setResult(result); return; } - if (key.equals(KEY_THEME)) { + if (key.equals(Preferences.PREF_THEME)) { result |= RESULT_RESTART; setResult(result); return; From 1b6a643b9c4174af23f8ec82424e17c1cd641759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 31 Dec 2013 21:59:46 +0100 Subject: [PATCH 40/60] Start doing checkbox preferences with on/off summaries --- res/values/strings.xml | 9 ++-- res/xml/preferences.xml | 6 +-- src/org/fdroid/fdroid/Preferences.java | 1 + .../fdroid/fdroid/PreferencesActivity.java | 44 ++++++++++++++++--- 4 files changed, 49 insertions(+), 11 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 24bcc16a1..357e0c409 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -128,9 +128,11 @@ Incompatible versions Show versions of apps that are incompatible with the device Root - Show apps that require root privileges + Do not grey out apps requiring root privileges + Grey out apps requiring root privileges Ignore Touchscreen - Always include apps that require touchscreen + Always include apps that require touchscreen + Filter apps normally All What\'s New @@ -153,7 +155,8 @@ Display a list of permissions an app needs You don\'t have any available app that can handle %s Compact Layout - Only show app names and summaries in list + Show icons at regular size + Show icons at a smaller size Theme Choose a theme to use diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 3c75c506c..d1ad376e2 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -24,7 +24,7 @@ android:defaultValue="false" android:summary="@string/showPermissions_long" android:key="showPermissions"/> diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index 4d103ef0f..d94193130 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -32,6 +32,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi public static final String PREF_INCOMP_VER = "incompatibleVersions"; public static final String PREF_THEME = "theme"; public static final String PREF_COMPACT_LAYOUT = "compactlayout"; + public static final String PREF_IGN_TOUCH = "ignoreTouchscreen"; private static final boolean DEFAULT_COMPACT_LAYOUT = false; diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index ad92bbfd1..c9c163765 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -19,9 +19,9 @@ package org.fdroid.fdroid; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.ListPreference; -import android.preference.CheckBoxPreference; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.view.MenuItem; @@ -53,8 +53,8 @@ public class PreferencesActivity extends PreferenceActivity implements getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener( (OnSharedPreferenceChangeListener)this); - CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference(Preferences.PREF_UPD_WIFI_ONLY); + Preference onlyOnWifi = findPreference( + Preferences.PREF_UPD_WIFI_ONLY); onlyOnWifi.setEnabled(Integer.parseInt(((ListPreference) findPreference(Preferences.PREF_UPD_INTERVAL)) .getValue()) > 0); @@ -83,12 +83,27 @@ public class PreferencesActivity extends PreferenceActivity implements if (key.equals(Preferences.PREF_UPD_INTERVAL)) { int interval = Integer.parseInt( sharedPreferences.getString(key, "").toString()); - CheckBoxPreference onlyOnWifi = (CheckBoxPreference) - findPreference(Preferences.PREF_UPD_WIFI_ONLY); + Preference onlyOnWifi = findPreference( + Preferences.PREF_UPD_WIFI_ONLY); onlyOnWifi.setEnabled(interval > 0); return; } + if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { + Preference pref = findPreference(Preferences.PREF_COMPACT_LAYOUT); + if (sharedPreferences.getBoolean( + Preferences.PREF_COMPACT_LAYOUT, false)) { + pref.setSummary(R.string.compactlayout_on); + } else { + pref.setSummary(R.string.compactlayout_off); + } + return; + } + + if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { + return; + } + if (key.equals(Preferences.PREF_INCOMP_VER)) { result ^= RESULT_RELOAD; setResult(result); @@ -98,8 +113,27 @@ public class PreferencesActivity extends PreferenceActivity implements if (key.equals(Preferences.PREF_ROOTED)) { result ^= RESULT_REFILTER; setResult(result); + Preference pref = findPreference(Preferences.PREF_ROOTED); + if (sharedPreferences.getBoolean( + Preferences.PREF_ROOTED, false)) { + pref.setSummary(R.string.rooted_on); + } else { + pref.setSummary(R.string.rooted_off); + } return; } + + if (key.equals(Preferences.PREF_IGN_TOUCH)) { + Preference pref = findPreference(Preferences.PREF_IGN_TOUCH); + if (sharedPreferences.getBoolean( + Preferences.PREF_IGN_TOUCH, false)) { + pref.setSummary(R.string.ignoreTouch_on); + } else { + pref.setSummary(R.string.ignoreTouch_off); + } + return; + } + if (key.equals(Preferences.PREF_THEME)) { result |= RESULT_RESTART; setResult(result); From 02bac89b178649b2c15f0104abfbff86041e1083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 00:38:47 +0100 Subject: [PATCH 41/60] Do on/off and value summaries for auto updates --- res/values/strings.xml | 7 ++-- res/xml/preferences.xml | 6 +-- .../fdroid/fdroid/PreferencesActivity.java | 42 +++++++++++++++---- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 357e0c409..4203c469f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -14,10 +14,11 @@ Last repo scan: %s never - Automatic repo scan - Update app list from repositories automatically + Automatic update interval + No automatic app list updates Only on wifi - Update app lists automatically only on wifi + Update app lists automatically only on wifi + Always update app lists automatically Notify Notify when new updates are available Update history diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index d1ad376e2..4cf7eaea1 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -1,12 +1,12 @@ - 0); + onlyOnWifi.setEnabled(interval > 0); + + if (interval == 0) { + updateInterval.setSummary(R.string.update_interval_zero); + } else { + updateInterval.setSummary(updateInterval.getEntry()); + } } @Override @@ -78,14 +88,32 @@ public class PreferencesActivity extends PreferenceActivity implements } @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + public void onSharedPreferenceChanged( + SharedPreferences sharedPreferences, String key) { if (key.equals(Preferences.PREF_UPD_INTERVAL)) { - int interval = Integer.parseInt( - sharedPreferences.getString(key, "").toString()); + ListPreference pref = (ListPreference)findPreference( + Preferences.PREF_UPD_INTERVAL); + int interval = Integer.parseInt(pref.getValue().toString()); Preference onlyOnWifi = findPreference( Preferences.PREF_UPD_WIFI_ONLY); onlyOnWifi.setEnabled(interval > 0); + if (interval == 0) { + pref.setSummary(R.string.update_interval_zero); + } else { + pref.setSummary(pref.getEntry()); + } + return; + } + + if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { + Preference pref = findPreference(Preferences.PREF_UPD_WIFI_ONLY); + if (sharedPreferences.getBoolean( + Preferences.PREF_UPD_WIFI_ONLY, false)) { + pref.setSummary(R.string.automatic_scan_wifi_on); + } else { + pref.setSummary(R.string.automatic_scan_wifi_off); + } return; } @@ -115,7 +143,7 @@ public class PreferencesActivity extends PreferenceActivity implements setResult(result); Preference pref = findPreference(Preferences.PREF_ROOTED); if (sharedPreferences.getBoolean( - Preferences.PREF_ROOTED, false)) { + Preferences.PREF_ROOTED, true)) { pref.setSummary(R.string.rooted_on); } else { pref.setSummary(R.string.rooted_off); From 177b2a170d32b9c183e65053ee08318b9d427b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 00:42:13 +0100 Subject: [PATCH 42/60] Show value for the theme pref too, no dummy defualt summaries --- res/values/strings.xml | 1 - res/xml/preferences.xml | 12 ++++++------ src/org/fdroid/fdroid/PreferencesActivity.java | 7 +++++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 4203c469f..37463c918 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -159,6 +159,5 @@ Show icons at regular size Show icons at a smaller size Theme - Choose a theme to use diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 4cf7eaea1..53e431811 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -2,11 +2,11 @@ @@ -37,10 +37,10 @@ android:defaultValue="false" android:summary="@string/show_incompat_versions_l" android:key="incompatibleVersions" /> diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 6a2af7e5a..0125bc87f 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -68,6 +68,10 @@ public class PreferencesActivity extends PreferenceActivity implements } else { updateInterval.setSummary(updateInterval.getEntry()); } + + ListPreference theme = (ListPreference)findPreference( + Preferences.PREF_THEME); + theme.setSummary(theme.getEntry()); } @Override @@ -165,6 +169,9 @@ public class PreferencesActivity extends PreferenceActivity implements if (key.equals(Preferences.PREF_THEME)) { result |= RESULT_RESTART; setResult(result); + ListPreference theme = (ListPreference)findPreference( + Preferences.PREF_THEME); + theme.setSummary(theme.getEntry()); return; } } From d1d88ea26b567d4867a2847d32f2471e8023aa6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 01:03:25 +0100 Subject: [PATCH 43/60] Update summaries on onResume() consistently --- res/values/strings.xml | 4 +- .../fdroid/fdroid/PreferencesActivity.java | 189 +++++++++--------- 2 files changed, 95 insertions(+), 98 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 37463c918..aba793a53 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -156,8 +156,8 @@ Display a list of permissions an app needs You don\'t have any available app that can handle %s Compact Layout - Show icons at regular size - Show icons at a smaller size + Show icons at a smaller size + Show icons at regular size Theme diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 0125bc87f..4ac1365d6 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -21,6 +21,7 @@ package org.fdroid.fdroid; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; @@ -39,6 +40,15 @@ public class PreferencesActivity extends PreferenceActivity implements public static final int RESULT_RESTART = 4; private int result = 0; + private static String[] summariesToUpdate = { + Preferences.PREF_UPD_INTERVAL, + Preferences.PREF_UPD_WIFI_ONLY, + Preferences.PREF_ROOTED, + Preferences.PREF_INCOMP_VER, + Preferences.PREF_THEME, + Preferences.PREF_COMPACT_LAYOUT, + Preferences.PREF_IGN_TOUCH }; + @Override protected void onCreate(Bundle savedInstanceState) { ((FDroidApp) getApplication()).applyTheme(this); @@ -47,31 +57,96 @@ public class PreferencesActivity extends PreferenceActivity implements addPreferencesFromResource(R.xml.preferences); } + protected void updateSummary(String key) { + + if (key.equals(Preferences.PREF_UPD_INTERVAL)) { + ListPreference pref = (ListPreference)findPreference( + Preferences.PREF_UPD_INTERVAL); + int interval = Integer.parseInt(pref.getValue().toString()); + Preference onlyOnWifi = findPreference( + Preferences.PREF_UPD_WIFI_ONLY); + onlyOnWifi.setEnabled(interval > 0); + if (interval == 0) { + pref.setSummary(R.string.update_interval_zero); + } else { + pref.setSummary(pref.getEntry()); + } + return; + } + + if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_UPD_WIFI_ONLY); + if (pref.isChecked()) { + pref.setSummary(R.string.automatic_scan_wifi_on); + } else { + pref.setSummary(R.string.automatic_scan_wifi_off); + } + return; + } + + if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_COMPACT_LAYOUT); + if (pref.isChecked()) { + pref.setSummary(R.string.compactlayout_on); + } else { + pref.setSummary(R.string.compactlayout_off); + } + return; + } + + if (key.equals(Preferences.PREF_INCOMP_VER)) { + result ^= RESULT_RELOAD; + setResult(result); + return; + } + + if (key.equals(Preferences.PREF_ROOTED)) { + result ^= RESULT_REFILTER; + setResult(result); + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_ROOTED); + if (pref.isChecked()) { + pref.setSummary(R.string.rooted_on); + } else { + pref.setSummary(R.string.rooted_off); + } + return; + } + + if (key.equals(Preferences.PREF_IGN_TOUCH)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_IGN_TOUCH); + if (pref.isChecked()) { + pref.setSummary(R.string.ignoreTouch_on); + } else { + pref.setSummary(R.string.ignoreTouch_off); + } + return; + } + + if (key.equals(Preferences.PREF_THEME)) { + result |= RESULT_RESTART; + setResult(result); + ListPreference theme = (ListPreference)findPreference( + Preferences.PREF_THEME); + theme.setSummary(theme.getEntry()); + return; + } + } + @Override protected void onResume() { + super.onResume(); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener( (OnSharedPreferenceChangeListener)this); - ListPreference updateInterval = (ListPreference)findPreference( - Preferences.PREF_UPD_INTERVAL); - - int interval = Integer.parseInt(updateInterval.getValue().toString()); - - Preference onlyOnWifi = findPreference( - Preferences.PREF_UPD_WIFI_ONLY); - onlyOnWifi.setEnabled(interval > 0); - - if (interval == 0) { - updateInterval.setSummary(R.string.update_interval_zero); - } else { - updateInterval.setSummary(updateInterval.getEntry()); + for (String key : summariesToUpdate) { + updateSummary(key); } - - ListPreference theme = (ListPreference)findPreference( - Preferences.PREF_THEME); - theme.setSummary(theme.getEntry()); } @Override @@ -95,85 +170,7 @@ public class PreferencesActivity extends PreferenceActivity implements public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { - if (key.equals(Preferences.PREF_UPD_INTERVAL)) { - ListPreference pref = (ListPreference)findPreference( - Preferences.PREF_UPD_INTERVAL); - int interval = Integer.parseInt(pref.getValue().toString()); - Preference onlyOnWifi = findPreference( - Preferences.PREF_UPD_WIFI_ONLY); - onlyOnWifi.setEnabled(interval > 0); - if (interval == 0) { - pref.setSummary(R.string.update_interval_zero); - } else { - pref.setSummary(pref.getEntry()); - } - return; - } - - if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { - Preference pref = findPreference(Preferences.PREF_UPD_WIFI_ONLY); - if (sharedPreferences.getBoolean( - Preferences.PREF_UPD_WIFI_ONLY, false)) { - pref.setSummary(R.string.automatic_scan_wifi_on); - } else { - pref.setSummary(R.string.automatic_scan_wifi_off); - } - return; - } - - if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { - Preference pref = findPreference(Preferences.PREF_COMPACT_LAYOUT); - if (sharedPreferences.getBoolean( - Preferences.PREF_COMPACT_LAYOUT, false)) { - pref.setSummary(R.string.compactlayout_on); - } else { - pref.setSummary(R.string.compactlayout_off); - } - return; - } - - if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { - return; - } - - if (key.equals(Preferences.PREF_INCOMP_VER)) { - result ^= RESULT_RELOAD; - setResult(result); - return; - } - - if (key.equals(Preferences.PREF_ROOTED)) { - result ^= RESULT_REFILTER; - setResult(result); - Preference pref = findPreference(Preferences.PREF_ROOTED); - if (sharedPreferences.getBoolean( - Preferences.PREF_ROOTED, true)) { - pref.setSummary(R.string.rooted_on); - } else { - pref.setSummary(R.string.rooted_off); - } - return; - } - - if (key.equals(Preferences.PREF_IGN_TOUCH)) { - Preference pref = findPreference(Preferences.PREF_IGN_TOUCH); - if (sharedPreferences.getBoolean( - Preferences.PREF_IGN_TOUCH, false)) { - pref.setSummary(R.string.ignoreTouch_on); - } else { - pref.setSummary(R.string.ignoreTouch_off); - } - return; - } - - if (key.equals(Preferences.PREF_THEME)) { - result |= RESULT_RESTART; - setResult(result); - ListPreference theme = (ListPreference)findPreference( - Preferences.PREF_THEME); - theme.setSummary(theme.getEntry()); - return; - } + updateSummary(key); } } From 65981e3a251c777865af68d6d9134f77053ffa24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 01:13:01 +0100 Subject: [PATCH 44/60] Do updateHistoryDays summary like the others --- res/values/strings.xml | 2 +- src/org/fdroid/fdroid/Preferences.java | 1 + src/org/fdroid/fdroid/PreferencesActivity.java | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index aba793a53..d2cdf27a8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -22,7 +22,7 @@ Notify Notify when new updates are available Update history - Days to show new/updated apps + Days to consider apps new or recent: %s Search Results App Details diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index d94193130..19b934e16 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -28,6 +28,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi public static final String PREF_UPD_INTERVAL = "updateInterval"; public static final String PREF_UPD_WIFI_ONLY = "updateOnWifiOnly"; + public static final String PREF_UPD_HISTORY = "updateHistoryDays"; public static final String PREF_ROOTED = "rooted"; public static final String PREF_INCOMP_VER = "incompatibleVersions"; public static final String PREF_THEME = "theme"; diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 4ac1365d6..3d7a5290d 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.CheckBoxPreference; +import android.preference.EditTextPreference; import android.preference.ListPreference; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; @@ -43,6 +44,7 @@ public class PreferencesActivity extends PreferenceActivity implements private static String[] summariesToUpdate = { Preferences.PREF_UPD_INTERVAL, Preferences.PREF_UPD_WIFI_ONLY, + Preferences.PREF_UPD_HISTORY, Preferences.PREF_ROOTED, Preferences.PREF_INCOMP_VER, Preferences.PREF_THEME, @@ -85,6 +87,14 @@ public class PreferencesActivity extends PreferenceActivity implements return; } + if (key.equals(Preferences.PREF_UPD_HISTORY)) { + EditTextPreference pref = (EditTextPreference)findPreference( + Preferences.PREF_UPD_HISTORY); + pref.setSummary(getString(R.string.update_history_summ, + pref.getText())); + return; + } + if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { CheckBoxPreference pref = (CheckBoxPreference)findPreference( Preferences.PREF_COMPACT_LAYOUT); From abef4f36e03f9a8819ee42f356e5976b6a208be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 01:20:21 +0100 Subject: [PATCH 45/60] Do incompatible versions and permissions settings too --- res/values/strings.xml | 6 ++++-- res/xml/preferences.xml | 4 ++-- src/org/fdroid/fdroid/Preferences.java | 1 + .../fdroid/fdroid/PreferencesActivity.java | 19 +++++++++++++++++++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index d2cdf27a8..0b9630e5a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -127,7 +127,8 @@ Application compatibility Incompatible versions - Show versions of apps that are incompatible with the device + Show app versions incompatible with the device + Hide app versions incompatible with the device Root Do not grey out apps requiring root privileges Grey out apps requiring root privileges @@ -153,7 +154,8 @@ No permissions are used. Permissions for version %s Show permissions - Display a list of permissions an app needs + Display a list of permissions an app requires + Don\'t show permissions before downloading You don\'t have any available app that can handle %s Compact Layout Show icons at a smaller size diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 53e431811..9bd3fa208 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -21,7 +21,7 @@ Date: Wed, 1 Jan 2014 01:32:33 +0100 Subject: [PATCH 46/60] Do db sync and apk cache settings summaries too --- res/values/strings.xml | 7 ++--- res/xml/preferences.xml | 5 ++-- src/org/fdroid/fdroid/Preferences.java | 2 ++ .../fdroid/fdroid/PreferencesActivity.java | 26 ++++++++++++++++--- .../fdroid/fdroid/views/AppListAdapter.java | 3 ++- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 0b9630e5a..b88ee87a5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7,8 +7,10 @@ It seems like this package is not compatible with your device. Do you want to try and install it anyway? You are trying to downgrade this application. Doing so might get it to malfunction and even lose your data. Do you want to try and downgrade it anyway? Version - Cache downloaded apps - Keep downloaded apk files on SD card + App cache + Keep downloaded apk files on SD card + Do not keep any apk files + Updates Other Last repo scan: %s @@ -123,7 +125,6 @@ Search applications Database sync mode - Set the value of SQLite\'s "synchronous" flag Application compatibility Incompatible versions diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 9bd3fa208..a0d0295b1 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -16,7 +16,6 @@ android:key="updateHistoryDays" android:maxLength="2" android:numeric="integer" - android:summary="@string/update_history_desc" android:title="@string/update_history" /> @@ -45,13 +44,13 @@ diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index 8751279c7..c8f4a4d11 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -35,6 +35,8 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi public static final String PREF_PERMISSIONS = "showPermissions"; public static final String PREF_COMPACT_LAYOUT = "compactlayout"; public static final String PREF_IGN_TOUCH = "ignoreTouchscreen"; + public static final String PREF_CACHE_APK = "cacheDownloaded"; + public static final String PREF_DB_SYNC = "dbSyncMode"; private static final boolean DEFAULT_COMPACT_LAYOUT = false; diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 31b195839..8de339e33 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -50,7 +50,9 @@ public class PreferencesActivity extends PreferenceActivity implements Preferences.PREF_THEME, Preferences.PREF_PERMISSIONS, Preferences.PREF_COMPACT_LAYOUT, - Preferences.PREF_IGN_TOUCH }; + Preferences.PREF_IGN_TOUCH, + Preferences.PREF_DB_SYNC, + Preferences.PREF_CACHE_APK }; @Override protected void onCreate(Bundle savedInstanceState) { @@ -147,9 +149,9 @@ public class PreferencesActivity extends PreferenceActivity implements if (key.equals(Preferences.PREF_THEME)) { result |= RESULT_RESTART; setResult(result); - ListPreference theme = (ListPreference)findPreference( + ListPreference pref = (ListPreference)findPreference( Preferences.PREF_THEME); - theme.setSummary(theme.getEntry()); + pref.setSummary(pref.getEntry()); return; } @@ -163,6 +165,24 @@ public class PreferencesActivity extends PreferenceActivity implements } return; } + + if (key.equals(Preferences.PREF_CACHE_APK)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_CACHE_APK); + if (pref.isChecked()) { + pref.setSummary(R.string.cache_downloaded_on); + } else { + pref.setSummary(R.string.cache_downloaded_off); + } + return; + } + + if (key.equals(Preferences.PREF_DB_SYNC)) { + ListPreference pref = (ListPreference)findPreference( + Preferences.PREF_DB_SYNC); + pref.setSummary(pref.getEntry()); + return; + } } @Override diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 516f2bf2d..4d0de5942 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -136,7 +136,8 @@ abstract public class AppListAdapter extends BaseAdapter { return convertView; } - String ellipsize(String input, int maxLength) { + + private String ellipsize(String input, int maxLength) { if (input == null || input.length() < maxLength+1) { return input; } From de40bed7e107570276ac97c711c43a6ecef6a433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 01:43:52 +0100 Subject: [PATCH 47/60] Do expert mode summary --- res/values/strings.xml | 3 +- src/org/fdroid/fdroid/Preferences.java | 1 + .../fdroid/fdroid/PreferencesActivity.java | 35 +++++++++++++------ 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index b88ee87a5..fa2d91bf2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -120,7 +120,8 @@ Display Expert - Enable expert mode + Show extra info and enable extra settings + Hide extras for experienced users Search applications diff --git a/src/org/fdroid/fdroid/Preferences.java b/src/org/fdroid/fdroid/Preferences.java index c8f4a4d11..563aac289 100644 --- a/src/org/fdroid/fdroid/Preferences.java +++ b/src/org/fdroid/fdroid/Preferences.java @@ -36,6 +36,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi public static final String PREF_COMPACT_LAYOUT = "compactlayout"; public static final String PREF_IGN_TOUCH = "ignoreTouchscreen"; public static final String PREF_CACHE_APK = "cacheDownloaded"; + public static final String PREF_EXPERT = "expert"; public static final String PREF_DB_SYNC = "dbSyncMode"; private static final boolean DEFAULT_COMPACT_LAYOUT = false; diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 8de339e33..d0972cb67 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -42,17 +42,19 @@ public class PreferencesActivity extends PreferenceActivity implements private int result = 0; private static String[] summariesToUpdate = { - Preferences.PREF_UPD_INTERVAL, - Preferences.PREF_UPD_WIFI_ONLY, - Preferences.PREF_UPD_HISTORY, - Preferences.PREF_ROOTED, - Preferences.PREF_INCOMP_VER, - Preferences.PREF_THEME, - Preferences.PREF_PERMISSIONS, - Preferences.PREF_COMPACT_LAYOUT, - Preferences.PREF_IGN_TOUCH, - Preferences.PREF_DB_SYNC, - Preferences.PREF_CACHE_APK }; + Preferences.PREF_UPD_INTERVAL, + Preferences.PREF_UPD_WIFI_ONLY, + Preferences.PREF_UPD_HISTORY, + Preferences.PREF_ROOTED, + Preferences.PREF_INCOMP_VER, + Preferences.PREF_THEME, + Preferences.PREF_PERMISSIONS, + Preferences.PREF_COMPACT_LAYOUT, + Preferences.PREF_IGN_TOUCH, + Preferences.PREF_CACHE_APK, + Preferences.PREF_EXPERT, + Preferences.PREF_DB_SYNC + }; @Override protected void onCreate(Bundle savedInstanceState) { @@ -177,6 +179,17 @@ public class PreferencesActivity extends PreferenceActivity implements return; } + if (key.equals(Preferences.PREF_EXPERT)) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference( + Preferences.PREF_EXPERT); + if (pref.isChecked()) { + pref.setSummary(R.string.expert_on); + } else { + pref.setSummary(R.string.expert_off); + } + return; + } + if (key.equals(Preferences.PREF_DB_SYNC)) { ListPreference pref = (ListPreference)findPreference( Preferences.PREF_DB_SYNC); From 962521947e654eeb7ed3481cb4729fc206d8eb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 01:47:10 +0100 Subject: [PATCH 48/60] Last pref summary: notifications --- res/values/strings.xml | 3 ++- res/xml/preferences.xml | 2 +- src/org/fdroid/fdroid/Preferences.java | 1 + src/org/fdroid/fdroid/PreferencesActivity.java | 12 ++++++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index fa2d91bf2..2abdf2a68 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -22,7 +22,8 @@ Update app lists automatically only on wifi Always update app lists automatically Notify - Notify when new updates are available + Notify when updates are available + Do not notify of any updates Update history Days to consider apps new or recent: %s diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index a0d0295b1..1fa61df42 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -9,7 +9,7 @@ android:defaultValue="false" android:key="updateOnWifiOnly" /> Date: Wed, 1 Jan 2014 02:09:16 +0100 Subject: [PATCH 49/60] Update summaries via methods, greatly decreasing source lines --- .../fdroid/fdroid/PreferencesActivity.java | 176 ++++++------------ 1 file changed, 60 insertions(+), 116 deletions(-) diff --git a/src/org/fdroid/fdroid/PreferencesActivity.java b/src/org/fdroid/fdroid/PreferencesActivity.java index 38db710eb..5491ce26c 100644 --- a/src/org/fdroid/fdroid/PreferencesActivity.java +++ b/src/org/fdroid/fdroid/PreferencesActivity.java @@ -65,6 +65,27 @@ public class PreferencesActivity extends PreferenceActivity implements addPreferencesFromResource(R.xml.preferences); } + protected void onoffSummary(String key, int on, int off) { + CheckBoxPreference pref = (CheckBoxPreference)findPreference(key); + if (pref.isChecked()) { + pref.setSummary(on); + } else { + pref.setSummary(off); + } + } + + protected void entrySummary(String key) { + ListPreference pref = (ListPreference)findPreference(key); + pref.setSummary(pref.getEntry()); + } + + protected void textSummary(String key) { + EditTextPreference pref = (EditTextPreference)findPreference(key); + pref.setSummary(getString(R.string.update_history_summ, + pref.getText())); + } + + protected void updateSummary(String key) { if (key.equals(Preferences.PREF_UPD_INTERVAL)) { @@ -79,134 +100,57 @@ public class PreferencesActivity extends PreferenceActivity implements } else { pref.setSummary(pref.getEntry()); } - return; - } - if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_UPD_WIFI_ONLY); - if (pref.isChecked()) { - pref.setSummary(R.string.automatic_scan_wifi_on); - } else { - pref.setSummary(R.string.automatic_scan_wifi_off); - } - return; - } + } else if (key.equals(Preferences.PREF_UPD_WIFI_ONLY)) { + onoffSummary(key, R.string.automatic_scan_wifi_on, + R.string.automatic_scan_wifi_off); - if (key.equals(Preferences.PREF_UPD_NOTIFY)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_UPD_NOTIFY); - if (pref.isChecked()) { - pref.setSummary(R.string.notify_on); - } else { - pref.setSummary(R.string.notify_off); - } - return; - } + } else if (key.equals(Preferences.PREF_UPD_NOTIFY)) { + onoffSummary(key, R.string.notify_on, + R.string.notify_off); - if (key.equals(Preferences.PREF_UPD_HISTORY)) { - EditTextPreference pref = (EditTextPreference)findPreference( - Preferences.PREF_UPD_HISTORY); - pref.setSummary(getString(R.string.update_history_summ, - pref.getText())); - return; - } + } else if (key.equals(Preferences.PREF_UPD_HISTORY)) { + textSummary(key); - if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_COMPACT_LAYOUT); - if (pref.isChecked()) { - pref.setSummary(R.string.compactlayout_on); - } else { - pref.setSummary(R.string.compactlayout_off); - } - return; - } + } else if (key.equals(Preferences.PREF_PERMISSIONS)) { + onoffSummary(key, R.string.showPermissions_on, + R.string.showPermissions_off); - if (key.equals(Preferences.PREF_INCOMP_VER)) { - result ^= RESULT_RELOAD; - setResult(result); - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_INCOMP_VER); - if (pref.isChecked()) { - pref.setSummary(R.string.show_incompat_versions_on); - } else { - pref.setSummary(R.string.show_incompat_versions_off); - } - return; - } + } else if (key.equals(Preferences.PREF_COMPACT_LAYOUT)) { + onoffSummary(key, R.string.compactlayout_on, + R.string.compactlayout_off); - if (key.equals(Preferences.PREF_ROOTED)) { - result ^= RESULT_REFILTER; - setResult(result); - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_ROOTED); - if (pref.isChecked()) { - pref.setSummary(R.string.rooted_on); - } else { - pref.setSummary(R.string.rooted_off); - } - return; - } - - if (key.equals(Preferences.PREF_IGN_TOUCH)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_IGN_TOUCH); - if (pref.isChecked()) { - pref.setSummary(R.string.ignoreTouch_on); - } else { - pref.setSummary(R.string.ignoreTouch_off); - } - return; - } - - if (key.equals(Preferences.PREF_THEME)) { + } else if (key.equals(Preferences.PREF_THEME)) { + entrySummary(key); result |= RESULT_RESTART; setResult(result); - ListPreference pref = (ListPreference)findPreference( - Preferences.PREF_THEME); - pref.setSummary(pref.getEntry()); - return; - } - if (key.equals(Preferences.PREF_PERMISSIONS)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_PERMISSIONS); - if (pref.isChecked()) { - pref.setSummary(R.string.showPermissions_on); - } else { - pref.setSummary(R.string.showPermissions_off); - } - return; - } + } else if (key.equals(Preferences.PREF_INCOMP_VER)) { + onoffSummary(key, R.string.show_incompat_versions_on, + R.string.show_incompat_versions_off); + result ^= RESULT_RELOAD; + setResult(result); - if (key.equals(Preferences.PREF_CACHE_APK)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_CACHE_APK); - if (pref.isChecked()) { - pref.setSummary(R.string.cache_downloaded_on); - } else { - pref.setSummary(R.string.cache_downloaded_off); - } - return; - } + } else if (key.equals(Preferences.PREF_ROOTED)) { + onoffSummary(key, R.string.rooted_on, + R.string.rooted_off); + result ^= RESULT_REFILTER; + setResult(result); - if (key.equals(Preferences.PREF_EXPERT)) { - CheckBoxPreference pref = (CheckBoxPreference)findPreference( - Preferences.PREF_EXPERT); - if (pref.isChecked()) { - pref.setSummary(R.string.expert_on); - } else { - pref.setSummary(R.string.expert_off); - } - return; - } + } else if (key.equals(Preferences.PREF_IGN_TOUCH)) { + onoffSummary(key, R.string.ignoreTouch_on, + R.string.ignoreTouch_off); - if (key.equals(Preferences.PREF_DB_SYNC)) { - ListPreference pref = (ListPreference)findPreference( - Preferences.PREF_DB_SYNC); - pref.setSummary(pref.getEntry()); - return; + } else if (key.equals(Preferences.PREF_CACHE_APK)) { + onoffSummary(key, R.string.cache_downloaded_on, + R.string.cache_downloaded_off); + + } else if (key.equals(Preferences.PREF_EXPERT)) { + onoffSummary(key, R.string.expert_on, + R.string.expert_off); + + } else if (key.equals(Preferences.PREF_DB_SYNC)) { + entrySummary(key); } } From b4cee703f2a88ac602d59d910ce099993a3242af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 02:15:27 +0100 Subject: [PATCH 50/60] applistitem centering tweaks --- res/layout/applistitem.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 02d80ea0c..2b542a60b 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -22,6 +22,7 @@ android:layout_height="fill_parent" android:paddingLeft="8dp" android:paddingRight="8dp" + android:paddingBottom="3dp" android:layout_toRightOf="@id/icon" android:layout_centerVertical="true" android:baselineAligned="false" > @@ -55,7 +56,7 @@ android:paddingBottom="2dp" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="6dp" + android:layout_marginLeft="8dp" android:layout_alignParentTop="true" android:layout_alignParentRight="true" /> @@ -65,7 +66,7 @@ android:ellipsize="end" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="6dp" + android:layout_marginLeft="8dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" /> @@ -74,7 +75,6 @@ android:textStyle="bold" android:singleLine="true" android:ellipsize="end" - android:paddingBottom="2dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" From b31d8cb55b51d0dd03fab08e23b81cc54bbae2f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 14:46:33 +0100 Subject: [PATCH 51/60] Temporarily remove en-rGB, mainly since it breaks the whole app --- res/values-en-rGB/array.xml | 6 ------ res/values-en-rGB/strings.xml | 8 -------- 2 files changed, 14 deletions(-) delete mode 100644 res/values-en-rGB/array.xml delete mode 100644 res/values-en-rGB/strings.xml diff --git a/res/values-en-rGB/array.xml b/res/values-en-rGB/array.xml deleted file mode 100644 index 5f9a7b3a8..000000000 --- a/res/values-en-rGB/array.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - Nigdy - - diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml deleted file mode 100644 index 9d75613ee..000000000 --- a/res/values-en-rGB/strings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - Powiadom gdy będDroid Fire - Historia aktualizacji - Email: - Wersja: - Co nowego - From 219443b5a7707f81b80d42cb5bedb113555bfeae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 14:52:14 +0100 Subject: [PATCH 52/60] Fix support for 1.6 (4), fixes #414 --- src/org/fdroid/fdroid/FDroid.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index 11b46c555..74a57bdae 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -272,10 +272,10 @@ public class FDroid extends FragmentActivity { if ((resultCode & PreferencesActivity.RESULT_RESTART) != 0) { ((FDroidApp) getApplication()).reloadTheme(); final Intent intent = getIntent(); - overridePendingTransition(0, 0); + if (Build.VERSION.SDK_INT >= 5) overridePendingTransition(0, 0); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); - overridePendingTransition(0, 0); + if (Build.VERSION.SDK_INT >= 5) overridePendingTransition(0, 0); startActivity(intent); } From 214c920afd65da60055aab577c0342ec01ecf887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 16:06:42 +0100 Subject: [PATCH 53/60] Do AddItems with addAll on AppListAdapter --- src/org/fdroid/fdroid/AppListManager.java | 6 +++--- src/org/fdroid/fdroid/views/AppListAdapter.java | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/org/fdroid/fdroid/AppListManager.java b/src/org/fdroid/fdroid/AppListManager.java index 508114c1e..1e758483f 100644 --- a/src/org/fdroid/fdroid/AppListManager.java +++ b/src/org/fdroid/fdroid/AppListManager.java @@ -204,8 +204,9 @@ public class AppListManager { } if (app.installedVersion != null) { installedApps.addItem(app); - if (app.toUpdate) + if (app.toUpdate) { canUpgradeApps.addItem(app); + } } } @@ -215,8 +216,7 @@ public class AppListManager { Collections.sort(availApps, new RecentlyUpdatedComparator()); } - for (DB.App app : availApps) - availableApps.addItem(app); + availableApps.addItems(availApps); return true; } diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index 4d0de5942..854a62ebc 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -53,6 +53,10 @@ abstract public class AppListAdapter extends BaseAdapter { items.add(app); } + public void addItems(List apps) { + items.addAll(apps); + } + public void clear() { items.clear(); } From e302baa3404a350436a189d38028b56c2d819ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 17:09:01 +0100 Subject: [PATCH 54/60] Do paddings for the icon and not the whole applist item --- res/layout/applistitem.xml | 10 ++++------ res/values/dimen.xml | 6 ++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 2b542a60b..025e2348f 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -3,24 +3,22 @@ android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:paddingTop="6dp" - android:paddingBottom="6dp" android:baselineAligned="false" > - 48dp - 32dp + + 64dp + + 48dp From 771947536eb8b57f36e87fc4bdc1fe7e13ccb7ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 21:08:41 +0100 Subject: [PATCH 55/60] Add categories to AppDetails, layout tweaks --- res/layout/appdetails.xml | 62 +++++++++++++++++---------- res/layout/applistitem.xml | 11 ++--- src/org/fdroid/fdroid/AppDetails.java | 3 ++ 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/res/layout/appdetails.xml b/res/layout/appdetails.xml index 0441cd54f..ac8c5e846 100644 --- a/res/layout/appdetails.xml +++ b/res/layout/appdetails.xml @@ -15,42 +15,58 @@ - - - - + + + + + + diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 025e2348f..5f5dcd350 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -20,7 +20,6 @@ android:layout_height="fill_parent" android:paddingLeft="3dp" android:paddingRight="8dp" - android:paddingBottom="3dp" android:layout_toRightOf="@id/icon" android:layout_centerVertical="true" android:baselineAligned="false" > @@ -50,8 +49,8 @@ diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index af9b88d8b..4e2361257 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -448,6 +448,9 @@ public class AppDetails extends ListActivity { tv = (TextView) findViewById(R.id.license); tv.setText(app.license); + tv = (TextView) findViewById(R.id.categories); + tv.setText(app.categories.toString().replaceAll(",",", ")); + tv = (TextView) infoView.findViewById(R.id.description); /* From 753bc4345251bbe1f5d49275115886fe6c1a51a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 21:34:41 +0100 Subject: [PATCH 56/60] Use AppDetails title as indicator where we come from --- res/values/strings.xml | 1 - src/org/fdroid/fdroid/AppDetails.java | 4 ++++ src/org/fdroid/fdroid/AppListManager.java | 4 ++++ src/org/fdroid/fdroid/compat/TabManager.java | 2 +- src/org/fdroid/fdroid/views/AppListFragmentPageAdapter.java | 2 +- src/org/fdroid/fdroid/views/fragments/AppListFragment.java | 5 ++++- .../fdroid/views/fragments/AvailableAppsFragment.java | 5 +++++ .../fdroid/views/fragments/CanUpdateAppsFragment.java | 6 ++++++ .../fdroid/views/fragments/InstalledAppsFragment.java | 6 ++++++ 9 files changed, 31 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 2abdf2a68..bc666cb08 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -64,7 +64,6 @@ Choose repository to remove Update repositories - Installed Available Updates 1 update is available. diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 4e2361257..f5a056e7e 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -257,6 +257,10 @@ public class AppDetails extends ListActivity { appid = i.getStringExtra("appid"); } + if (i.hasExtra("from")) { + setTitle(i.getStringExtra("from")); + } + mPm = getPackageManager(); // Get the preferences we're going to use in this Activity... AppDetails old = (AppDetails) getLastNonConfigurationInstance(); diff --git a/src/org/fdroid/fdroid/AppListManager.java b/src/org/fdroid/fdroid/AppListManager.java index 1e758483f..8e30ee7c1 100644 --- a/src/org/fdroid/fdroid/AppListManager.java +++ b/src/org/fdroid/fdroid/AppListManager.java @@ -228,6 +228,10 @@ public class AppListManager { } } + public String getCurrentCategory() { + return this.currentCategory; + } + static class WhatsNewComparator implements Comparator { @Override public int compare(DB.App lhs, DB.App rhs) { diff --git a/src/org/fdroid/fdroid/compat/TabManager.java b/src/org/fdroid/fdroid/compat/TabManager.java index b7f3e9d5c..16fe8b8d5 100644 --- a/src/org/fdroid/fdroid/compat/TabManager.java +++ b/src/org/fdroid/fdroid/compat/TabManager.java @@ -98,7 +98,7 @@ class OldTabManagerImpl extends TabManager { TabHost.TabSpec installedTabSpec = tabHost.newTabSpec("installed") .setIndicator( - parent.getString(R.string.tab_installed), + parent.getString(R.string.inst), parent.getResources().getDrawable(android.R.drawable.star_off)) .setContent(factory); diff --git a/src/org/fdroid/fdroid/views/AppListFragmentPageAdapter.java b/src/org/fdroid/fdroid/views/AppListFragmentPageAdapter.java index cd8946490..2df2e7133 100644 --- a/src/org/fdroid/fdroid/views/AppListFragmentPageAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListFragmentPageAdapter.java @@ -44,7 +44,7 @@ public class AppListFragmentPageAdapter extends FragmentPagerAdapter { case 0: return parent.getString(R.string.tab_noninstalled); case 1: - return parent.getString(R.string.tab_installed); + return parent.getString(R.string.inst); case 2: return parent.getString(R.string.tab_updates) + " (" + parent.getManager().getCanUpdateAdapter().getCount() + ")"; diff --git a/src/org/fdroid/fdroid/views/fragments/AppListFragment.java b/src/org/fdroid/fdroid/views/fragments/AppListFragment.java index 5177c4ac9..98ee1d9b4 100644 --- a/src/org/fdroid/fdroid/views/fragments/AppListFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/AppListFragment.java @@ -16,10 +16,12 @@ import org.fdroid.fdroid.views.AppListView; abstract class AppListFragment extends Fragment implements AdapterView.OnItemClickListener, Preferences.ChangeListener { - private FDroid parent; + protected FDroid parent; protected abstract AppListAdapter getAppListAdapter(); + protected abstract String getFromTitle(); + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -76,6 +78,7 @@ abstract class AppListFragment extends Fragment implements AdapterView.OnItemCli final DB.App app = (DB.App)getAppListAdapter().getItem(position); Intent intent = new Intent(getActivity(), AppDetails.class); intent.putExtra("appid", app.id); + intent.putExtra("from", getFromTitle()); startActivityForResult(intent, FDroid.REQUEST_APPDETAILS); } diff --git a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java index 26f34e363..e8a50410a 100644 --- a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java @@ -57,4 +57,9 @@ public class AvailableAppsFragment extends AppListFragment implements AdapterVie protected AppListAdapter getAppListAdapter() { return getAppListManager().getAvailableAdapter(); } + + @Override + protected String getFromTitle() { + return getAppListManager().getCurrentCategory(); + } } diff --git a/src/org/fdroid/fdroid/views/fragments/CanUpdateAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/CanUpdateAppsFragment.java index a390f365c..1b3ebe9a3 100644 --- a/src/org/fdroid/fdroid/views/fragments/CanUpdateAppsFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/CanUpdateAppsFragment.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.fdroid.fdroid.R; import org.fdroid.fdroid.views.AppListAdapter; public class CanUpdateAppsFragment extends AppListFragment { @@ -18,4 +19,9 @@ public class CanUpdateAppsFragment extends AppListFragment { protected AppListAdapter getAppListAdapter() { return getAppListManager().getCanUpdateAdapter(); } + + @Override + protected String getFromTitle() { + return parent.getString(R.string.tab_updates); + } } diff --git a/src/org/fdroid/fdroid/views/fragments/InstalledAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/InstalledAppsFragment.java index db3a93cfc..b27bec6b1 100644 --- a/src/org/fdroid/fdroid/views/fragments/InstalledAppsFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/InstalledAppsFragment.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.fdroid.fdroid.R; import org.fdroid.fdroid.views.AppListAdapter; public class InstalledAppsFragment extends AppListFragment { @@ -18,4 +19,9 @@ public class InstalledAppsFragment extends AppListFragment { protected AppListAdapter getAppListAdapter() { return getAppListManager().getInstalledAdapter(); } + + @Override + protected String getFromTitle() { + return parent.getString(R.string.inst); + } } From cd00760cc4c604830e064badaef85e3b4629b1f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 21:45:20 +0100 Subject: [PATCH 57/60] Remove compact icons, replace installed with a symbol --- res/drawable/ic_cab_done_holo_dark.png | Bin 970 -> 0 bytes res/layout/applistitem.xml | 22 -------- .../fdroid/fdroid/views/AppListAdapter.java | 53 ++++-------------- 3 files changed, 12 insertions(+), 63 deletions(-) delete mode 100644 res/drawable/ic_cab_done_holo_dark.png diff --git a/res/drawable/ic_cab_done_holo_dark.png b/res/drawable/ic_cab_done_holo_dark.png deleted file mode 100644 index 2e06dd01be8ccbab90d63cbf47d13e905aed3e20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 970 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;OpT z1B~5HX4`=T%L*LRfwTh{zxwOjfK$EgnR$;T z=N`Kp(hSrM@CU%evd=bf=-4w^bQmnuhmUH-jd<6WZ; zHl4_>Rk2U@t}L_t|AiwlQ891B3C|YS1B^O3M@oxo5*z)LB91b?+QOQX_r0yH)YX2= zvK_aW4}ZVF|MIp0)1X?{@CS{e_APBtKk;H~nV$PVB{N8HV+L1tOj6 z``KDz%d4l`HAyHPxAByb%b6xG^S8m<-YfXS7v>b+zlZNGcwheZcvv-P0dQ7=MviH9v^t)=yc559VF`j43j z_pMt2oAX|`goy_Fm~UMa9d%t_^^2qU)cXl;U0e%IRZSM> z>7Ksk_VioOmKv*1mN|c~ELg&~mMikt+LpAdYoES)QG3#uo404uV`0ytJ&!XS^rKz< zU6j9{ob*(;{k73gyQmwdmG2d+82l2_J(5-Z=Epp_^THpe+eb5HIvzUo?fW(va5{7P zd0GD0trC|9zjsRjleub%YeY#(Vo9o1a#1RfVlXl=G}JY)&^0g*F*LI>FtRc>2C}UT z3_|{Y+l-q7HAsSN2+mI{DNig)WpGT%PfAtr%uP&B Z4N6T+sVqF1Y6Dcn;OXk;vd$@?2>?&0tquSH diff --git a/res/layout/applistitem.xml b/res/layout/applistitem.xml index 5f5dcd350..12973157b 100644 --- a/res/layout/applistitem.xml +++ b/res/layout/applistitem.xml @@ -24,28 +24,6 @@ android:layout_centerVertical="true" android:baselineAligned="false" > - - - - - - - - 0 && showStatusInstalled()) { - iconInstalled.setVisibility(View.VISIBLE); - } else { - iconInstalled.setVisibility(View.GONE); - } - } + status.setText(getVersionInfo(app)); + license.setText(app.license); // Disable it all if it isn't compatible... View[] views = { convertView, status, summary, license, name }; @@ -148,31 +124,26 @@ abstract public class AppListAdapter extends BaseAdapter { return input.substring(0, maxLength) + "…"; } - private SpannableString getVersionInfo(DB.App app) { + private String getVersionInfo(DB.App app) { if (app.curApk == null) { return null; } if (app.installedVersion == null) { - return new SpannableString( - ellipsize(app.curApk.version, 12)); + return ellipsize(app.curApk.version, 12); } - SpannableString span; - String cur; - - if (app.toUpdate) { - cur = ellipsize(app.installedVersion, 8); - span = new SpannableString( - cur + " → " + ellipsize(app.curApk.version, 8)); - } else { - cur = ellipsize(app.installedVersion, 12); - span = new SpannableString(cur); + if (app.toUpdate && showStatusUpdate()) { + return ellipsize(app.installedVersion, 8) + + " → " + ellipsize(app.curApk.version, 8); } - span.setSpan(new StyleSpan(Typeface.BOLD), 0, cur.length(), 0); - return span; + if (app.installedVerCode > 0 && showStatusInstalled()) { + return ellipsize(app.installedVersion, 12) + " ✔"; + } + + return app.installedVersion; } private void layoutIcon(ImageView icon, boolean compact) { From f4e23bb2edcccd0e67bcf191ced5439419c6668e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 22:09:33 +0100 Subject: [PATCH 58/60] Buildfix --- src/org/fdroid/fdroid/views/AppListAdapter.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/org/fdroid/fdroid/views/AppListAdapter.java b/src/org/fdroid/fdroid/views/AppListAdapter.java index a6c9b1bfd..78d60e8f7 100644 --- a/src/org/fdroid/fdroid/views/AppListAdapter.java +++ b/src/org/fdroid/fdroid/views/AppListAdapter.java @@ -99,8 +99,6 @@ abstract public class AppListAdapter extends BaseAdapter { int visibleOnCompact = compact ? View.VISIBLE : View.GONE; int notVisibleOnCompact = compact ? View.GONE : View.VISIBLE; - LinearLayout iconContainer = (LinearLayout)convertView.findViewById(R.id.status_icons); - layoutIcon(icon, compact); ImageLoader.getInstance().displayImage(app.iconUrl, icon, displayImageOptions); From e8d3a7a4ef781b814b0ece270647e36090c358a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 22:22:21 +0100 Subject: [PATCH 59/60] Raise minSdk to 5, UIL requires it --- AndroidManifest.xml | 2 +- src/org/fdroid/fdroid/DB.java | 36 ++++++------------------------- src/org/fdroid/fdroid/FDroid.java | 4 ++-- 3 files changed, 9 insertions(+), 33 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index fde2acbde..455dc98d8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -6,7 +6,7 @@ android:versionName="@string/version_name" > features; private List cpuAbis; private boolean ignoreTouchscreen; - @SuppressLint("NewApi") - public EclairChecker(Context ctx) { + //@SuppressLint("NewApi") + public CompatibilityChecker(Context ctx) { SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(ctx); @@ -416,7 +392,6 @@ public class DB { return false; } - @Override public boolean isCompatible(Apk apk) { if (!hasApi(apk.minSdkVersion)) return false; @@ -1181,8 +1156,9 @@ public class DB { } // Lazy initialise this... - if (compatChecker == null) - compatChecker = Apk.CompatibilityChecker.getChecker(mContext); + if (compatChecker == null) { + compatChecker = new Apk.CompatibilityChecker(mContext); + } // See if it's compatible (by which we mean if it has at least one // compatible apk) diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java index 74a57bdae..11b46c555 100644 --- a/src/org/fdroid/fdroid/FDroid.java +++ b/src/org/fdroid/fdroid/FDroid.java @@ -272,10 +272,10 @@ public class FDroid extends FragmentActivity { if ((resultCode & PreferencesActivity.RESULT_RESTART) != 0) { ((FDroidApp) getApplication()).reloadTheme(); final Intent intent = getIntent(); - if (Build.VERSION.SDK_INT >= 5) overridePendingTransition(0, 0); + overridePendingTransition(0, 0); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); - if (Build.VERSION.SDK_INT >= 5) overridePendingTransition(0, 0); + overridePendingTransition(0, 0); startActivity(intent); } From b35bb9b1f507dfedc2e7b3ef2a6ad26e7347aab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 1 Jan 2014 22:30:01 +0100 Subject: [PATCH 60/60] Add TargetApi lines to compat/* to suppress many lint warnings --- src/org/fdroid/fdroid/compat/ActionBarCompat.java | 2 ++ src/org/fdroid/fdroid/compat/ContextCompat.java | 2 ++ src/org/fdroid/fdroid/compat/LayoutCompat.java | 3 +++ src/org/fdroid/fdroid/compat/MenuManager.java | 2 ++ src/org/fdroid/fdroid/compat/PackageManagerCompat.java | 2 ++ src/org/fdroid/fdroid/compat/TabManager.java | 2 ++ 6 files changed, 13 insertions(+) diff --git a/src/org/fdroid/fdroid/compat/ActionBarCompat.java b/src/org/fdroid/fdroid/compat/ActionBarCompat.java index 11a3fb6a0..e1c0f2cf1 100644 --- a/src/org/fdroid/fdroid/compat/ActionBarCompat.java +++ b/src/org/fdroid/fdroid/compat/ActionBarCompat.java @@ -1,5 +1,6 @@ package org.fdroid.fdroid.compat; +import android.annotation.TargetApi; import android.app.ActionBar; import android.app.Activity; @@ -35,6 +36,7 @@ class OldActionBarCompatImpl extends ActionBarCompat { } } +@TargetApi(11) class HoneycombActionBarCompatImpl extends ActionBarCompat { private final ActionBar actionBar; diff --git a/src/org/fdroid/fdroid/compat/ContextCompat.java b/src/org/fdroid/fdroid/compat/ContextCompat.java index 668b94b5d..dde5c5ca3 100644 --- a/src/org/fdroid/fdroid/compat/ContextCompat.java +++ b/src/org/fdroid/fdroid/compat/ContextCompat.java @@ -2,6 +2,7 @@ package org.fdroid.fdroid.compat; import java.io.File; +import android.annotation.TargetApi; import android.content.Context; import android.os.Environment; @@ -45,6 +46,7 @@ class OldContextCompatImpl extends ContextCompat { } +@TargetApi(8) class FroyoContextCompatImpl extends ContextCompat { public FroyoContextCompatImpl(Context context) { diff --git a/src/org/fdroid/fdroid/compat/LayoutCompat.java b/src/org/fdroid/fdroid/compat/LayoutCompat.java index 0624d0800..6a57ad033 100644 --- a/src/org/fdroid/fdroid/compat/LayoutCompat.java +++ b/src/org/fdroid/fdroid/compat/LayoutCompat.java @@ -1,5 +1,7 @@ package org.fdroid.fdroid.compat; +import android.annotation.TargetApi; + public abstract class LayoutCompat extends Compatibility { public static LayoutCompat create() { @@ -28,6 +30,7 @@ class OldLayoutCompatImpl extends LayoutCompat { } } +@TargetApi(17) class JellyBeanMr1LayoutCompatImpl extends LayoutCompat { @Override diff --git a/src/org/fdroid/fdroid/compat/MenuManager.java b/src/org/fdroid/fdroid/compat/MenuManager.java index ddf760c47..08e2341b2 100644 --- a/src/org/fdroid/fdroid/compat/MenuManager.java +++ b/src/org/fdroid/fdroid/compat/MenuManager.java @@ -1,5 +1,6 @@ package org.fdroid.fdroid.compat; +import android.annotation.TargetApi; import android.app.Activity; abstract public class MenuManager extends Compatibility { @@ -34,6 +35,7 @@ class OldMenuManagerImpl extends MenuManager { } +@TargetApi(11) class HoneycombMenuManagerImpl extends MenuManager { protected HoneycombMenuManagerImpl(Activity activity) { diff --git a/src/org/fdroid/fdroid/compat/PackageManagerCompat.java b/src/org/fdroid/fdroid/compat/PackageManagerCompat.java index 2c5c5d81a..714c5b144 100644 --- a/src/org/fdroid/fdroid/compat/PackageManagerCompat.java +++ b/src/org/fdroid/fdroid/compat/PackageManagerCompat.java @@ -2,11 +2,13 @@ package org.fdroid.fdroid.compat; import java.lang.Exception; +import android.annotation.TargetApi; import android.content.pm.PackageManager; import android.util.Log; public class PackageManagerCompat extends Compatibility { + @TargetApi(11) public static void setInstaller(PackageManager mPm, String app_id) { if (!hasApi(11)) return; try { diff --git a/src/org/fdroid/fdroid/compat/TabManager.java b/src/org/fdroid/fdroid/compat/TabManager.java index 16fe8b8d5..e3edeb6da 100644 --- a/src/org/fdroid/fdroid/compat/TabManager.java +++ b/src/org/fdroid/fdroid/compat/TabManager.java @@ -3,6 +3,7 @@ package org.fdroid.fdroid.compat; import java.util.ArrayList; import java.util.List; +import android.annotation.TargetApi; import android.app.ActionBar; import android.app.FragmentTransaction; import android.content.res.Configuration; @@ -150,6 +151,7 @@ class OldTabManagerImpl extends TabManager { } +@TargetApi(11) class HoneycombTabManagerImpl extends TabManager { protected final ActionBar actionBar;