Skip to content

Commit 11cff23

Browse files
Dr. Maxie Dion SchmidtDr. Maxie Dion Schmidt
authored andcommitted
Stashing incremental work to get the custom themes to work again in the demo app
1 parent 7b032e7 commit 11cff23

10 files changed

Lines changed: 61 additions & 35 deletions

File tree

AndroidFilePickerLightLibrary/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ android {
4646
targetSdkVersion 35
4747
compileSdkVersion 35
4848
compileSdk 35
49-
versionCode 25
50-
versionName "1.3.2-beta"
49+
versionCode 26
50+
versionName "1.3.3-beta"
5151
buildFeatures.buildConfig = true
5252
buildToolsVersion '35.0.1'
5353

AndroidFilePickerLightLibrary/build/generated/source/buildConfig/debug/com/maxieds/androidfilepickerlightlibrary/BuildConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ public final class BuildConfig {
88
public static final String LIBRARY_PACKAGE_NAME = "com.maxieds.androidfilepickerlightlibrary";
99
public static final String BUILD_TYPE = "debug";
1010
// Field from build type: debug
11-
public static final String BUILD_TIMESTAMP = "2026-02-26-233203";
11+
public static final String BUILD_TIMESTAMP = "2026-02-27-042733";
1212
// Field from build type: debug
1313
public static final String GIT_COMMIT_DATE = "";
1414
// Field from build type: debug
1515
public static final String GIT_COMMIT_HASH = "";
1616
// Field from build type: debug
17-
public static final long VERSION_CODE = 25L;
17+
public static final long VERSION_CODE = 26L;
1818
// Field from build type: debug
19-
public static final String VERSION_NAME = "1.3.2-beta";
19+
public static final String VERSION_NAME = "1.3.3-beta";
2020
}

AndroidFilePickerLightLibrary/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Thu Feb 26 23:32:04 CST 2026
1+
#Fri Feb 27 04:26:37 CST 2026
22
com.maxieds.androidfilepickerlightlibrary.AndroidFilePickerLightLibrary-main-6\:/drawable/file_chooser_default_toolbar_icon48.webp=/Users/maxieds/AndroidFilePickerLight2-NewBuildScripts/AndroidFilePickerLightLibrary/build/intermediates/packaged_res/debug/packageDebugResources/drawable/file_chooser_default_toolbar_icon48.webp
33
com.maxieds.androidfilepickerlightlibrary.AndroidFilePickerLightLibrary-main-6\:/layout/nav_folder_button_long_form.xml=/Users/maxieds/AndroidFilePickerLight2-NewBuildScripts/AndroidFilePickerLightLibrary/build/intermediates/packaged_res/debug/packageDebugResources/layout/nav_folder_button_long_form.xml
44
com.maxieds.androidfilepickerlightlibrary.AndroidFilePickerLightLibrary-main-6\:/drawable/hidden_file_icon32.webp=/Users/maxieds/AndroidFilePickerLight2-NewBuildScripts/AndroidFilePickerLightLibrary/build/intermediates/packaged_res/debug/packageDebugResources/drawable/hidden_file_icon32.webp

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/CustomThemeBuilder.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ This program (the AndroidFilePickerLight library) is free software written by
2323
import android.graphics.Typeface;
2424
import android.graphics.drawable.Drawable;
2525
import android.graphics.drawable.GradientDrawable;
26+
import android.util.Log;
2627
import android.util.TypedValue;
2728
import android.view.View;
2829
import android.view.Window;
@@ -207,9 +208,12 @@ public static int[] GenerateThemeColorsList(Activity activityCtxRef, @ColorRes i
207208
try {
208209
resolvedColor = DisplayUtils.getColorFromResource(activityCtxRef, baseColorResId);
209210
} catch(Exception ex) {
211+
ex.printStackTrace();
210212
try {
211213
resolvedColor = DisplayUtils.resolveColorFromAttribute(activityCtxRef, baseColorResId);
212-
} catch (Exception ex2) {}
214+
} catch (Exception ex2) {
215+
ex2.printStackTrace();
216+
}
213217
}
214218
return new int[] {
215219
resolvedColor, /* COLOR_PRIMARY */
@@ -231,9 +235,9 @@ public static int[] GenerateThemeColorsList(Activity activityCtxRef, @ColorRes i
231235
private FileChooserColorScheme themeColorScheme;
232236

233237
public CustomThemeBuilder setThemeColors(@ColorRes int[] colorsList) {
234-
for(int cidx = 0; cidx < colorsList.length; cidx++) {
238+
/*for(int cidx = 0; cidx < colorsList.length; cidx++) {
235239
colorsList[cidx] = DisplayUtils.resolveColorFromResId(activityCtx, colorsList[cidx]);
236-
}
240+
}*/
237241
themeColorScheme = new FileChooserColorScheme(colorsList);
238242
return this;
239243
}
@@ -448,24 +452,27 @@ public boolean styleNavigationDisplayToolbar(Toolbar toolbar) {
448452
@Override
449453
public boolean styleDefaultPathNavigationButton(ImageButton dirNavBtn, FileChooserBuilder.DefaultNavFoldersType baseFolderBtnType) throws RuntimeException {
450454
if(dirNavBtn == null || baseFolderBtnType == null) {
455+
Log.i(LOGTAG, "Path nav buttons are null ...");
451456
return false;
452457
}
453-
dirNavBtn.setBackgroundColor(themeColorScheme.getColorToolbarNav());
458+
dirNavBtn.setBackgroundColor(_themeColorScheme.getColorToolbarNav());
454459
try {
455460
boolean status = true;
456461
Drawable navBtnIcon;
457462
if (_navBtnIconResIdMap.get(baseFolderBtnType) != null) {
458-
navBtnIcon = DisplayUtils.resolveDrawableFromResId(_activityCtx, _navBtnIconResIdMap.get(baseFolderBtnType));
463+
navBtnIcon = DisplayUtils.getDrawableFromResource(_activityCtx, _navBtnIconResIdMap.get(baseFolderBtnType));
459464
} else {
460465
status = false;
461466
int defaultIconResId = FileChooserBuilder.DefaultNavFoldersType.NAV_FOLDER_ICON_RESIDS_MAP.get(
462467
FileChooserBuilder.DefaultNavFoldersType.NAV_FOLDER_PATHS_REVMAP.get(baseFolderBtnType).ordinal()
463468
).intValue();
469+
Log.i(LOGTAG, "Having to use default nav icons ...");
464470
navBtnIcon = DisplayUtils.resolveDrawableFromAttribute(defaultIconResId);
465471
}
466472
dirNavBtn.setImageDrawable(navBtnIcon);
467473
return status;
468474
} catch(NullPointerException npe) {
475+
npe.printStackTrace();
469476
return false;
470477
}
471478
}

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/DisplayUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ This program (the AndroidFilePickerLight library) is free software written by
2424
import android.graphics.drawable.Drawable;
2525
import android.graphics.drawable.GradientDrawable;
2626
import android.os.Handler;
27+
import android.util.Log;
2728
import android.util.TypedValue;
2829
import android.view.Gravity;
2930
import android.view.LayoutInflater;
@@ -42,7 +43,7 @@ This program (the AndroidFilePickerLight library) is free software written by
4243

4344
public class DisplayUtils {
4445

45-
private static String LOGTAG = DisplayUtils.class.getSimpleName();
46+
private static final String LOGTAG = DisplayUtils.class.getSimpleName();
4647

4748
public static int getColorVariantFromTheme(Activity activityRef, int attrID) throws FileChooserException.InvalidActivityContextException {
4849
if(activityRef == null) {
@@ -210,9 +211,11 @@ public static boolean checkIconDimensions(Drawable iconInput, int dimsHW) {
210211

211212
public static <T extends Object> T firstNonNull(T firstObj, T secondObj) {
212213
if(firstObj != null) {
214+
Log.i(LOGTAG, "First object non-null");
213215
return firstObj;
214216
}
215217
else {
218+
Log.i(LOGTAG, "Second object non-null");
216219
return secondObj;
217220
}
218221
}

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/FileChooserActivity.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ public void run() {
182182
}
183183

184184
private static boolean appHasRequestedPerms = false;
185+
186+
private static FileChooserBuilder initialFileChooserBuilderInst = null;
187+
188+
public static void setInitialFileChooserBuilder(FileChooserBuilder fpInst) {
189+
initialFileChooserBuilderInst = fpInst;
190+
}
191+
185192
@Override
186193
public void onCreate(Bundle lastSettingsBundle) {
187194

@@ -210,7 +217,14 @@ public void onCreate(Bundle lastSettingsBundle) {
210217
BasicFileProvider.resetBasicFileProviderDefaults();
211218
cwdFolderCtx = null;
212219

213-
FileChooserBuilder fpConfig = new FileChooserBuilder(this);
220+
FileChooserBuilder fpConfig;
221+
if (initialFileChooserBuilderInst == null) {
222+
fpConfig = new FileChooserBuilder(this);
223+
}
224+
else {
225+
fpConfig = initialFileChooserBuilderInst;
226+
fpConfig.resetActivityContext(this);
227+
}
214228
if(fpConfig.getExternalFilesProvider() != null) {
215229
BasicFileProvider.setExternalDocumentsProvider(fpConfig.getExternalFilesProvider());
216230
}
@@ -453,7 +467,7 @@ else if(requestCode == PermissionsHandler.REQUEST_REQUIRED_PERMISSIONS_CODE) {
453467

454468
@AfterPermissionGranted(PermissionsHandler.REQUEST_REQUIRED_PERMISSIONS_CODE)
455469
private void handleRequiredPermissionsGranted() {
456-
String[] permsList = ACTIVITY_REQUIRED_PERMISSIONS;
470+
String[] permsList = ACTIVITY_OPTIONAL_PERMISSIONS; // ACTIVITY_REQUIRED_PERMISSIONS;
457471
if (EasyPermissions.hasPermissions(this, permsList)) {}
458472
else {
459473
EasyPermissions.requestPermissions(this, getString(R.string.requiredPermsRationale),

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/FileChooserBuilder.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ This program (the AndroidFilePickerLight library) is free software written by
3737

3838
public class FileChooserBuilder implements Serializable {
3939

40-
private static String LOGTAG = FileChooserBuilder.class.getSimpleName();
40+
private static final String LOGTAG = FileChooserBuilder.class.getSimpleName();
4141

4242
public enum DefaultFileTypes {
4343

@@ -224,7 +224,7 @@ public enum SelectionModeType {
224224
private FileFilter.FileFilterBase localFileFilter;
225225
private FileFilter.FileItemsSortFunc customSortFunc;
226226

227-
// Non-display type configuration:
227+
/* Non-display type configuration: */
228228
private int recyclerViewStartBufferSize;
229229
private int recyclerViewNotVisibleBufferSize;
230230
private int recyclerViewLayoutFlingDampenThreshold;
@@ -281,6 +281,13 @@ public boolean allowSelectFolderItems() {
281281
pathSelectMode.ordinal() != SelectionModeType.SELECT_FILE_ONLY.ordinal();
282282
}
283283

284+
public boolean resetActivityContext(Activity actContext) {
285+
if (actContext == null) {
286+
return false;
287+
}
288+
activityContextRef = new WeakReference<Activity>(actContext);
289+
return true;
290+
}
284291
public FileChooserBuilder setInitialPathAbsolute(String startPathAbs) {
285292
startPathRelative = null;
286293
startPathAbsolute = startPathAbs;

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/PermissionsHandler.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,6 @@ public static String lookupPermissionRationale(String permID) {
7474
public static boolean obtainRequiredPermissions(Activity activityCtx, String[] permsList) {
7575
if(android.os.Build.VERSION.SDK_INT >= 23) {
7676
activityCtx.requestPermissions(permsList, REQUEST_REQUIRED_PERMISSIONS_CODE);
77-
EasyPermissions.requestPermissions(
78-
new PermissionRequest.Builder(activityCtx, REQUEST_REQUIRED_PERMISSIONS_CODE, permsList)
79-
.setRationale(R.string.grantPermsDialogRationaleText)
80-
.setPositiveButtonText(R.string.grantPermsDialogOkBtnText)
81-
.setNegativeButtonText(R.string.grantPermsDialogCancelBtnText)
82-
.setTheme(R.style.LibraryDefaultTheme)
83-
.build());
8477
}
8578
for(int pidx = 0; pidx < permsList.length; pidx++) {
8679
if(!hasAccessPermission(activityCtx, permsList[pidx])) {

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "com.maxieds.androidfilepickerlight"
1111
minSdkVersion 29
1212
targetSdkVersion 35
13-
versionCode 6
14-
versionName "1.3.2-beta"
13+
versionCode 7
14+
versionName "1.3.3-beta"
1515
buildFeatures.buildConfig = true
1616
buildToolsVersion '35.0.1'
1717

app/src/main/java/com/maxieds/androidfilepickerlight/AndroidFilePickerLightExampleActivity.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void showFileChooserResultsDialog(List<String> fileItemsList, String onEr
9696
errorRationaleDisplayText.setTextColor(getColor(R.color.colorOnErrorDisplayText));
9797
errorRationaleDisplayText.setText(errorDisplayText.toString());
9898
adBuilder.setView(errorRationaleDisplayText);
99-
adBuilder.setNegativeButton("[X] That bytes, boo.", null);
99+
adBuilder.setNegativeButton("[X] That bytes, BOO :(", null);
100100
adBuilder.create().show();
101101
return;
102102
}
@@ -114,6 +114,7 @@ public void showFileChooserResultsDialog(List<String> fileItemsList, String onEr
114114
displayText.append(" • " + fileItem + "\n");
115115
}
116116
} catch(Exception emptyFilesListError) {
117+
/* The next code should never get run: */
117118
emptyFilesListError.printStackTrace();
118119
displayText.append(" • [ ]\n");
119120
}
@@ -170,14 +171,6 @@ public void actionButtonLaunchOmnivorousMultiPickerActivity(View btnView) {
170171

171172
public void actionButtonLaunchMultiPickerActivityNewThemeGreen(View btnView) {
172173

173-
FileChooserBuilder fpInst = new FileChooserBuilder(this);
174-
fpInst.setSelectionMode(FileChooserBuilder.SelectionModeType.SELECT_OMNIVORE);
175-
fpInst.setSelectMultiple(5);
176-
fpInst.setActionCode(FileChooserBuilder.ACTIVITY_CODE_SELECT_MULTIPLE_FILES);
177-
fpInst.setNavigationLongForm(false);
178-
fpInst.showHidden(true);
179-
fpInst.setInitialPath(FileChooserBuilder.BaseFolderPathType.BASE_PATH_DEFAULT);
180-
181174
CustomThemeBuilder customThemeBuilder = new CustomThemeBuilder(this)
182175
.setPickerTitleText(R.string.picker_title_text)
183176
.setNavBarPrefixText(R.string.navbar_prefix_text)
@@ -202,7 +195,15 @@ public void actionButtonLaunchMultiPickerActivityNewThemeGreen(View btnView) {
202195
.setDefaultFolderIcon(R.drawable.greentheme_folder_icon32)
203196
.setFileItemMetaDataPermissionsDisplayStyle(CustomThemeBuilder.FileItemPermissionsDisplayStyle.PERMISSIONS_DISPLAY_POSIX_STYLE);
204197

205-
fpInst.setCustomThemeStylizerConfig(customThemeBuilder);
198+
FileChooserBuilder fpInst = new FileChooserBuilder(this)
199+
.setSelectionMode(FileChooserBuilder.SelectionModeType.SELECT_OMNIVORE)
200+
.setSelectMultiple(5)
201+
.setActionCode(FileChooserBuilder.ACTIVITY_CODE_SELECT_MULTIPLE_FILES)
202+
.setNavigationLongForm(false)
203+
.showHidden(true)
204+
.setInitialPath(FileChooserBuilder.BaseFolderPathType.BASE_PATH_DEFAULT)
205+
.setCustomThemeStylizerConfig(customThemeBuilder);
206+
FileChooserActivity.setInitialFileChooserBuilder(fpInst);
206207
fpInst.launchFilePicker();
207208

208209
}
@@ -241,6 +242,7 @@ public void actionButtonLaunchMultiPickerActivityNewThemeOrange(View btnView) {
241242
.setDefaultFolderIcon(R.drawable.orangetheme_folder_icon32);
242243

243244
fpInst.setCustomThemeStylizerConfig(customThemeBuilder);
245+
FileChooserActivity.setInitialFileChooserBuilder(fpInst);
244246
fpInst.launchFilePicker();
245247

246248
}

0 commit comments

Comments
 (0)