/* * Copyright 2019 New Vector Ltd * * 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 im.vector.riotredesign.receivers import android.content.* import android.preference.PreferenceManager import androidx.core.content.edit import im.vector.riotredesign.core.utils.lsFiles import timber.log.Timber /** * Receiver to handle some command from ADB */ class DebugReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { Timber.d("Received debug action: ${intent.action}") intent.action?.let { when { it.endsWith(DEBUG_ACTION_DUMP_FILESYSTEM) -> lsFiles(context) it.endsWith(DEBUG_ACTION_DUMP_PREFERENCES) -> dumpPreferences(context) it.endsWith(DEBUG_ACTION_ALTER_SCALAR_TOKEN) -> alterScalarToken(context) } } } private fun dumpPreferences(context: Context) { logPrefs("DefaultSharedPreferences", PreferenceManager.getDefaultSharedPreferences(context)) } private fun logPrefs(name: String, sharedPreferences: SharedPreferences?) { Timber.d("SharedPreferences $name:") sharedPreferences?.let { prefs -> prefs.all.keys.forEach { key -> Timber.d("$key : ${prefs.all[key]}") } } } private fun alterScalarToken(context: Context) { PreferenceManager.getDefaultSharedPreferences(context).edit { // putString("SCALAR_TOKEN_PREFERENCE_KEY" + Matrix.getInstance(context).defaultSession.myUserId, "bad_token") } } companion object { private const val DEBUG_ACTION_DUMP_FILESYSTEM = ".DEBUG_ACTION_DUMP_FILESYSTEM" private const val DEBUG_ACTION_DUMP_PREFERENCES = ".DEBUG_ACTION_DUMP_PREFERENCES" private const val DEBUG_ACTION_ALTER_SCALAR_TOKEN = ".DEBUG_ACTION_ALTER_SCALAR_TOKEN" fun getIntentFilter(context: Context) = IntentFilter().apply { addAction(context.packageName + DEBUG_ACTION_DUMP_FILESYSTEM) addAction(context.packageName + DEBUG_ACTION_DUMP_PREFERENCES) addAction(context.packageName + DEBUG_ACTION_ALTER_SCALAR_TOKEN) } } }