WIP: Making correct apks get found when updating repo.
This commit is contained in:
		
							parent
							
								
									aa96de6730
								
							
						
					
					
						commit
						55c2700d67
					
				@ -275,7 +275,7 @@ public class ApkProvider extends FDroidProvider {
 | 
				
			|||||||
                builder.append(',');
 | 
					                builder.append(',');
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            final Apk apk = apks.get(i);
 | 
					            final Apk apk = apks.get(i);
 | 
				
			||||||
            builder.append(apk.packageName).append(':').append(apk.versionCode);
 | 
					            builder.append(apk.appId).append(':').append(apk.versionCode);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return builder.toString();
 | 
					        return builder.toString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -428,35 +428,23 @@ public class ApkProvider extends FDroidProvider {
 | 
				
			|||||||
        StringBuilder sb = new StringBuilder();
 | 
					        StringBuilder sb = new StringBuilder();
 | 
				
			||||||
        for (int i = 0; i < apkDetails.length; i++) {
 | 
					        for (int i = 0; i < apkDetails.length; i++) {
 | 
				
			||||||
            String[] parts = apkDetails[i].split(":");
 | 
					            String[] parts = apkDetails[i].split(":");
 | 
				
			||||||
            String packageName = parts[0];
 | 
					            String appId = parts[0];
 | 
				
			||||||
            String versionCode = parts[1];
 | 
					            String versionCode = parts[1];
 | 
				
			||||||
            args[i * 2] = packageName;
 | 
					            args[i * 2] = appId;
 | 
				
			||||||
            args[i * 2 + 1] = versionCode;
 | 
					            args[i * 2 + 1] = versionCode;
 | 
				
			||||||
            if (i != 0) {
 | 
					            if (i != 0) {
 | 
				
			||||||
                sb.append(" OR ");
 | 
					                sb.append(" OR ");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            sb.append(" ( ");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (includeAlias) {
 | 
					            sb.append(" ( ")
 | 
				
			||||||
                // This is the simpler way to figure out the package name of a row in the apk table.
 | 
					                    .append(Cols.APP_ID)
 | 
				
			||||||
                // It requires slightly less work for sqlite3 than the alternative below.
 | 
					                    .append(" = ? ")
 | 
				
			||||||
                sb.append("app.")
 | 
					                    .append(" AND ")
 | 
				
			||||||
                        .append(AppMetadataTable.Cols.PACKAGE_ID)
 | 
					 | 
				
			||||||
                        .append(" = (")
 | 
					 | 
				
			||||||
                        .append(getPackageIdFromPackageNameQuery())
 | 
					 | 
				
			||||||
                        .append(") ");
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                sb.append(Cols.APP_ID)
 | 
					 | 
				
			||||||
                        .append(" IN (")
 | 
					 | 
				
			||||||
                        .append(getMetadataIdFromPackageNameQuery())
 | 
					 | 
				
			||||||
                        .append(")");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            sb.append(" AND ")
 | 
					 | 
				
			||||||
                    .append(alias)
 | 
					                    .append(alias)
 | 
				
			||||||
                    .append(Cols.VERSION_CODE)
 | 
					                    .append(Cols.VERSION_CODE)
 | 
				
			||||||
                    .append(" = ? ) ");
 | 
					                    .append(" = ? ) ");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return new QuerySelection(sb.toString(), args);
 | 
					        return new QuerySelection(sb.toString(), args);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -178,6 +178,7 @@ public class RepoPersister {
 | 
				
			|||||||
                Schema.ApkTable.Cols.Package.PACKAGE_NAME,
 | 
					                Schema.ApkTable.Cols.Package.PACKAGE_NAME,
 | 
				
			||||||
                Schema.ApkTable.Cols.VERSION_CODE,
 | 
					                Schema.ApkTable.Cols.VERSION_CODE,
 | 
				
			||||||
                Schema.ApkTable.Cols.REPO_ID,
 | 
					                Schema.ApkTable.Cols.REPO_ID,
 | 
				
			||||||
 | 
					                Schema.ApkTable.Cols.APP_ID,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        List<Apk> existingApks = ApkProvider.Helper.knownApks(context, packages, projection);
 | 
					        List<Apk> existingApks = ApkProvider.Helper.knownApks(context, packages, projection);
 | 
				
			||||||
        ArrayList<ContentProviderOperation> operations = new ArrayList<>(packages.size());
 | 
					        ArrayList<ContentProviderOperation> operations = new ArrayList<>(packages.size());
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user