/* * * * Copyright (C) 2019 Amit Shekhar * * Copyright (C) 2011 Android Open Source Project * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * */ package com.amitshekhar.utils; import android.content.Context; import android.util.Pair; import java.io.File; import java.text.MessageFormat; import java.util.HashMap; /** * Created by amitshekhar on 06/02/17. */ public class DatabaseFileProvider { private final static String DB_PASSWORD_RESOURCE = "DB_PASSWORD_{0}"; private DatabaseFileProvider() { // This class in not publicly instantiable } public static HashMap> getDatabaseFiles(Context context) { HashMap> databaseFiles = new HashMap<>(); try { for (String databaseName : context.databaseList()) { String password = getDbPasswordFromStringResources(context, databaseName); databaseFiles.put(databaseName, new Pair<>(context.getDatabasePath(databaseName), password)); } } catch (Exception e) { e.printStackTrace(); } return databaseFiles; } private static String getDbPasswordFromStringResources(Context context, String name) { String nameWithoutExt = name; if (nameWithoutExt.endsWith(".db")) { nameWithoutExt = nameWithoutExt.substring(0, nameWithoutExt.lastIndexOf('.')); } String resourceName = MessageFormat.format(DB_PASSWORD_RESOURCE, nameWithoutExt.toUpperCase()); String password = ""; int resourceId = context.getResources().getIdentifier(resourceName, "string", context.getPackageName()); if (resourceId != 0) { password = context.getString(resourceId); } return password; } }