Offset 2035, 14 lines modifiedOffset 2035, 25 lines modified
2035 ························continue;2035 ························continue;
2036 ····················}2036 ····················}
2037 ················}2037 ················}
2038 ············}2038 ············}
2039 ········}2039 ········}
2040 ····}2040 ····}
2041 ····2041 ····
 2042 ····private·int[]·checkUriPermissions(final·List·list,·final·int·n,·final·int·n2,·final·boolean·b)·{
 2043 ········int·n3;
 2044 ········if·(b)·{
 2045 ············n3·=·2;
 2046 ········}
 2047 ········else·{
 2048 ············n3·=·1;
 2049 ········}
 2050 ········return·this.getContext().checkUriPermissions(list,·n,·n2,·n3);
 2051 ····}
 2052 ····
2042 ····public·static·void·checkWorldReadAccess(String·string)·{2053 ····public·static·void·checkWorldReadAccess(String·string)·{
2043 ········int·n;2054 ········int·n;
2044 ········if·(string.startsWith("/storage/"))·{2055 ········if·(string.startsWith("/storage/"))·{
2045 ············n·=·OsConstants.S_IRGRP;2056 ············n·=·OsConstants.S_IRGRP;
2046 ········}2057 ········}
2047 ········else·{2058 ········else·{
2048 ············n·=·OsConstants.S_IROTH;2059 ············n·=·OsConstants.S_IROTH;
Offset 2251, 33 lines modifiedOffset 2262, 14 lines modified
2251 ····private·static·int·deleteFileUnchecked(final·String·pathname)·{2262 ····private·static·int·deleteFileUnchecked(final·String·pathname)·{
2252 ········if·(new·File(pathname).delete())·{2263 ········if·(new·File(pathname).delete())·{
2253 ············return·0;2264 ············return·0;
2254 ········}2265 ········}
2255 ········return·OsConstants.ENOENT;2266 ········return·OsConstants.ENOENT;
2256 ····}2267 ····}
2257 ····2268 ····
2258 ····private·boolean·deleteForFuseRename(final·DatabaseHelper·databaseHelper,·final·String·s,·final·String·s2,·final·Bundle·bundle,·final·String·s3,·final·boolean·b)·{ 
2259 ········final·Uri·contentUriForPath·=·FileUtils.getContentUriForPath(s); 
2260 ········final·SQLiteQueryBuilder·queryBuilder·=·this.getQueryBuilder(3,·this.matchUri(contentUriForPath,·b),·contentUriForPath,·bundle,·null); 
2261 ········int·n·=·1; 
2262 ········final·String[]·array·=·new·String[n]; 
2263 ········array[0]·=·s2; 
2264 ········if·(queryBuilder.delete(databaseHelper,·s3,·array)·==·n)·{ 
2265 ············return·n·!=·0; 
2266 ········} 
2267 ········final·String[]·array2·=·{·"media_type",·"_data",·"_id",·"is_download",·"mime_type"·}; 
2268 ········final·Uri·contentUriForPath2·=·FileUtils.getContentUriForPath(s2); 
2269 ········final·String[]·array3·=·new·String[n]; 
2270 ········array3[0]·=·s2; 
2271 ········if·(this.deleteWithOtherUriGrants(contentUriForPath2,·databaseHelper,·array2,·s3,·array3,·bundle)·!=·n)·{ 
2272 ············n·=·0; 
2273 ········} 
2274 ········return·n·!=·0; 
2275 ····} 
2276 ···· 
2277 ····private·void·deleteIfAllowed(final·Uri·uri,·final·Bundle·bundle,·final·String·s)·{2269 ····private·void·deleteIfAllowed(final·Uri·uri,·final·Bundle·bundle,·final·String·s)·{
2278 ········try·{2270 ········try·{
2279 ············final·File·file·=·new·File(s);2271 ············final·File·file·=·new·File(s);
2280 ············this.checkAccess(uri,·bundle,·file,·true);2272 ············this.checkAccess(uri,·bundle,·file,·true);
2281 ············try·{2273 ············try·{
2282 ················this.deleteAndInvalidate(file);2274 ················this.deleteAndInvalidate(file);
2283 ············}2275 ············}
Offset 4606, 17 lines modifiedOffset 4598, 30 lines modified
4606 ········sb.append(".transforms/synthetic/redacted");4598 ········sb.append(".transforms/synthetic/redacted");
4607 ········sb.append(s);4599 ········sb.append(s);
4608 ········sb.append(str);4600 ········sb.append(str);
4609 ········return·sb.toString();4601 ········return·sb.toString();
4610 ····}4602 ····}
4611 ····4603 ····
4612 ····private·Uri·getPermissionGrantedUri(final·List·list,·final·boolean·b)·{4604 ····private·Uri·getPermissionGrantedUri(final·List·list,·final·boolean·b)·{
 4605 ········if·(SdkLevel.isAtLeastS())·{
 4606 ············final·int[]·checkUriPermissions·=·this.checkUriPermissions(list,·((LocalCallingIdentity)this.mCallingIdentity.get()).pid,·((LocalCallingIdentity)this.mCallingIdentity.get()).uid,·b);
 4607 ············if·(checkUriPermissions.length·!=·list.size())·{
 4608 ················return·null;
 4609 ············}
 4610 ············for·(int·i·=·0;·i·<·list.size();·++i)·{
 4611 ················if·(checkUriPermissions[i]·==·0)·{
 4612 ····················return·list.get(i);
 4613 ················}
 4614 ············}
 4615 ········}
 4616 ········else·{
4613 ········for·(final·Uri·uri·:·list)·{4617 ············for·(final·Uri·uri·:·list)·{
4614 ············if·(this.isUriPermissionGranted(uri,·b))·{4618 ················if·(this.isUriPermissionGranted(uri,·b))·{
4615 ················return·uri;4619 ····················return·uri;
 4620 ················}
4616 ············}4621 ············}
4617 ········}4622 ········}
4618 ········return·null;4623 ········return·null;
4619 ····}4624 ····}
4620 ····4625 ····
4621 ····private·SQLiteQueryBuilder·getQueryBuilder(final·int·n,·final·int·n2,·final·Uri·uri,·final·Bundle·bundle,·final·Consumer·consumer)·{4626 ····private·SQLiteQueryBuilder·getQueryBuilder(final·int·n,·final·int·n2,·final·Uri·uri,·final·Bundle·bundle,·final·Consumer·consumer)·{
4622 ········Trace.beginSection("getQueryBuilder");4627 ········Trace.beginSection("getQueryBuilder");
Offset 10122, 21 lines modifiedOffset 10127, 25 lines modified
10122 ············sb.append("Database·update·failed·while·renaming·");10127 ············sb.append("Database·update·failed·while·renaming·");
10123 ············sb.append(str);10128 ············sb.append(str);
10124 ············Log.w(s2,·sb.toString(),·(Throwable)ex);10129 ············Log.w(s2,·sb.toString(),·(Throwable)ex);
10125 ············n3·=·n;10130 ············n3·=·n;
10126 ············n2·=·0;10131 ············n2·=·0;
10127 ········}10132 ········}
10128 ········if·(n3·!=·0)·{10133 ········if·(n3·!=·0)·{
10129 ············if·(!this.deleteForFuseRename(databaseHelper,·str,·s,·bundle,·"_data·=?·",·callingPackageAllowedHidden))·{10134 ············final·Uri·contentUriForPath·=·FileUtils.getContentUriForPath(str);
 10135 ············final·SQLiteQueryBuilder·queryBuilder2·=·this.getQueryBuilder(3,·this.matchUri(contentUriForPath,·callingPackageAllowedHidden),·contentUriForPath,·bundle,·null);
 10136 ············final·String[]·array2·=·new·String[n];
 10137 ············array2[0]·=·s;
 10138 ············if·(queryBuilder2.delete(databaseHelper,·s3,·array2)·!=·n)·{
10130 ················return·false;10139 ················return·false;
10131 ············}10140 ············}
10132 ············Log.i(s2,·"Retrying·database·update·after·deleting·conflicting·entry");10141 ············Log.i(s2,·"Retrying·database·update·after·deleting·conflicting·entry");
10133 ············final·String[]·array2·=·new·String[n];10142 ············final·String[]·array3·=·new·String[n];
10134 ············array2[0]·=·str;10143 ············array3[0]·=·str;
10135 ············n2·=·queryBuilder.update(databaseHelper,·contentValues,·s3,·array2);10144 ············n2·=·queryBuilder.update(databaseHelper,·contentValues,·s3,·array3);
10136 ········}10145 ········}
10137 ········if·(n2·!=·n)·{10146 ········if·(n2·!=·n)·{
10138 ············n·=·0;10147 ············n·=·0;
10139 ········}10148 ········}
10140 ········return·n·!=·0;10149 ········return·n·!=·0;
10141 ····}10150 ····}
10142 ····10151 ····
Offset 12664, 19 lines modifiedOffset 12673, 19 lines modified
12664 ························break·Label_0040;12673 ························break·Label_0040;
12665 ····················}12674 ····················}
12666 ····················try·{12675 ····················try·{
12667 ························final·StorageManager·mStorageManager·=·this.mStorageManager;12676 ························final·StorageManager·mStorageManager·=·this.mStorageManager;
12668 ························n·=·0;12677 ························n·=·0;
12669 ························mStorageManager.updateExternalStorageFileQuotaType(file,·0);12678 ························mStorageManager.updateExternalStorageFileQuotaType(file,·0);
12670 ························return;12679 ························return;
 12680 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n4);
 12681 ························return;
12671 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n3);12682 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n3);
12672 ························return;12683 ························return;
12673 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n2);12684 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n2);
12674 ························return; 
12675 ························this.mStorageManager.updateExternalStorageFileQuotaType(file,·n4); 
12676 ····················}12685 ····················}
12677 ····················catch·(IOException·ex)·{12686 ····················catch·(IOException·ex)·{
12678 ························final·StringBuilder·sb·=·new·StringBuilder();12687 ························final·StringBuilder·sb·=·new·StringBuilder();
12679 ························sb.append("Failed·to·update·quota·type·for·");12688 ························sb.append("Failed·to·update·quota·type·for·");
12680 ························sb.append(file.getPath());12689 ························sb.append(file.getPath());
12681 ························Log.w("MediaProvider",·sb.toString(),·(Throwable)ex);12690 ························Log.w("MediaProvider",·sb.toString(),·(Throwable)ex);
12682 ····················}12691 ····················}
Offset 13161, 32 lines modifiedOffset 13170, 29 lines modified
13161 ····························}13170 ····························}
13162 ····························finally·{13171 ····························finally·{
13163 ································final·Throwable·t;13172 ································final·Throwable·t;
13164 ································final·Throwable·exception;13173 ································final·Throwable·exception;
13165 ································t.addSuppressed(exception);13174 ································t.addSuppressed(exception);
13166 ····························}13175 ····························}
13167 ························}13176 ························}
 13177 ························final·String·string·=·queryForSingleItem.getString(queryForSingleItem.getColumnIndexOrThrow(s));
13168 ························//·iftrue(Label_0223:,·TextUtils.isEmpty((CharSequence)string))13178 ························//·iftrue(Label_0223:,·TextUtils.isEmpty((CharSequence)string))
13169 ························//·iftrue(Label_0275:,·queryForSingleItem·==·null) 
13170 ························String·string·=·null; 
13171 ····················Block_12:13179 ························Block_12:·{
13172 ························while·(true)·{13180 ····························break·Block_12;
13173 ····························queryForSingleItem.close();13181 ····························queryForSingleItem.close();
13174 ····························return·null;13182 ····························return·null;
13175 ····························string·=·queryForSingleItem.getString(queryForSingleItem.getColumnIndexOrThrow(s)); 
13176 ····························break·Block_12; 
13177 ····························continue; 
13178 ························}13183 ························}
13179 ························final·Uri$Builder·buildUpon2·=·uri.buildUpon();13184 ························final·Uri$Builder·buildUpon2·=·uri.buildUpon();
13180 ························buildUpon2.appendQueryParameter(s,·string);13185 ························buildUpon2.appendQueryParameter(s,·string);
13181 ························buildUpon2.appendQueryParameter(s2,·s3);13186 ························buildUpon2.appendQueryParameter(s2,·s3);
13182 ························final·Uri·build2·=·buildUpon2.build();13187 ························final·Uri·build2·=·buildUpon2.build();
13183 ························queryForSingleItem.close();13188 ························queryForSingleItem.close();
13184 ························return·build2;13189 ························return·build2;
13185 ····················}13190 ····················}
 13191 ····················//·iftrue(Label_0275:,·queryForSingleItem·==·null)
13186 ················}13192 ················}
13187 ············}13193 ············}
13188 ········}13194 ········}
13189 ········catch·(FileNotFoundException·ex)·{13195 ········catch·(FileNotFoundException·ex)·{
13190 ············Log.w("MediaProvider",·ex.getMessage());13196 ············Log.w("MediaProvider",·ex.getMessage());
13191 ········}13197 ········}
13192 ········Label_0275:·{13198 ········Label_0275:·{